public void Get_ReturnsViewModel_Test()
        {
            // Setup

            // Act
            var result = target.Index() as ViewResult;
            var model  = result.Model as CalculatorViewModel;

            // Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(model);
            Assert.AreEqual(0, model.N);
            Assert.IsNull(model.Result);
        }
        public void calculate_should_call_calculator_service()
        {
            //arrange
            var result = new Result();

            var calculateService = Substitute.For <ICalculateService>();

            calculateService.Calculate(null, 0).ReturnsForAnyArgs(c => result);

            var documentSession = Substitute.For <IDocumentSession>();

            documentSession.Query <TaxRate>().Returns(new FakeRavenQueryable <TaxRate>(Enumerable.Empty <TaxRate>().AsQueryable()));

            var controller = new CalculatorController(calculateService)
            {
                DocumentSession = documentSession
            };

            var model = new TaxCalculateViewModel
            {
                SelectedYear  = 1,
                TaxableIncome = 1,
            };

            //act
            controller.Index(model);

            //assert
            calculateService.ReceivedWithAnyArgs().Calculate(null, 0);
            Assert.AreEqual(result, model.Result);
        }
Example #3
0
        public void Calculate_WhenParamsEqual_5MinsUnits_2MilesUnits_2010_10_08_5_30PM_ToEqual_975Fare_ReturnsJsonResult()
        {
            //arrange
            var service    = new CalculatorService();
            var controller = new CalculatorController(service);

            AngularJS.Cab.Fare.Calculator.Models.CabFareModel input = new AngularJS.Cab.Fare.Calculator.Models.CabFareModel()
            {
                numMinutesAbove6mph = 5,
                numMilesBelow6mph   = 2,
                dateOfTrip          = new DateTime(2010, 10, 8),
                timeOfTrip          = DateTime.ParseExact("17:30:00", "HH:mm:ss", CultureInfo.InvariantCulture),
                minuteUnit          = 0,
                mileUnit            = 0,
                nightCharge         = 0,
                weekDayCharge       = 0,
                totalUnitsFee       = 0,
                totalFare           = 0
            };

            //perform the action
            var actual = controller.Index(input);

            //assert
            Assert.IsInstanceOfType(actual, typeof(JsonResult), "Should have returned a JsonResult");
            var jsonResult = (JsonResult)actual;

            Assert.IsInstanceOfType(jsonResult.Data, typeof(CabFareModel), "Data not able ton convert to CabFareModel");
            var model = (CabFareModel)jsonResult.Data;

            Assert.AreEqual(9.75, model.totalFare, "The total fare is wrong");
        }
Example #4
0
        public void IndexGet()
        {
            CalculatorController controller = new CalculatorController();
            ViewResult           result     = controller.Index() as ViewResult;

            Assert.IsNotNull(result);
        }
        public void TestIndexView()
        {
            var obj       = new CalculatorController();
            var model     = new CalculatorModel();
            var actResult = obj.Index(model) as ViewResult;

            Assert.IsNotNull(actResult);
        }
Example #6
0
        public void IndexPostOperation()
        {
            CalculatorController controller = new CalculatorController();

            IndexGet();
            ViewResult result = controller.Index("operation", "=") as ViewResult;

            Assert.IsNotNull(result);
        }
Example #7
0
        public void IndexPostParam()
        {
            CalculatorController controller = new CalculatorController();

            IndexGet();
            ViewResult result = controller.Index("param", "1") as ViewResult;

            Assert.IsNotNull(result);
        }
        public void TestIndex()
        {
            // Arrange
            CalculatorController controller = new CalculatorController();

            // Act
            ViewResult result = controller.Index() as ViewResult;

            // Assert
            Assert.IsNotNull(result);
        }
        public void TestCalculatorInvalidBODY()
        {
            var obj   = new CalculatorController();
            var model = new CalculatorModel()
            {
                BandAColor = CalculatorModel.BandColor.Brown,
                BandBColor = CalculatorModel.BandColor.Orange,
                BandCColor = CalculatorModel.BandColor.DisgustingColor,
                BandDColor = CalculatorModel.BandColor.Yellow
            };

            ViewResult result = obj.Index(model) as ViewResult;

            Assert.False(obj.ModelState.IsValid);
        }
        public void TestCalculatorValidWWWB()
        {
            var obj   = new CalculatorController();
            var model = new CalculatorModel()
            {
                BandAColor = CalculatorModel.BandColor.White,
                BandBColor = CalculatorModel.BandColor.White,
                BandCColor = CalculatorModel.BandColor.White,
                BandDColor = CalculatorModel.BandColor.Black
            };

            ViewResult result = obj.Index(model) as ViewResult;

            Assert.That(result.ViewBag.Message.Trim(), Is.EqualTo("99000000000 +/- 5%"));
        }
        public void TestCalculatorValidRGBW()
        {
            var obj   = new CalculatorController();
            var model = new CalculatorModel()
            {
                BandAColor = CalculatorModel.BandColor.Red,
                BandBColor = CalculatorModel.BandColor.Green,
                BandCColor = CalculatorModel.BandColor.Blue,
                BandDColor = CalculatorModel.BandColor.White
            };

            ViewResult result = obj.Index(model) as ViewResult;

            Assert.That(result.ViewBag.Message.Trim(), Is.EqualTo("25000000"));
        }
        public void TestCalculatorValidRVGBWikipedia()
        {
            var obj   = new CalculatorController();
            var model = new CalculatorModel()
            {
                BandAColor = CalculatorModel.BandColor.Red,
                BandBColor = CalculatorModel.BandColor.Violet,
                BandCColor = CalculatorModel.BandColor.Green,
                BandDColor = CalculatorModel.BandColor.Brown
            };

            ViewResult result = obj.Index(model) as ViewResult;

            Assert.That(result.ViewBag.Message.Trim(), Is.EqualTo("2700000 +/- 1%"));
        }
