コード例 #1
0
        public void GivenCustomerCsvWhenCustomerStreamIsPresentThenGenerateRenewalInvitationLetters()
        {
            // Arrange
            var mockPremiumBuilder = new Mock <IPremiumBuilder <Customer> >();
            var mockCsvReader      = new Mock <ICsvReader>();
            var mockTextWriter     = new Mock <ITextWriter>();
            var mockLogger         = new Mock <ILogger <LetterGeneratorController> >();

            var customers = this.GetCustomersMock();

            mockCsvReader.Setup(x => x.Parse <Customer>(It.IsAny <Stream>())).Returns(customers);
            mockPremiumBuilder.Setup(x => x.Set(It.IsAny <Customer>())).Returns(mockPremiumBuilder.Object);
            mockPremiumBuilder.Setup(x => x.CalculateAverageMonthlyPremium()).Returns(mockPremiumBuilder.Object);
            mockPremiumBuilder.Setup(x => x.CalculateCreditCharge()).Returns(mockPremiumBuilder.Object);
            mockPremiumBuilder.Setup(x => x.CalculateInitialMonthlyPaymentAmount()).Returns(mockPremiumBuilder.Object);
            mockPremiumBuilder.Setup(x => x.CalculateOtherMonthlyPaymentsAmount()).Returns(mockPremiumBuilder.Object);
            mockPremiumBuilder.Setup(x => x.CalculateTotalPremium()).Returns(mockPremiumBuilder.Object);

            var status = new Status("TestComments", true);

            mockTextWriter.Setup(x => x.Generate(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Customer>())).Returns(status);
            var fileMock = new Mock <IFormFile>();

            var controller = new LetterGeneratorController(mockCsvReader.Object, mockPremiumBuilder.Object,
                                                           mockTextWriter.Object, mockLogger.Object);

            // Act
            var result = controller.Post(fileMock.Object);

            // Assert
            mockCsvReader.Verify(c => c.Parse <Customer>(It.IsAny <Stream>()), Times.Once);
            Assert.IsTrue(result[0].IsSuccess);
            Assert.AreEqual("TestComments", result[0].Comments);
        }
コード例 #2
0
        public void GivenCustomerCsvWhenCustomerIsNullThenReturnNullReferenceException()
        {
            // Arrange
            var mockInvitationService = new Mock <IInvitationService>();
            var mockCsvReader         = new Mock <ICsvReader>();

            mockCsvReader.Setup(x => x.Parse <Customer>(It.IsAny <string>()));
            var controller = new LetterGeneratorController(mockCsvReader.Object, mockInvitationService.Object);

            // Act
            Action actual = () => controller.Get();

            // Assert
            Assert.ThrowsException <NullReferenceException>(actual);
        }
コード例 #3
0
        public void GivenCustomerCsvWhenCustomerStreamIsPresentThenGenerateRenewalInvitationLetters()
        {
            // Arrange
            var mockInvitationService = new Mock <IInvitationService>();
            var mockCsvReader         = new Mock <ICsvReader>();

            var customers = this.GetCustomersMock();

            mockCsvReader.Setup(x => x.Parse <Customer>(It.IsAny <string>())).Returns(customers);
            mockInvitationService.Setup(x => x.GenerateInvitationLetter(It.IsAny <Customer>()));
            var controller = new LetterGeneratorController(mockCsvReader.Object, mockInvitationService.Object);

            // Act
            var result = controller.Get();

            // Assert
            mockCsvReader.Verify(c => c.Parse <Customer>(It.IsAny <string>()), Times.Once);
            Assert.IsTrue(result);
        }
コード例 #4
0
        public void GivenCustomerCsvWhenCustomerIsNullThenReturnNullReferenceException()
        {
            // Arrange
            var mockPremiumBuilder = new Mock <IPremiumBuilder <Customer> >();
            var mockCsvReader      = new Mock <ICsvReader>();
            var mockTextWriter     = new Mock <ITextWriter>();
            var mockLogger         = new Mock <ILogger <LetterGeneratorController> >();

            mockCsvReader.Setup(x => x.Parse <Customer>(It.IsAny <Stream>()));
            var fileMock = new Mock <IFormFile>();

            var controller = new LetterGeneratorController(mockCsvReader.Object, mockPremiumBuilder.Object,
                                                           mockTextWriter.Object, mockLogger.Object);

            // Act
            Action actual = () => controller.Post(fileMock.Object);

            // Assert
            Assert.ThrowsException <NullReferenceException>(actual);
        }