public void Close_ClientConnected_ClientDisconnected() { // Arrange int timesConnectedChangedRaised = 0; var actualConnectedStates = new List <bool>(); var client = new DataStreamingClient(new IPEndPoint(IPAddress.Loopback, LISTENING_PORT)); client.ConnectChanged += (sender, args) => { timesConnectedChangedRaised++; actualConnectedStates.Add(args.Connected); }; var connectionTask = client.ConnectAsync(); connectionTask.Wait(TimeSpan.FromSeconds(1)); // Act client.Close(); // Assert var expectedConnectedStates = new List <bool> { true, false }; CollectionAssert.AreEquivalent(expectedConnectedStates, actualConnectedStates); Assert.AreEqual(2, timesConnectedChangedRaised); }
public void Write_TcpListenerAvailable_SendSuccessful() { using (var client = new DataStreamingClient(new IPEndPoint(IPAddress.Loopback, LISTENING_PORT))) { // Arrange var dataToWrite = new byte[] { 0x00, 0x01, 0x02 }; var acceptTcpClientTask = tcpListener.AcceptTcpClientAsync(); var connectionTask = client.ConnectAsync(); connectionTask.Wait(TimeSpan.FromSeconds(1)); var acceptedTcpClient = acceptTcpClientTask.Result; var buffer = new byte[1024]; var readTask = acceptedTcpClient.GetStream().ReadAsync(buffer, 0, buffer.Length); // Act var result = client.Send(dataToWrite); readTask.Wait(TimeSpan.FromMilliseconds(100)); // Assert Assert.IsTrue(result); var receivedData = new byte[readTask.Result]; Array.Copy(buffer, receivedData, receivedData.Length); Assert.AreEqual(dataToWrite, receivedData); } }
public void Dispose_CallTwice_DoesNotThrow() { // Arrange using (var client = new DataStreamingClient(new IPEndPoint(IPAddress.Loopback, LISTENING_PORT))) { // Assert Assert.DoesNotThrow(() => { client.Dispose(); client.Dispose(); }); } }
public void Close_CallTwice_ThrowObjectDisposedException() { // Arrange using (var client = new DataStreamingClient(new IPEndPoint(IPAddress.Loopback, LISTENING_PORT))) { // Assert Assert.Throws <ObjectDisposedException>(() => { client.Close(); client.Close(); }); } }
static void Main(string[] args) { Task.Factory.StartNew(() => { var localEndPoint = new IPEndPoint(IPAddress.Loopback, 10002); var client = new DataStreamingClient(localEndPoint); client.ConnectChanged += Client_ConnectChanged; client.DataReceived += Client_DataReceived; var connectTask = client.ConnectAsync(); connectTask.Wait(); Logger.Log($"Finish connection task with {localEndPoint}", LogLevel.Info); }); var manualResetEvent = new ManualResetEvent(false); manualResetEvent.WaitOne(); }
public void ConnectAsync_TcpListenerAvailable_ClientConnects() { using (var client = new DataStreamingClient(new IPEndPoint(IPAddress.Loopback, LISTENING_PORT))) { // Arrange int timesConnectedChangedRaised = 0; var isConnected = false; client.ConnectChanged += (sender, args) => { timesConnectedChangedRaised++; isConnected = args.Connected; }; // Act var connectionTask = client.ConnectAsync(); connectionTask.Wait(TimeSpan.FromSeconds(1)); // Assert Assert.IsTrue(isConnected); Assert.AreEqual(1, timesConnectedChangedRaised); } }