예제 #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);
        }
예제 #2
0
        public void AddingToExistingList()
        {
            var fixture = new Fixture();
            var sut     = new EmailMessageBuffer();

            fixture.AddManyTo(sut.Emails, 100);
        }
        public void AddMessageToBuffer()
        {
            var sut = new EmailMessageBuffer();

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

            Assert.That(sut.UnsentMessagesCount, Is.EqualTo(1));
        }
예제 #4
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 AddMessageToBuffer()
        {
            var fixture = new Fixture();
            var sut     = new EmailMessageBuffer();

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

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

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

            sut.SendAll();

            Assert.That(sut.UnsentMessagesCount, Is.EqualTo(0));
        }
예제 #7
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);
        }
예제 #8
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_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);
        }
        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);
        }
        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 Foo_AutoMoq_WithReturnValue()
        {
            _fixture.Customize(new AutoMoqCustomization());
            Mock <IEmailGateway> mockGateway  = _fixture.Freeze <Mock <IEmailGateway> >();
            EmailMessageBuffer   sut          = _fixture.Create <EmailMessageBuffer>();
            EmailMessage         emailMessage = _fixture.Create <EmailMessage>();

            string wasSent = sut.SendOne(emailMessage);

            wasSent.Should().Be("The call was successful.");
            mockGateway.Verify(x => x.Send(emailMessage), Times.Once);
        }
        public void SendAll_ShouldSendThreeMessages_AutoMoqData([Frozen] Mock <IEmailGateway> mockGateway,
                                                                EmailMessageBuffer sut)
        {
            //arrange

            //act
            sut.SendAll();

            //assert
            sut.UnsentMessagesCount.Should().Be(0);
            mockGateway.Verify(x => x.Send(It.IsAny <EmailMessage>()), Times.Exactly(3));
        }
        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());
        }
        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);
        }
예제 #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);
        }
        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);
        }
예제 #19
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);
        }
예제 #20
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);
        }
        public void SendAll_ShouldSendThreeMessages_AutoMoqAndFreeze()
        {
            //arrange
            _fixture.Customize(new AutoMoqCustomization());
            Mock <IEmailGateway> mockGateway = _fixture.Freeze <Mock <IEmailGateway> >();
            EmailMessageBuffer   sut         = _fixture.Create <EmailMessageBuffer>();

            //act
            sut.SendAll();

            //assert
            sut.UnsentMessagesCount.Should().Be(0);
            mockGateway.Verify(x => x.Send(It.IsAny <EmailMessage>()), Times.Exactly(3));
        }
예제 #22
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());
        }
예제 #23
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 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());
        }
        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);
        }
예제 #26
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 SetUp()
        {
            // ************ AutoFixture.AutoMoq: This AutoMoqCustomization now can create Moq Interfaces! So we no longer need to create a Moq IEmailGateway.
            var fixture = new Fixture()
                          .Customize(new AutoMoqCustomization());

            EmailMessage1 = fixture.Create <EmailMessage>();
            EmailMessage2 = fixture.Create <EmailMessage>();
            EmailMessage3 = fixture.Create <EmailMessage>();

            // ********** Now we freeze this so that the IEmailGateway is always the same, now we can use .Verify() on it.
            MockEmailGateway = fixture
                               .Freeze <Mock <IEmailGateway> >();

            SUT = fixture.Create <EmailMessageBuffer>();
        }
        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);
        }
예제 #30
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());
        }