public void MustDisconnectCorrectly() { var proxy = new Mock <IProxyObject>(); var connectionResponse = new ConnectionResponse { CommunicationToken = Guid.NewGuid(), ConnectionEstablished = true }; var disconnectionResponse = new DisconnectionResponse { ConnectionTerminated = true }; proxy.Setup(p => p.Connect(It.IsAny <Guid>())).Returns(connectionResponse); proxy.Setup(p => p.Disconnect(It.IsAny <DisconnectionMessage>())).Returns(disconnectionResponse); proxy.Setup(o => o.State).Returns(CommunicationState.Opened); proxyObjectFactory.Setup(f => f.CreateObject(It.IsAny <string>())).Returns(proxy.Object); var token = Guid.NewGuid(); var connected = sut.Connect(token); var disconnected = sut.Disconnect(); proxy.Verify(p => p.Disconnect(It.Is <DisconnectionMessage>(m => m.CommunicationToken == connectionResponse.CommunicationToken)), Times.Once); Assert.IsTrue(connected); Assert.IsTrue(disconnected); }
public DisconnectionResponse Disconnect(DisconnectionMessage message) { lock (@lock) { var response = new DisconnectionResponse(); Logger.Debug($"Received disconnection request with message '{ToString(message)}'."); if (IsAuthorized(message?.CommunicationToken)) { OnDisconnect(); CommunicationToken = null; response.ConnectionTerminated = true; } return(response); } }
public PacketBase ReadPacket() { RawPacket rawPacket = ReadRawPacket(); PacketBase packet; switch (rawPacket.Type) { case PacketType.OnlineCheckRequest: packet = new OnlineCheckRequest(); break; case PacketType.OnlineCheckResponse: packet = new OnlineCheckResponse(); break; case PacketType.DisconnectionRequest: packet = new DisconnectionRequest(); break; case PacketType.DisconnectionResponse: packet = new DisconnectionResponse(); break; case PacketType.DisconnectionNotification: packet = new DisconnectionNotification(); break; case PacketType.ReconnectionRequest: packet = new ReconnectionRequest(); break; case PacketType.FastDataRequest: packet = new FastDataRequest(); break; case PacketType.FastDataResponse: packet = new FastDataResponse(); break; case PacketType.ConnectionSummaryNotification: packet = new ConnectionSummaryNotification(); break; case PacketType.AuthenticationInformationRequestHeader: packet = new AuthenticationInformationRequestHeader(); break; case PacketType.AuthenticationInformationResponseHeader: packet = new AuthenticationInformationResponseHeader(); break; case PacketType.AuthenticationInformationRequestData: packet = new AuthenticationInformationRequestData(); break; case PacketType.AuthenticationInformationResponseData: packet = new AuthenticationInformationResponseData(); break; case PacketType.AuthenticationInformationRequestFooter: packet = new AuthenticationInformationRequestFooter(); break; case PacketType.AuthenticationInformationResponseFooter: packet = new AuthenticationInformationResponseFooter(); break; case PacketType.TusCommonAreaAcquisitionRequest: packet = new TusCommonAreaAcquisitionRequest(); break; case PacketType.TusCommonAreaAcquisitionResponse: packet = new TusCommonAreaAcquisitionResponse(); break; case PacketType.TusCommonAreaSettingsRequest: packet = new TusCommonAreaSettingsRequest(); break; case PacketType.TusCommonAreaSettingsResponse: packet = new TusCommonAreaSettingsResponse(); break; case PacketType.TusCommonAreaAddRequest: packet = new TusCommonAreaAddRequest(); break; case PacketType.TusCommonAreaAddResponse: packet = new TusCommonAreaAddResponse(); break; case PacketType.TusUserAreaWriteRequestHeader: packet = new TusUserAreaWriteRequestHeader(); break; case PacketType.TusUserAreaWriteResponseHeader: packet = new TusUserAreaWriteResponseHeader(); break; case PacketType.TusUserAreaWriteRequestData: packet = new TusUserAreaWriteRequestData(); break; case PacketType.TusUserAreaWriteResponseData: packet = new TusUserAreaWriteResponseData(); break; case PacketType.TusUserAreaWriteRequestFooter: packet = new TusUserAreaWriteRequestFooter(); break; case PacketType.TusUserAreaWriteResponseFooter: packet = new TusUserAreaWriteResponseFooter(); break; case PacketType.TusUserAreaReadRequestHeader: packet = new TusUserAreaReadRequestHeader(); break; case PacketType.TusUserAreaReadResponseHeader: packet = new TusUserAreaReadResponseHeader(); break; case PacketType.TusUserAreaReadRequestData: packet = new TusUserAreaReadRequestData(); break; case PacketType.TusUserAreaReadResponseData: packet = new TusUserAreaReadResponseData(); break; case PacketType.TusUserAreaReadRequestFooter: packet = new TusUserAreaReadRequestFooter(); break; case PacketType.TusUserAreaReadResponseFooter: packet = new TusUserAreaReadResponseFooter(); break; default: return(rawPacket); } packet.Sequence = rawPacket.Sequence; packet.ParsePayload(rawPacket.Payload); return(packet); }