示例#1
0
        public void DictionaryTest_OnePersonInvolved()
        {
            //Arrange

            //var exp = expMaker.CreateExpense(1, "Adam", 12.60m, new List<string>() { "Igor" });
            var exp = ExpenseMaker.CreateExpense(1, "Adam", 12.60m, new List <string>()
            {
                "Igor"
            });
            var mockRepository = new Mock <IExpenseRepository>();

            mockRepository.Setup(x => x.GetAllExpenses(1)).Returns(new List <Expense>()
            {
                exp
            });

            ICalculationMethod calculationMethod = new CalculationMethod();
            Calculation        calculation       = new Calculation(mockRepository.Object, tableRepository, calculationMethod, optymizer);

            calculation.TableNumber = 1;
            //Act
            var dict         = calculationMethod.CalculateMembersExpenses(calculation);
            var expecteddict = new Dictionary <string, decimal>()
            {
                { "Igor_Adam", 6.30m }
            };


            //Assert
            Assert.IsNotNull(dict);
            Assert.AreEqual(expecteddict.Count, dict.Count);
            Assert.Contains("Igor_Adam", dict.Keys);
            Assert.Contains(6.30m, dict.Values);
        }
示例#2
0
        public void DictionaryTest_Optimization()
        {
            //Arrange
            ICalculationMethod calculationMethod = new CalculationMethod();
            Calculation        calculation       = new Calculation(expenseRepository, tableRepository, calculationMethod, optymizer);

            //Act
            var dict     = calculationMethod.CalculateMembersExpenses(calculation);
            var optidict = calculationMethod.OptimizeDict(dict);

            var expecteddict = new Dictionary <string, decimal>()
            {
                { "Igor_Adam", 2.15m }, { "Adam_Heniek", 3.90m },
                { "Igor_Heniek", 6.05m }
            };
            var keylist = new List <string>()
            {
                "Igor_Adam", "Adam_Heniek", "Igor_Heniek"
            };
            var valuelist = new List <decimal>()
            {
                2.15m, 3.90m, 6.05m
            };


            //Assert
            Assert.IsNotNull(optidict);
            Assert.AreEqual(expecteddict.Count, optidict.Count);
            Assert.Contains("Igor_Adam", optidict.Keys);
            Assert.AreEqual(keylist, optidict.Keys.ToList());
            Assert.AreEqual(valuelist, optidict.Values.ToList());
        }
示例#3
0
        public void DictionaryTest_EverybodyInvolved()
        {
            //Arrange
            ICalculationMethod calculationMethod = new CalculationMethod();
            Calculation        calculation       = new Calculation(expenseRepository, tableRepository, calculationMethod, optymizer);

            //Act
            var dict       = calculationMethod.CalculateMembersExpenses(calculation);
            var firstvalue = dict["Igor_Heniek"];

            //Assert
            Assert.IsNotNull(dict);
            Assert.AreEqual(expectedDict1.Count, dict.Count);
            Assert.Contains("Igor_Adam", dict.Keys);
            Assert.AreEqual(8.10m, firstvalue);
        }