public async Task GetAsync_SelectingByPredicate_ReturnTheItemAsync()
        {
            // Arrange
            var fackDatabaseBuilder = new FackDataBaseBuildHelper();
            var context             = new DansBankDbContext(fackDatabaseBuilder);

            context.Database.EnsureCreated();

            var municipalityName = "Copenhagen";


            var id = Guid.NewGuid();

            using (var db = new DansBankDbContext(fackDatabaseBuilder))
            {
                db.Municipalities.Add(new Municipality {
                    Id = id, Name = municipalityName
                });
                db.SaveChanges();
            }

            var municipalityRepository = new MunicipalityRepository(new DansBankDbContext(fackDatabaseBuilder));

            // Act
            var municipality = await municipalityRepository.GetAsync(m => m.Name.ToLower() == municipalityName.ToLower());

            // Assert
            municipality.Should().NotBeNull();
            municipality.Name.Should().Be(municipalityName);
        }
        public async Task Exist_ByGivingAnExistingMunicipalityName_ReturnTrueAsync()
        {
            // Arrange
            var fackDatabaseBuilder = new FackDataBaseBuildHelper();
            var context             = new DansBankDbContext(fackDatabaseBuilder);

            context.Database.EnsureCreated();

            var municipalityName = "Copenhagen";


            var id = Guid.NewGuid();

            using (var db = new DansBankDbContext(fackDatabaseBuilder))
            {
                db.Municipalities.Add(new Municipality {
                    Id = id, Name = municipalityName
                });
                db.SaveChanges();
            }

            var municipalityRepository = new MunicipalityRepository(new DansBankDbContext(fackDatabaseBuilder));

            // Act
            var sameString = await municipalityRepository.Exist(municipalityName);

            var caseSensivity = await municipalityRepository.Exist(municipalityName.ToUpper());

            // Assert
            sameString.Should().BeTrue();
            caseSensivity.Should().BeTrue();
        }
        public async Task GetWithDetails_SelectingTasRule_WillIncludePeriosAsync()
        {
            // Arrange
            var fackDatabaseBuilder = new FackDataBaseBuildHelper();
            var context             = new DansBankDbContext(fackDatabaseBuilder);

            context.Database.EnsureCreated();

            var municipalityName = "Copenhagen";



            var id   = Guid.NewGuid();
            var trId = Guid.NewGuid();

            using (var db = new DansBankDbContext(fackDatabaseBuilder))
            {
                var m = new Municipality {
                    Id = id, Name = municipalityName, TaxRules = new List <TaxRule>()
                };
                db.Municipalities.Add(m);
                db.SaveChanges();

                var tr = new TaxRule {
                    Id = trId, Name = "Yearly", Percentage = 0.2F, Priority = 1, MunicipalityId = m.Id
                };
                var periods = new List <Period>
                {
                    new Period {
                        From = DateTime.Today, To = DateTime.Today.AddDays(1)
                    },
                    new Period {
                        From = DateTime.Today.AddDays(2), To = DateTime.Today.AddDays(5)
                    }
                };
                tr.Periods = periods;

                db.TaxRules.Add(tr);

                db.SaveChanges();
            }

            var taxRuleRepository = new TaxRuleRepository(new DansBankDbContext(fackDatabaseBuilder));

            // Act
            var taxRule = await taxRuleRepository.GetWithDetailsAsync(trId);

            // Assert
            taxRule.Should().NotBeNull();
            taxRule.MunicipalityId.Should().Be(id);
            taxRule.Periods.Should().NotBeNullOrEmpty();
            taxRule.Periods.Should().HaveCount(2);
            taxRule.Periods.Select(p => p.TaxRuleId).Should().AllBeEquivalentTo(trId);
        }
        public async Task GetWithDetails_IncludeDetails()
        {
            // Arrange
            var fackDatabaseBuilder = new FackDataBaseBuildHelper();
            var context             = new DansBankDbContext(fackDatabaseBuilder);

            context.Database.EnsureCreated();

            var municipalityName = "Copenhagen";



            using (var db = new DansBankDbContext(fackDatabaseBuilder))
            {
                var id = Guid.NewGuid();
                var m  = new Municipality {
                    Id = id, Name = municipalityName, TaxRules = new List <TaxRule>()
                };
                var tr = new TaxRule {
                    Name = "Yearly", Percentage = 0.2F, Priority = 1
                };
                var periods = new List <Period>
                {
                    new Period {
                        From = DateTime.Today, To = DateTime.Today.AddDays(1)
                    },
                    new Period {
                        From = DateTime.Today.AddDays(2), To = DateTime.Today.AddDays(5)
                    }
                };
                tr.Periods = periods;
                m.TaxRules.Add(tr);

                db.Municipalities.Add(m);

                db.SaveChanges();
            }

            var municipalityRepository = new MunicipalityRepository(new DansBankDbContext(fackDatabaseBuilder));

            // Act
            var municipality = await municipalityRepository.GetWithDetails("Copenhagen");

            // Assert
            municipality.Should().NotBeNull();
            municipality.TaxRules.Should().NotBeNullOrEmpty();
            municipality.TaxRules.Should().HaveCount(1);
            var taxRule = municipality.TaxRules.First();

            taxRule.Periods.Should().NotBeNullOrEmpty();
            taxRule.Periods.Should().HaveCount(2);
        }
        protected void Application_Start(object sender, EventArgs e)
        {
            var buildHelper = new DatabaseBuildHelper();

            using (var db = new DansBankDbContext(buildHelper))
            {
                if (!db.Database.CanConnect())
                {
                    Console.WriteLine("Database is been created, please be patient. You will be notify when it is done");
                    db.Database.EnsureCreated();

                    db.Municipalities.AddRange(SeedDataGenerator.Generate());
                    db.SaveChanges();

                    Console.WriteLine("Database is been created");
                }
            }
        }
        public void Add_Manucipality()
        {
            // Arrange
            var fackDatabaseBuilder = new FackDataBaseBuildHelper();
            var context             = new DansBankDbContext(fackDatabaseBuilder);

            context.Database.EnsureCreated();

            var municipalityName  = "Copenhagen";
            var municipalityName2 = "Copenhagen2";
            var db = new DansBankDbContext(fackDatabaseBuilder);
            var municipalityRepository = new MunicipalityRepository(db);
            var mId          = Guid.NewGuid();
            var municipality = new Municipality {
                Name = municipalityName
            };
            var municipality2 = new Municipality {
                Id = mId, Name = municipalityName2
            };

            // Act
            var id  = municipalityRepository.Add(municipality);
            var id2 = municipalityRepository.Add(municipality2);

            Municipality m  = null;
            Municipality m2 = null;

            using (var db2 = new DansBankDbContext(fackDatabaseBuilder))
            {
                m  = db2.Municipalities.Find(id);
                m2 = db2.Municipalities.Find(id2);
            }

            // Assert
            id.Should().NotBe(mId);
            id2.Should().Be(mId);
            db.Entry(municipality).State.Should().Be(EntityState.Added);
            db.Entry(municipality2).State.Should().Be(EntityState.Added);
            db.Municipalities.Local.Should().HaveCount(2);
            m.Should().Be(null);
            m2.Should().Be(null);
        }
        public async Task GetList_ByProvideingPagination_FilterMunicipalitis()
        {
            // Arrange
            var fackDatabaseBuilder = new FackDataBaseBuildHelper();
            var context             = new DansBankDbContext(fackDatabaseBuilder);

            context.Database.EnsureCreated();

            var municipalityNames = new List <string>()
            {
                "Copenhagen", "Aarhus", "Aalborg", "Odense", "Esbjerg"
            };



            using (var db = new DansBankDbContext(fackDatabaseBuilder))
            {
                foreach (var municipalityName in municipalityNames)
                {
                    var id = Guid.NewGuid();
                    db.Municipalities.Add(new Municipality {
                        Id = id, Name = municipalityName
                    });
                    db.SaveChanges();
                }
            }

            var municipalityRepository = new MunicipalityRepository(new DansBankDbContext(fackDatabaseBuilder));

            // Act
            var municipalities = await municipalityRepository
                                 .GetListAsync(new Pagination { PageNumber = 1, PageSize = 2 });

            // Assert
            municipalities.Should().NotBeNull();
            municipalities.Should().NotBeEmpty();
            municipalities.Should().HaveCount(2);
            municipalities.Select(m => m.Name).SequenceEqual(new List <string> {
                "Aalborg", "Aarhus"
            }).Should().BeTrue();
        }
        public async Task GetList_NotProvideingPaginationAndCondition_WouldReturnAllMunicipalitis()
        {
            // Arrange
            var fackDatabaseBuilder = new FackDataBaseBuildHelper();
            var context             = new DansBankDbContext(fackDatabaseBuilder);

            context.Database.EnsureCreated();

            var municipalityNames = new List <string>()
            {
                "Copenhagen", "Aarhus", "Aalborg", "Odense", "Esbjerg"
            };



            using (var db = new DansBankDbContext(fackDatabaseBuilder))
            {
                foreach (var municipalityName in municipalityNames)
                {
                    var id = Guid.NewGuid();
                    db.Municipalities.Add(new Municipality {
                        Id = id, Name = municipalityName
                    });
                    db.SaveChanges();
                }
            }

            var municipalityRepository = new MunicipalityRepository(new DansBankDbContext(fackDatabaseBuilder));

            // Act
            var municipalities = await municipalityRepository.GetListAsync();

            // Assert
            municipalities.Should().NotBeNull();
            municipalities.Should().NotBeEmpty();
            municipalities.Should().HaveCount(5);
        }
 public MunicipalityRepository(DansBankDbContext context)
     : base(context)
 {
 }
 public TaxRulePeriodRepository(DansBankDbContext context)
     : base(context)
 {
 }
Beispiel #11
0
 public UnitOfWork(DansBankDbContext context)
 {
     _context = context;
 }
Beispiel #12
0
 public Repository(DansBankDbContext context)
 {
     Context = context;
 }