public void GetDetails_Test() { //Arrange IInsuranceService service = InsuranceFactory.GetInsuranceObj(); int age = 25; double sum = 50000; Details expected = new Details(); expected.Age = age; expected.Sum = sum; expected.RiskPremium = 0.82; expected.RenewalCommision = 0.02; expected.NetPremium = 0.84; expected.InitialCommission = 1.72; expected.GrossPremium = 2.56; expected.Notes = "Successfully return a premium"; Details actual = new Details(); actual.Age = age; actual.Sum = sum; //Act actual = service.GetDetails(actual); //Assert Assert.AreEqual(expected.RiskPremium, actual.RiskPremium); Assert.AreEqual(expected.GrossPremium, actual.GrossPremium); }
public void GetDetails_InvalidSum() { //Arrange IInsuranceService service = InsuranceFactory.GetInsuranceObj(); string expected = "Unable to provide premium"; Details actual = new Details(); actual.Age = 62; actual.Sum = 350000; //Act actual = service.GetDetails(actual); //Assert Assert.AreEqual(expected, actual.Notes); }
public void GetDetails_InvalidAge() { //Arrange IInsuranceService service = InsuranceFactory.GetInsuranceObj(); string expected = "Invalid Age. Age Range is 18 - 65"; Details actual = new Details(); actual.Age = 16; actual.Sum = 25000; //Act actual = service.GetDetails(actual); //Assert Assert.AreEqual(expected, actual.Notes); }
public IHttpActionResult GetInsurance([FromBody] Details details) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { IInsuranceService insuranceService = InsuranceFactory.GetInsuranceObj(); details = insuranceService.GetDetails(details); return(Ok(details)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <IActionResult> Create(string accountId) { var loggedInUser = await userManager.GetUserAsync(HttpContext.User); var accIds = new List <string>(); var accs = await accounts.LoadAccountsForUser(loggedInUser.Id); foreach (var acc in accs) { accIds.Add(acc.Data.ID); } ViewBag.Accounts = accIds; ViewBag.InsuranceTypes = Enum.GetValues(typeof(InsuranceType)).Cast <InsuranceType>(); if (accountId == null) { accountId = accIds.FirstOrDefault() ?? "Unspecified"; } return(View(InsuranceViewFactory.Create( InsuranceFactory.CreateInsurance(null, null, "", "", accountId)))); }
static void Main(string[] args) { var carInsurance = InsuranceFactory.Create(InsuranceType.Car); var carInsurancePolicy = carInsurance.AuthorizeInsurance(); Console.WriteLine($"Car insurance policy: {carInsurancePolicy}"); var cellPhoneInsurance = InsuranceFactory.Create(InsuranceType.CellPhone); var cellPhoneInsurancePolicy = cellPhoneInsurance.AuthorizeInsurance(); Console.WriteLine($"Cell Phone insurance policy: {cellPhoneInsurancePolicy}"); var houseInsurance = InsuranceFactory.Create(InsuranceType.House); var houseInsurancePolicy = houseInsurance.AuthorizeInsurance(); Console.WriteLine($"House insurance policy: {houseInsurancePolicy}"); var motorcycleInsurance = InsuranceFactory.Create(InsuranceType.Motorcycle); var motorcycleInsurancePolicy = motorcycleInsurance.AuthorizeInsurance(); Console.WriteLine($"Motorcycle insurance policy: {motorcycleInsurancePolicy}"); Console.ReadKey(); }
public void CreateInsuranceTest() { o = InsuranceFactory.CreateInsurance(id, payment, typeA, status, accountId, validFrom, validTo); validateResults(id, payment, status, typeA, accountId, validFrom, validTo); }
private static void Main() { var productCategory = ShowMenu(); #region Naive implementation Product product; switch (productCategory) { case ProductCategory.Insurance: product = new InsuranceProduct(); break; case ProductCategory.Messenger: product = new GhasedakProduct(); break; case ProductCategory.IaaS: product = new ArvanCloudProduct(); break; case ProductCategory.CreditCalculation: product = new AbaciProduct(); break; case ProductCategory.Security: product = new SejelProduct(); break; default: throw new ArgumentOutOfRangeException(); } Report("Naive Method", product); #endregion #region Using SimpleFactory var productViaSimpleFactory = SimpleFactory.CreateProduct(productCategory); Report("Using SimpleFactory", productViaSimpleFactory); #endregion #region Using factory method Product productViaFactoryMethod; switch (productCategory) { case ProductCategory.Insurance: productViaFactoryMethod = new InsuranceFactory().CreateProduct(); break; case ProductCategory.Messenger: productViaFactoryMethod = new MessengerFactory().CreateProduct(); break; case ProductCategory.IaaS: productViaFactoryMethod = new IaaSFactory().CreateProduct(); break; case ProductCategory.CreditCalculation: productViaFactoryMethod = new CreditCalculationFactory().CreateProduct(); break; case ProductCategory.Security: productViaFactoryMethod = new SecurityFactory().CreateProduct(); break; default: throw new ArgumentOutOfRangeException(); } Report("Using FactoryMethod", productViaFactoryMethod); #endregion #region Using abstract factory var apf2 = new AbstractProductFactory2(new IaaSFactory()); var p2 = apf2.CreateProductInstance(); Report("Using apf2:", p2); var apf = new MessengerAbstractProductFactory(); var productViaApf = apf.CreateProductInstance(); Report("Using Abstract Factory", productViaApf); #endregion //CreateAndReportProduct(productCategory); }