Example #13
0
        public async Task Donor_Calculates_Deductible_With_Negative_Donation_Amount()
        {
            //Arrange
            var calculateService = new CalculateService();
            var taxRateService   = new TaxRateService();
            var controller       = new CalculatorController(calculateService, taxRateService);

            //Act
            ViewResult result = await controller.Index(-500, 20, null) as ViewResult;

            //Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Model);
            Assert.IsInstanceOfType(result.Model, typeof(CalculatedVM));
            Assert.AreEqual(0, ((CalculatedVM)result.Model).DonatedAmount);
            Assert.AreEqual(20, ((CalculatedVM)result.Model).TaxRate);
            Assert.AreEqual("0", ((CalculatedVM)result.Model).Supplement);
            Assert.AreEqual(0, ((CalculatedVM)result.Model).DeductibleAmount);
            Assert.AreEqual("Enter a positive dontation amount!", ((CalculatedVM)result.Model).ErrorMessage);
        }
        public void index_action_should_query_taxrates()
        {
            //arrange
            var calculateService = Substitute.For <ICalculateService>();
            var documentSession  = Substitute.For <IDocumentSession>();

            documentSession.Query <TaxRate>().Returns(new FakeRavenQueryable <TaxRate>(Enumerable.Empty <TaxRate>().AsQueryable()));

            var controller = new CalculatorController(calculateService)
            {
                DocumentSession = documentSession
            };

            //act
            controller.Index();

            //assert
            documentSession.Received().Query <TaxRate>();
            Assert.IsInstanceOf <IEnumerable <SelectListItem> >(controller.ViewBag.TaxRatesList);
        }
Example #15
0
        public async Task EventPromotor_Calculates_Deductible_With_Supplement()
        {
            //Arrange
            var calculateService = new CalculateService();
            var taxRateService   = new TaxRateService();
            var controller       = new CalculatorController(calculateService, taxRateService);

            //Act
            ViewResult result = await controller.Index(25000, 20, "1,05") as ViewResult;

            //Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Model);
            Assert.IsInstanceOfType(result.Model, typeof(CalculatedVM));
            Assert.AreEqual(25000, ((CalculatedVM)result.Model).DonatedAmount);
            Assert.AreEqual(20, ((CalculatedVM)result.Model).TaxRate);
            Assert.AreEqual("1,05", ((CalculatedVM)result.Model).Supplement);
            Assert.AreEqual(6562.49951171875, ((CalculatedVM)result.Model).DeductibleAmount);
            Assert.AreEqual(null, ((CalculatedVM)result.Model).ErrorMessage);
        }
        public async Task Administrator_Changes_Tax_Rate()
        {
            //Arrange
            var calculateService = new CalculateService();
            var taxRateService   = new TaxRateService();
            var controller       = new CalculatorController(calculateService, taxRateService);

            //Act
            ViewResult result = await controller.Index(25000, 25, null) as ViewResult;

            //Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Model);
            Assert.IsInstanceOfType(result.Model, typeof(CalculatedVM));
            Assert.AreEqual(25000, ((CalculatedVM)result.Model).DonatedAmount);
            Assert.AreEqual(25, ((CalculatedVM)result.Model).TaxRate);
            Assert.AreEqual("0", ((CalculatedVM)result.Model).Supplement);
            Assert.AreEqual(8333.333984375, ((CalculatedVM)result.Model).DeductibleAmount);
            Assert.AreEqual(null, ((CalculatedVM)result.Model).ErrorMessage);
            Assert.AreEqual(25, taxRateService.GetTaxRate());
        }