예제 #1
0
        public void SendOnlySpecifiedNumberOfMessages()
        {
            var sut = new EmailMessageBuffer();

            var message1 = new EmailMessage("*****@*****.**",
                                            "Hi, hope you are good today, Jason",
                                            true);


            var message2 = new EmailMessage("*****@*****.**",
                                            "Hi, hope you are good today, Jason",
                                            true);

            var message3 = new EmailMessage("*****@*****.**",
                                            "Hi, hope you are good today, Jason",
                                            true);

            sut.Add(message1);
            sut.Add(message2);
            sut.Add(message3);

            sut.SendLimited(2);

            Assert.Equal(1, sut.UnsentMessagesCount);
        }
        public void SendOnlySpecifiedNumberOfMessages()
        {
            var sut = new EmailMessageBuffer();

            sut.Add(_fixture.Create <EmailMessage>());
            sut.Add(_fixture.Create <EmailMessage>());
            sut.Add(_fixture.Create <EmailMessage>());

            sut.SendLimited(2);

            Assert.That(sut.UnsentMessagesCount, Is.EqualTo(1));
        }
        public void SendOnlySpecifiedNumberOfMessages()
        {
            var fixture = new Fixture();
            var sut     = new EmailMessageBuffer();

            sut.Add(fixture.Create <EmailMessage>());
            sut.Add(fixture.Create <EmailMessage>());
            sut.Add(fixture.Create <EmailMessage>());

            sut.SendLimited(2);

            Assert.Equal(1, sut.UnsentMessagesCount);
        }
        public void AddMessageToBuffer()
        {
            var sut = new EmailMessageBuffer();

            sut.Add(_fixture.Create <EmailMessage>());

            Assert.That(sut.UnsentMessagesCount, Is.EqualTo(1));
        }
        public void SendLimited_ShouldSendTwoMessages_ManualSetup()
        {
            //arrange
            Mock <IEmailGateway> mockGateway = new Mock <IEmailGateway>();
            EmailMessageBuffer   sut         = new EmailMessageBuffer(mockGateway.Object);

            sut.Add(_fixture.Create <EmailMessage>());
            sut.Add(_fixture.Create <EmailMessage>());
            sut.Add(_fixture.Create <EmailMessage>());

            //act
            sut.SendLimited(2);

            //assert
            sut.UnsentMessagesCount.Should().Be(1);
            mockGateway.Verify(x => x.Send(It.IsAny <EmailMessage>()), Times.Exactly(2));
        }
        public void AddMessageToBuffer()
        {
            var fixture = new Fixture();
            var sut     = new EmailMessageBuffer();

            sut.Add(fixture.Create <EmailMessage>());

            Assert.Equal(1, sut.UnsentMessagesCount);
        }
예제 #7
0
 public void ShouldSendEmailToGateway_AutoMoqData_With_Freeze(
     EmailMessage message,
     [Frozen] Mock <IEmailGateway> mock,
     EmailMessageBuffer sut)
 {
     sut.Add(message);
     sut.SendAll();
     mock.Verify(x => x.Send(It.IsAny <EmailMessage>()), Times.Once);
 }
        public void RemoveMessageFromBufferWhenSent()
        {
            var sut = new EmailMessageBuffer();

            sut.Add(_fixture.Create <EmailMessage>());

            sut.SendAll();

            Assert.That(sut.UnsentMessagesCount, Is.EqualTo(0));
        }
예제 #9
0
        public void AddMessageToBuffer()
        {
            var fixture     = new Fixture();
            var mockGateway = new Mock <EmailGateway.IEmailGateway>();

            var sut = new EmailMessageBuffer(mockGateway.Object);

            sut.Add(fixture.Create <EmailMessage>());

            Assert.Equal(1, sut.UnsentMessagesCount);
        }
        public void SendEmailToGateway_AutoMoq_Theory(
            EmailMessage message,
            [Frozen] Mock <IEmailGateway> mockGateway,
            EmailMessageBuffer sut) // Notice the order of the parameters; the mock should be frozen before the SUT is created
        {
            sut.Add(message);

            sut.SendAll();

            mockGateway.Verify(x => x.Send(It.IsAny <EmailMessage>()), Times.Once);
        }
