コード例 #1
0
 public CalculatorPage()
 {
     InitializeComponent();
     On <Xamarin.Forms.PlatformConfiguration.iOS>().SetUseSafeArea(true);
     VM = new CalculatorPageViewModel(_tipCalculator, _tipCalcTransaction, _tipDatabase);
     InitializeEventHandlers();
     BindingContext = VM;
 }
        public void SetTipText_InValidEntry_CalculatorContainsZeroForTip()
        {
            var myCalculatorViewModel = new CalculatorPageViewModel(myCalculator, myTipCalcTransaction, myTipDatabase)
            {
                TipTxt = "ABCD"
            };

            Assert.AreEqual(0, myCalculator.Tip);
        }
        public void SetTipPercent_ValidPositiveNumericalEntry_CalculatorContainsMatchingTipDecimalValue()
        {
            var myCalculatorViewModel = new CalculatorPageViewModel(myCalculator, myTipCalcTransaction, myTipDatabase)
            {
                TipPercent = 10
            };

            Assert.AreEqual(myCalculatorViewModel.TipPercent, myCalculator.TipPercent);
        }
コード例 #4
0
 public CalculatorPage()
 {
     InitializeComponent();
     On <iOS>().SetUseSafeArea(true);
     EntryLaiSuatPerYear.Text = Language.lai_suat + " (%/" + Language.year.ToLower() + ")";
     this.BindingContext      = viewModel = new CalculatorPageViewModel();
     ModalCalculatorResult.Body.BindingContext = viewModel;
     Init();
 }
        public void SetTipText_ValidNegativeNumericalEntry_CalculatorContainsMatchingTipDecimalValue()
        {
            var myCalculatorViewModel = new CalculatorPageViewModel(myCalculator, myTipCalcTransaction, myTipDatabase)
            {
                TipTxt = "-5.34"
            };

            Assert.AreEqual(decimal.Parse(myCalculatorViewModel.TipTxt), myCalculator.Tip);
        }
        public void SplitCheck_ThreePersons_TotalPerPersonTxtEqualsOneHalfGrandTotalTxt()
        {
            var myCalculatorViewModel = new CalculatorPageViewModel(myCalculator, myTipCalcTransaction, myTipDatabase)
            {
                TotalTxt        = "99.00",
                TipPercent      = 0,
                NumberOfPersons = 3
            };

            Assert.AreEqual("33.00", myCalculatorViewModel.TotalPerPersonTxt);
        }
        public void SplitCheck_OnePerson_TotalPerPersonTxtEqualsGrandTotalTxt()
        {
            var myCalculatorViewModel = new CalculatorPageViewModel(myCalculator, myTipCalcTransaction, myTipDatabase)
            {
                TotalTxt        = "149.36",
                TipPercent      = 15,
                NumberOfPersons = 1
            };

            Assert.AreEqual(myCalculatorViewModel.TotalPerPersonTxt, myCalculatorViewModel.GrandTotalTxt);
        }
        public async Task SaveTipTransaction_ValidTip_PositiveTipTransactionIdAsync()
        {
            var myCalculatorViewModel = new CalculatorPageViewModel(myCalculator, myTipCalcTransaction, myTipDatabase)
            {
                TotalTxt   = "100.00",
                TipPercent = 10,
            };

            int result = await myCalculatorViewModel.SaveTipTransactionAsync();

            Assert.IsTrue(result > 0);
        }
        public void RoundTip_Total49_36TipPercent18_GrandTotal176()
        {
            var myCalculatorViewModel = new CalculatorPageViewModel(myCalculator, myTipCalcTransaction, myTipDatabase)
            {
                TotalTxt   = "149.36",
                TipPercent = 18
            };

            myCalculatorViewModel.RoundTotal();

            Assert.AreEqual("176.00", myCalculatorViewModel.GrandTotalTxt);
            Assert.AreEqual("26.64", myCalculatorViewModel.TipTxt);
        }
        public void CalculateTipPercentFor6_30On35Total_ValidInput_TipPercentageIs18_TotalIs41_30Dollars()
        {
            var myCalculatorViewModel = new CalculatorPageViewModel(myCalculator, myTipCalcTransaction, myTipDatabase)
            {
                TotalTxt = "35",
                TipTxt   = "6.30"
            };

            Assert.AreEqual("6.30", myCalculatorViewModel.TipTxt);
            Assert.AreEqual(18, myCalculatorViewModel.TipPercent);
            Assert.AreEqual("18.0", myCalculatorViewModel.TipPercentTxt);
            Assert.AreEqual("41.30", myCalculatorViewModel.GrandTotalTxt);
        }
        public void CalculateTipPercentageFor10DollarTipOn100Total_ValidInput_TipPercentageIs10_TotalIs110Dollars()
        {
            var myCalculatorViewModel = new CalculatorPageViewModel(myCalculator, myTipCalcTransaction, myTipDatabase)
            {
                TotalTxt = "100",
                TipTxt   = "10"
            };

            Assert.AreEqual("10", myCalculatorViewModel.TipTxt);
            Assert.AreEqual(10, myCalculatorViewModel.TipPercent);
            Assert.AreEqual("10.0", myCalculatorViewModel.TipPercentTxt);
            Assert.AreEqual("110.00", myCalculatorViewModel.GrandTotalTxt);
        }
        public void RoundTipThenUnRoundTip_Total49_36TipPercent15_GrandTotal171_76()
        {
            var myCalculatorViewModel = new CalculatorPageViewModel(myCalculator, myTipCalcTransaction, myTipDatabase)
            {
                TotalTxt   = "149.36",
                TipPercent = 15
            };

            myCalculatorViewModel.RoundTotal();
            myCalculatorViewModel.UnRoundTotal();

            Assert.AreEqual("171.76", myCalculatorViewModel.GrandTotalTxt);
            Assert.AreEqual("22.40", myCalculatorViewModel.TipTxt);
        }
        public async Task SaveTipTransaction_ValidTip_CalculatorAndTransactionValuesMatchAsync()
        {
            var myCalculatorViewModel = new CalculatorPageViewModel(myCalculator, myTipCalcTransaction, myTipDatabase)
            {
                TotalTxt   = "100.00",
                TipPercent = 10,
            };

            int result = await myCalculatorViewModel.SaveTipTransactionAsync();

            Assert.AreEqual(myCalculator.GrandTotal, myTipCalcTransaction.GrandTotal);
            Assert.AreEqual(myCalculator.NumberOfPersons, myTipCalcTransaction.NumOfPersons);
            Assert.AreEqual(myCalculator.Tip, myTipCalcTransaction.Tip);
            Assert.AreEqual(myCalculator.TipPercent, myTipCalcTransaction.TipPercent);
            Assert.AreEqual(myCalculator.Total, myTipCalcTransaction.Total);
            Assert.AreEqual(myCalculator.TotalPerPerson, myTipCalcTransaction.TotalPerPerson);
            Assert.AreEqual(false, myTipCalcTransaction.Split);
            Assert.IsNotNull(myTipCalcTransaction.Split);
        }
        public void ResetCalulator_ValidViewModel_CalculatorResetToInitialState()
        {
            var myCalculatorViewModel = new CalculatorPageViewModel(myCalculator, myTipCalcTransaction, myTipDatabase)
            {
                TotalTxt = "35",
                TipTxt   = "6.30"
            };

            var newCalculator          = new TipCalculator();
            var newCalculatorViewModel = new CalculatorPageViewModel(myCalculator, myTipCalcTransaction, myTipDatabase);

            myCalculatorViewModel.ResetCalculator();

            Assert.AreEqual(newCalculatorViewModel.TotalTxt, myCalculatorViewModel.TotalTxt);
            Assert.AreEqual(newCalculatorViewModel.TipTxt, myCalculatorViewModel.TipTxt);
            Assert.AreEqual(newCalculatorViewModel.TipPercent, myCalculatorViewModel.TipPercent);
            Assert.AreEqual(newCalculatorViewModel.TipPercentTxt, myCalculatorViewModel.TipPercentTxt);
            Assert.AreEqual(newCalculatorViewModel.GrandTotalTxt, myCalculatorViewModel.GrandTotalTxt);
        }
コード例 #15
0
        public IActionResult Index()
        {
            // Удалим папку с пользовательскими распределениями при загрузке главной страницы. Если ее не было то создадим.
            var customDistrFolderName = Path.Combine(Directory.GetCurrentDirectory(), CUSTOM_DISTR_FOLDER_NAME);

            if (Directory.Exists(customDistrFolderName))
            {
                Directory.Delete(customDistrFolderName, true);
            }

            var shortDistrNamesByFullNames = DistributionNames.FullDistrNamesByShortNames.ToDictionary(k => k.Value, v => v.Key);
            var viewModel = new CalculatorPageViewModel
            {
                ParametersByDistributionsName = DistributionNames.ParametersByDistributionsName,
                ShortDistrNamesByFullNames    = shortDistrNamesByFullNames
            };

            return(View(viewModel));
        }
コード例 #16
0
        public CalculatorPage()
        {
            this.InitializeComponent();

            DataContext = new CalculatorPageViewModel();
        }