public void SetSpecialNumbers_WhenSpecialNumberSettersAreCalled()
        {
            // Arrange
            var vm = MockFactories.FinCalcViewModelWithCalculatorImplementationFactory(out _);

            // Act
            var testSequence = new[]
            {
                Ca.Nr1, Ca.Nr0, Ca.SetRpa,
                Ca.Nr1, Ca.Nr0, Ca.SetYears,
                Ca.Nr2, Ca.SetInt,
                Ca.Nr1, Ca.Nr5, Ca.Nr0, Ca.Nr0, Ca.Nr0, Ca.Nr0, Ca.SetStart,
                Ca.Nr34, Ca.Nr0, Ca.Alg, Ca.SetRate,
                Ca.Nr1, Ca.Nr0, Ca.Nr0, Ca.Nr0, Ca.Nr0, Ca.SetEnd,
            };

            FinCalcViewModelHelper.ExecuteDummyActions(vm, testSequence);

            // Assert
            vm.RatesPerAnnumNumber.Should().Be(10);
            vm.YearsNumber.Should().Be(10);
            vm.StartNumber.Should().Be(150000);
            vm.InterestNumber.Should().Be(2);
            vm.NominalInterestRateNumber.Should().BeApproximately(1.98, 0.01);
            vm.RateNumber.Should().Be(-340);
            vm.RepaymentRateNumber.Should().BeApproximately(0.28, 0.01);
            vm.EndNumber.Should().Be(10000);
        }
示例#2
0
        public void ResetInputState_WhenPressedAfterSpecialFunction(Ca[] preOperations, Ca mainOperation, Ca[] postOperations, string expectedOutputTextAfterAllOperations)
        {
            // Arrange
            var mockObjects = MockFactories.GetMockObjects();
            var vm          = MockFactories.FinCalcViewModelWithCalculatorImplementationFactory(mockObjects);

            if (preOperations == null)
            {
                preOperations = System.Array.Empty <Ca>();
            }

            if (postOperations == null)
            {
                postOperations = System.Array.Empty <Ca>();
            }

            // Act
            FinCalcViewModelHelper.ExecuteDummyActions(vm, preOperations.Concat(new[] { mainOperation }).Concat(postOperations).ToArray());

            // Assert
            vm.DisplayText.Should().Be(expectedOutputTextAfterAllOperations);
        }