public void PaymentValueModelToDtoToModelTest()
        {
            //given
            var model = new PaymentValue {
                GrossValue = 12
            };

            //when
            var result = Mapper.Map <PaymentValue>(Mapper.Map <CashManager.Data.DTO.PaymentValue>(model));

            //then
            Assert.Equal(model.Id, result.Id);
            Assert.Equal(model.GrossValue, result.GrossValue);
        }
Exemplo n.º 2
0
        public void SimpleReferenceReadingTest()
        {
            //given
            var repo           = LiteDbHelper.CreateMemoryDb();
            var stock1         = new Stock();
            var stock2         = new Stock();
            var parentCategory = new Category {
                Name = "parent"
            };
            var category = new Category {
                Parent = parentCategory, Name = "child"
            };
            var paymentValue = new PaymentValue {
                GrossValue = 123.45m
            };
            var tags = new List <Tag> {
                new Tag {
                    Name = "a"
                }, new Tag {
                    Name = "b"
                }
            };
            var positions = new List <Position>
            {
                new Position
                {
                    Category = category,
                    Value    = paymentValue,
                    Title    = "test",
                    Tags     = tags
                }
            };
            var transaction = new Transaction
            {
                UserStock     = stock1,
                ExternalStock = stock2,
                Positions     = positions,
                BookDate      = DateTime.Today,
                TransactionSourceCreationDate = DateTime.Today
            };

            //when
            repo.Database.Upsert(transaction);
            repo.Database.UpsertBulk(new [] { category, parentCategory });
            repo.Database.UpsertBulk(new [] { stock1, stock2 });
            repo.Database.UpsertBulk(tags.ToArray());
            repo.Database.UpsertBulk(positions.ToArray());

            //then
            var actual = repo.Database.GetCollection <Transaction>()
                         .Include(x => x.ExternalStock)
                         .Include(x => x.UserStock)
                         .Include(x => x.Type)
                         .Include(x => x.Positions)
                         .Include($"$.{POSITIONS_NAME}[*].{TAGS_NAME}[*]")
                         .Include($"$.{POSITIONS_NAME}[*].{CATEGORY_NAME}")
                         .Include($"$.{POSITIONS_NAME}[*].{CATEGORY_NAME}.{PARENT_NAME}")
                         .FindAll()
                         .First();

            Assert.StrictEqual(transaction, actual);

            Assert.Equal(transaction.ExternalStock, actual.ExternalStock);
            Assert.Equal(transaction.ExternalStock.Name, actual.ExternalStock.Name);
            Assert.Equal(transaction.ExternalStock.IsUserStock, actual.ExternalStock.IsUserStock);

            Assert.Equal(transaction.UserStock, actual.UserStock);
            Assert.Equal(transaction.UserStock.Name, actual.UserStock.Name);
            Assert.Equal(transaction.UserStock.IsUserStock, actual.UserStock.IsUserStock);

            Assert.Equal(transaction.Positions.First().Category, actual.Positions.First().Category);
            Assert.Equal(transaction.Positions.First().Category.Name, actual.Positions.First().Category.Name);
            Assert.Equal(transaction.Positions.First().Category.Parent, actual.Positions.First().Category.Parent);

            Assert.Equal(transaction.Positions.First().Tags, actual.Positions.First().Tags);

            Assert.Equal(transaction.Positions.First(), actual.Positions.First());
            Assert.Equal(transaction.Positions.First().Value, actual.Positions.First().Value);
            Assert.Equal(transaction.Positions.First().Value.GrossValue, actual.Positions.First().Value.GrossValue);

            Assert.Equal(transaction.Positions.First().Category.Parent, actual.Positions.First().Category.Parent);
            Assert.Equal(transaction.Positions.First().Category.Parent.Name, actual.Positions.First().Category.Parent.Name);
            Assert.Equal(transaction.Positions.First().Category.Parent.Parent, actual.Positions.First().Category.Parent.Parent);
        }