예제 #11
0
        public void SendEmailGateway_AutoMoq_v2(EmailMessage message,
                                                [Frozen] Mock <EmailGateway.IEmailGateway> mockGateway,
                                                EmailMessageBuffer sut)
        {
            sut.Add(message);

            sut.SendAll();

            //no reference to the mock IEmailGateway that was automatically provided
            mockGateway.Verify(x => x.Send(It.IsAny <EmailMessage>()), Times.Once);
        }
        public void RemoveMessageFromBufferWhenSent()
        {
            var fixture = new Fixture();
            var sut     = new EmailMessageBuffer();

            sut.Add(fixture.Create <EmailMessage>());

            sut.SendAll();

            Assert.Equal(0, sut.UnsentMessagesCount);
        }
        public void SendEmailToGateway_Manual_Moq()
        {
            var fixture     = new Fixture();
            var mockGateway = new Mock <IEmailGateway>();
            var sut         = new EmailMessageBuffer(mockGateway.Object);

            sut.Add(fixture.Create <EmailMessage>());

            sut.SendAll();

            mockGateway.Verify(x => x.Send(It.IsAny <EmailMessage>()), Times.Once);
        }
예제 #14
0
        public void QueueShouldBeEmpty(Fixture fixture, EmailMessageBuffer sut)
        {
            var collection = fixture.CreateMany <EmailMessage>(10);

            foreach (var emailMessage in collection)
            {
                sut.Add(emailMessage);
            }

            sut.SendAll();

            Assert.Empty(sut.Emails);
        }
        public void AutoCreation()
        {
            var fixture = new Fixture();
            var sut     = new EmailMessageBuffer();

            EmailMessage message = fixture.Create <EmailMessage>();

            //act
            sut.Add(message);

            //assert
            Assert.Single(sut.Emails);
        }
        public void SendEmailToGateway_AutoMoq(EmailMessage message,
                                               [Frozen] Mock <IEmailGateway> mockGateway,
                                               EmailMessageBuffer sut)
        {
            // arrange
            sut.Add(message);

            // act
            sut.SendAll();

            // assert
            mockGateway.Verify(x => x.Send(It.IsAny <EmailMessage>()), Times.Once());
        }
예제 #17
0
        public void AddMessageToBuffer()
        {
            var sut = new EmailMessageBuffer();

            var message = new EmailMessage("*****@*****.**",
                                           "Hi, hope you are good today, Jason",
                                           true);


            sut.Add(message);

            Assert.Equal(1, sut.UnsentMessagesCount);
        }
예제 #18
0
        public void AutoCreation()
        {
            // arrange
            var fixture = new Fixture();
            var sut     = new EmailMessageBuffer();

            EmailMessage message = fixture.Create <EmailMessage>();

            // act
            sut.Add(message);

            // assert
            Assert.Equal(1, sut.Emails.Count);
        }
예제 #19
0
        public void ShouldSendEmailToGateway_AutoMoqData_With_Freeze(EmailMessage message,
                                                                     //Use frozen to get the same intance used throughout the test
                                                                     [Frozen] Mock <IEmailGateway> mockGateway,
                                                                     EmailMessageBuffer sut)
        {
            // arrange
            sut.Add(message);

            // act
            sut.SendAll();

            // assert
            mockGateway.Verify(x => x.Send(It.IsAny <EmailMessage>()), Times.Once());
        }
예제 #20
0
        public void AutoCreation()
        {
            //arrange
            var fixture = new Fixture();
            var sut     = new EmailMessageBuffer();

            EmailMessage message = fixture.Create <EmailMessage>();

            //act
            sut.Add(message);

            //arrange
            Assert.That(sut.Emails, Has.Exactly(1).Items);
        }
        public void ManualCreation()
        {
            //arrange
            var          sut     = new EmailMessageBuffer();
            EmailMessage message = new EmailMessage("*****@*****.**", "Hope you are doing well", false, "Email Subject");

            message.Subject = "Hi";

            //act
            sut.Add(message);

            //assert
            Assert.Single(sut.Emails);
            // Assert.Equal(12,sut.Emails.Count);
        }
        public void SendAll_ShouldSendOneMessage_ManualSetup()
        {
            //arrange
            Mock <IEmailGateway> mockGateway = new Mock <IEmailGateway>();
            EmailMessageBuffer   sut         = new EmailMessageBuffer(mockGateway.Object);

            sut.Add(_fixture.Create <EmailMessage>());

            //act
            sut.SendAll();

            //assert
            sut.UnsentMessagesCount.Should().Be(0);
            mockGateway.Verify(x => x.Send(It.IsAny <EmailMessage>()), Times.Once());
        }
