예제 #1
0
        public void CalculatePremiumReturnsExpectedResultFor30YrOldMale()
        {
            const int    targetAgeToday = 30;
            const string gender         = "male";

            var input   = TestingShared.GetPremiumInput(targetAgeToday, "A Rose", gender);
            var age     = input.DateOfBirth.CalculateAge();
            var premium = PremiumCalculations.CalculatePremium(age, input.Gender);

            Assert.AreEqual(3600, premium);
        }
예제 #2
0
        public void CalculateAgeWorksFor50YrsAgoToday()
        {
            //Arrange
            const int targetAgeToday    = 50;
            var       sameDateXYearsAgo = TestingShared.SameDateXYearsAgo(targetAgeToday);

            //Act
            var age = sameDateXYearsAgo.CalculateAge();

            //Assert
            Assert.AreEqual(targetAgeToday, age);
        }
예제 #3
0
        public void CalculatePremiumReturnsExpectedResultFor40YrOldFemale()
        {
            //Arrange
            const int    targetAgeToday = 40;
            const string gender         = "female";

            var input = TestingShared.GetPremiumInput(targetAgeToday, "A Rose", gender);
            var age   = input.DateOfBirth.CalculateAge();

            //Act
            var premium = PremiumCalculations.CalculatePremium(age, input.Gender);

            //Assert
            Assert.AreEqual(4400, premium);
        }
예제 #4
0
        public void Can_call_GeneratePremiumService()
        {
            //Arrange
            var       service        = appHost.Container.Resolve <PremiumService>();
            const int targetAgeToday = 18;
            var       input          = TestingShared.GetPremiumInput(targetAgeToday, "A Rose", "male");
            var       age            = input.DateOfBirth.CalculateAge();
            var       premium        = PremiumCalculations.CalculatePremium(age, input.Gender);

            //Act
            var response = (PremiumInputResponse)service.Post(input);

            //Assert
            Assert.That(response.Result, Is.EqualTo($"Your premium is ${premium}"));
        }
예제 #5
0
        public void CalculatePremiumThrowsIfUnder18()
        {
            void CheckFunction()
            {
                //Arrange
                const int targetAgeToday = 17;
                var       input          = TestingShared.GetPremiumInput(targetAgeToday, "A Rose", "male");
                var       age            = input.DateOfBirth.CalculateAge();

                //Act
                PremiumCalculations.CalculatePremium(age, input.Gender);
            }

            //Assert
            Assert.Throws(typeof(ArgumentException), CheckFunction);
        }
예제 #6
0
        public void Can_call_Premium_Service()
        {
            var client = CreateClient();

            const int targetAgeToday = 18;
            var       input          = TestingShared.GetPremiumInput(targetAgeToday, "A Rose", "male");

            var age = input.DateOfBirth.CalculateAge();

            Assert.AreEqual(targetAgeToday, age);

            var premium = PremiumCalculations.CalculatePremium(age, input.Gender);

            var response = client.Post(input);

            Assert.That(response.Result, Is.EqualTo($"Your premium is ${premium}"));;
        }