public ServerClientTests() { tcpClient = A.Fake <ITcpClient>(); stream = A.Fake <INetworkStream>(); reader = A.Fake <IMessageStreamReader>(); sender = A.Fake <IMessagesSender>(); config = A.Fake <ICsConfiguration>(); mediator = A.Fake <IMediator>(); A.CallTo(() => config.Address).Returns(IPAddress.Loopback); A.CallTo(() => config.Port).Returns(1234); A.CallTo(() => tcpClient.GetStream()).Returns(stream); A.CallTo(() => reader.MayHaveMessages).ReturnsLazily(() => messagesRead = !messagesRead); A.CallTo(() => reader.ReadAvailable()).ReturnsLazily(() => A.CollectionOfFake <IMessage>(1).ToArray()); Func <ITcpClient> clientFactory = () => { tcpClientCreated = true; return(tcpClient); }; Func <INetworkStream, IMessageStreamReader> readerFactory = s => { if (s == stream) { readerCreated = true; return(reader); } throw new InvalidOperationException(); }; serverClient = new ServerClient(config, sender, mediator, clientFactory, readerFactory); }
public ServerClient(ICsConfiguration config, IMessagesSender sender, IMediator mediator, Func <ITcpClient> tcpClientFactory, Func <INetworkStream, IMessageStreamReader> readerFactory) { this.config = config; this.sender = sender; this.mediator = mediator; this.tcpClientFactory = _ => tcpClientFactory(); this.readerFactory = readerFactory; }
public ServerClient(ICsConfiguration config, IMessagesSender sender, IMediator mediator, Func <IPEndPoint, ITcpClient> tcpClientFactory, Func <INetworkStream, IMessageStreamReader> readerFactory, IPEndPoint endPoint) { this.config = config; this.sender = sender; this.mediator = mediator; this.tcpClientFactory = tcpClientFactory; this.readerFactory = readerFactory; this.endPoint = endPoint; }