Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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));
            }
        }
Ejemplo n.º 5
0
        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))));
        }
Ejemplo n.º 6
0
        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();
        }
Ejemplo n.º 7
0
 public void CreateInsuranceTest()
 {
     o = InsuranceFactory.CreateInsurance(id, payment, typeA, status, accountId, validFrom, validTo);
     validateResults(id, payment, status, typeA, accountId, validFrom, validTo);
 }
Ejemplo n.º 8
0
        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);
        }