mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-01-11 19:44:52 +00:00
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:
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user