示例#1
0
        public void Handle_ReturnsTrueOrFalseIfElementIsInTheStorage(bool contains)
        {
            // arrange
            var request   = new ContainsRequest();
            var processor = new ContainsProcessor();
            var storage   = Substitute.For <IStorage>();

            storage.Contains(request.Key).Returns(contains);

            // act
            ContainsResponse response = processor.Reply(request, storage);

            // assert
            Assert.Equal(response.Contains, contains);
        }
        public void Handle_ReturnsTrueOrFalseIfElementIsInTheStorage(bool contains)
        {
            // arrange
            var request   = new ContainsRequest();
            var processor = new ContainsProcessor();
            var storage   = Substitute.For <IStorage>();

            storage.Contains(request.Key).Returns(contains);
            byte[] expectedBytes = SerializationUtils.SerializeToStreamWithLength(contains);
            var    socket        = Substitute.For <Socket>();

            socket.Send(Arg.Any <byte[]>(), Arg.Any <int>(), Arg.Any <int>(), Arg.Any <SocketFlags>())
            .Returns(expectedBytes.Length);

            // act
            processor.Handle(ref request, storage, socket);

            // assert
            socket.Received(1).Send(Arg.Is <byte[]>(x => x.SequenceEqual(expectedBytes)), Arg.Any <int>(), Arg.Any <int>(), Arg.Any <SocketFlags>());
        }