예제 #23
0
        public void RemoveMessageFromBufferWhenSent()
        {
            var sut = new EmailMessageBuffer();

            var message = new EmailMessage("*****@*****.**",
                                           "Hi, hope you are good today, Jason",
                                           true);

            sut.Add(message);


            sut.SendAll();

            Assert.Equal(0, sut.UnsentMessagesCount);
        }
        public void Add_ShouldAddOneMessageToTheBuffer_AutoCreation()
        {
            //arrange
            Mock <IEmailGateway> mockGateway          = new Mock <IEmailGateway>();
            EmailMessageBuffer   sut                  = new EmailMessageBuffer(mockGateway.Object);
            EmailMessage         expectedEmailMessage = _fixture.Create <EmailMessage>();

            //act
            sut.Add(expectedEmailMessage);

            //assert
            sut.Emails.Count.Should().Be(1);
            EmailMessage actualEmailMessage = sut.Emails[0];

            actualEmailMessage.ShouldBeEquivalentTo(expectedEmailMessage);
        }
        public void ManualCreation()
        {
            // arrange
            var sut = new EmailMessageBuffer();

            EmailMessage message = new EmailMessage("*****@*****.**",
                                                    "Hello, hope you are well, Jason",
                                                    false);

            message.Subject = "Hi";

            // act
            sut.Add(message);

            // assert
            Assert.Single(sut.Emails);
        }
예제 #26
0
        public void ShouldSendEmailToGateway_AutoMoqData(EmailMessage message,
                                                         Mock <IEmailGateway> mockGateway,
                                                         EmailMessageBuffer sut)
        //this test will fail because the instance used of mockGateway (Mock<IEmailGateway> mockGateway) is different by
        //the one generated by autofixture in sut
        //Use frozen to get the same instance used throughout the test,
        //cf. ShouldSendEmailToGateway_AutoMoqData_With_Freeze
        {
            // arrange
            sut.Add(message);

            // act
            sut.SendAll();

            // assert
            mockGateway.Verify(x => x.Send(It.IsAny <EmailMessage>()), Times.Once());
        }
예제 #27
0
        public void ShouldSendEmailToGateway_Manual_Rhino()
        {
            // arrange
            var fixture = new Fixture();

            var mockGateway = MockRepository.GenerateStub <IEmailGateway>();

            var sut = new EmailMessageBuffer(mockGateway);

            sut.Add(fixture.Create <EmailMessage>());


            // act
            sut.SendAll();


            // assert
            mockGateway.AssertWasCalled(x => x.Send(Arg <EmailMessage> .Is.NotNull));
        }
예제 #28
0
        public void ShouldSendEmailToGateway_Manual_Moq()
        {
            // arrange
            var fixture = new Fixture();

            var mockGateway = new Mock <IEmailGateway>();

            //Added an extra params to break the test but autofixture with automoq doesn't break
            var sut = new EmailMessageBuffer(mockGateway.Object);

            sut.Add(fixture.Create <EmailMessage>());


            // act
            sut.SendAll();


            // assert
            mockGateway.Verify(x => x.Send(It.IsAny <EmailMessage>()), Times.Once());
        }
예제 #29
0
        public void ManualCreation()
        {
            //arrange
            var sut = new EmailMessageBuffer();

            EmailMessage message =
                new EmailMessage(
                    It.IsAny <string>(),
                    It.IsAny <string>(),
                    It.IsAny <bool>(),
                    It.IsAny <string>())
            {
                Subject = "Hi"
            };

            //act
            sut.Add(message);

            //arrange
            Assert.That(sut.Emails, Has.Exactly(1).Items);
        }
 public void AddMessageToBuffer()
 {
     SUT.Add(EmailMessage1);
     SUT.UnsentMessagesCount.Should().Be(1);
 }