Finalize CallStatusMessenger implementation - remove test files and verify clean implementation

Co-authored-by: ngenovese11 <23391587+ngenovese11@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-08-13 21:16:35 +00:00
parent 9946e9a9ae
commit 94909d2c7c
2 changed files with 0 additions and 196 deletions

View File

@@ -1,123 +0,0 @@
using System;
using System.Collections.Generic;
using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Devices.Common.Codec;
namespace PepperDash.Essentials.AppServer.Messengers.Tests
{
/// <summary>
/// Mock device for testing CallStatusMessenger that implements IHasDialer without VideoCodecBase
/// </summary>
public class MockCallStatusDevice : EssentialsDevice, IHasDialer, IHasContentSharing
{
public event EventHandler<CodecCallStatusItemChangeEventArgs> CallStatusChange;
private List<CodecActiveCallItem> _activeCalls = new List<CodecActiveCallItem>();
private bool _isInCall;
private bool _sharingContentIsOn;
private string _sharingSource = "";
public MockCallStatusDevice(string key, string name) : base(key, name)
{
SharingContentIsOnFeedback = new BoolFeedback(key + "-SharingContentIsOnFeedback", () => _sharingContentIsOn);
SharingSourceFeedback = new StringFeedback(key + "-SharingSourceFeedback", () => _sharingSource);
AutoShareContentWhileInCall = false;
}
public bool IsInCall
{
get => _isInCall;
private set
{
if (_isInCall != value)
{
_isInCall = value;
OnCallStatusChange();
}
}
}
public List<CodecActiveCallItem> ActiveCalls => _activeCalls;
public BoolFeedback SharingContentIsOnFeedback { get; private set; }
public StringFeedback SharingSourceFeedback { get; private set; }
public bool AutoShareContentWhileInCall { get; private set; }
public void Dial(string number)
{
// Mock implementation
var call = new CodecActiveCallItem
{
Id = Guid.NewGuid().ToString(),
Name = $"Call to {number}",
Number = number,
Status = eCodecCallStatus.Dialing,
Direction = eCodecCallDirection.Outgoing
};
_activeCalls.Add(call);
IsInCall = true;
}
public void EndCall(CodecActiveCallItem activeCall)
{
if (activeCall != null && _activeCalls.Contains(activeCall))
{
_activeCalls.Remove(activeCall);
IsInCall = _activeCalls.Count > 0;
}
}
public void EndAllCalls()
{
_activeCalls.Clear();
IsInCall = false;
}
public void AcceptCall(CodecActiveCallItem item)
{
if (item != null)
{
item.Status = eCodecCallStatus.Connected;
IsInCall = true;
}
}
public void RejectCall(CodecActiveCallItem item)
{
if (item != null && _activeCalls.Contains(item))
{
_activeCalls.Remove(item);
IsInCall = _activeCalls.Count > 0;
}
}
public void SendDtmf(string digit)
{
// Mock implementation - nothing to do
}
public void StartSharing()
{
_sharingContentIsOn = true;
_sharingSource = "Local";
SharingContentIsOnFeedback.FireUpdate();
SharingSourceFeedback.FireUpdate();
}
public void StopSharing()
{
_sharingContentIsOn = false;
_sharingSource = "";
SharingContentIsOnFeedback.FireUpdate();
SharingSourceFeedback.FireUpdate();
}
private void OnCallStatusChange()
{
CallStatusChange?.Invoke(this, new CodecCallStatusItemChangeEventArgs(
_activeCalls.Count > 0 ? _activeCalls[0] : null));
}
}
}

View File

@@ -1,73 +0,0 @@
using System;
using System.Collections.Generic;
using PepperDash.Core;
using PepperDash.Essentials.Core;
using PepperDash.Essentials.Devices.Common.Codec;
using PepperDash.Essentials.AppServer.Messengers;
using PepperDash.Essentials.AppServer.Messengers.Tests;
namespace PepperDash.Essentials.MobileControl.Tests
{
/// <summary>
/// Simple test program to verify CallStatusMessenger functionality
/// </summary>
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Testing CallStatusMessenger with IHasDialer device...");
try
{
// Create a mock device that implements IHasDialer but not VideoCodecBase
var mockDevice = new MockCallStatusDevice("mock-codec-1", "Mock Call Device");
// Create the new CallStatusMessenger
var messenger = new CallStatusMessenger(
"test-messenger-1",
mockDevice,
"/device/mock-codec-1"
);
Console.WriteLine("✓ Successfully created CallStatusMessenger with IHasDialer device");
// Test basic call functionality
Console.WriteLine("\nTesting call functionality:");
Console.WriteLine("- Initial call status: " + (mockDevice.IsInCall ? "In Call" : "Not In Call"));
// Test dialing a number
mockDevice.Dial("1234567890");
Console.WriteLine("- After dialing: " + (mockDevice.IsInCall ? "In Call" : "Not In Call"));
// Test ending all calls
mockDevice.EndAllCalls();
Console.WriteLine("- After ending all calls: " + (mockDevice.IsInCall ? "In Call" : "Not In Call"));
// Test content sharing if supported
if (mockDevice is IHasContentSharing sharingDevice)
{
Console.WriteLine("\nTesting content sharing:");
Console.WriteLine("- Initial sharing status: " + sharingDevice.SharingContentIsOnFeedback.BoolValue);
sharingDevice.StartSharing();
Console.WriteLine("- After start sharing: " + sharingDevice.SharingContentIsOnFeedback.BoolValue);
sharingDevice.StopSharing();
Console.WriteLine("- After stop sharing: " + sharingDevice.SharingContentIsOnFeedback.BoolValue);
}
Console.WriteLine("\n✓ All tests passed! CallStatusMessenger works with interface-based devices.");
}
catch (Exception ex)
{
Console.WriteLine("✗ Test failed: " + ex.Message);
Console.WriteLine("Stack trace: " + ex.StackTrace);
}
Console.WriteLine("\nPress any key to exit...");
Console.ReadKey();
}
}
}