Esempio n. 1
0
        public async void Import_file_adds_to_existing_test()
        {
            using (var ctx = new TaxesDbContext()) {
                ctx.Municipalities.Add(new Municipality("Vilnius"));
                ctx.Municipalities.Add(new Municipality("Kaunas"));
                await ctx.SaveChangesAsync();

                using (var content = new MultipartFormDataContent()) {
                    using (var file = File.OpenRead(@"TestFiles\municipalitiesList.csv")) {
                        using (var stream = new StreamContent(file)) {
                            stream.Headers.ContentType        = new MediaTypeHeaderValue("application/vnd.excel");
                            stream.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
                            {
                                FileName = "municipalitiesList.csv"
                            };
                            content.Add(stream);

                            var result = await _server.HttpClient.PostAsync("api/municipalities", content);

                            Assert.True(result.IsSuccessStatusCode);
                        }
                    }
                }

                var municipalities = await ctx.Municipalities.ToArrayAsync();

                Assert.Equal(103, municipalities.Length);
            }
        }
Esempio n. 2
0
        public async void Tax_add_to_municpality_and_get_from_location()
        {
            using (var ctx = new TaxesDbContext()) {
                ctx.Municipalities.Add(new Municipality("Vilnius"));
                await ctx.SaveChangesAsync();

                var tax = new TaxPost {
                    DateFrom = new DateTime(2017, 1, 1),
                    DateTo   = new DateTime(2017, 1, 10),
                    Rate     = (decimal)0.5
                };
                //var content = new
                var result = await _server.HttpClient.PostAsync("api/taxes/Vilnius", new ObjectContent(typeof(TaxPost), tax, new JsonMediaTypeFormatter()));

                var responseContent = await result.Content.ReadAsAsync <Guid>();

                Assert.True(result.IsSuccessStatusCode);

                var location  = result.Headers.Location;
                var getResult = await _server.HttpClient.GetAsync(location);

                Assert.True(getResult.IsSuccessStatusCode);

                var savedTax = await getResult.Content.ReadAsAsync <TaxGet>();

                Assert.Equal(savedTax.Id, responseContent);
                Assert.Equal(savedTax.DateFrom, tax.DateFrom);
                Assert.Equal(savedTax.DateTo, tax.DateTo.Value);
                Assert.Equal(savedTax.Rate, tax.Rate);
            }
        }
Esempio n. 3
0
        public async void Returns_taxes_between_dates(DateTime dt, decimal expected)
        {
            using (var ctx = new TaxesDbContext()) {
                var municipality = new Municipality("Vilnius");

                var yearly = new Tax("Vilnius", new DateTime(2016, 1, 1), new DateTime(2016, 12, 31), (decimal)0.2);
                var mothly = new Tax("Vilnius", new DateTime(2016, 5, 1), new DateTime(2016, 5, 31), (decimal)0.4);
                var daily1 = new Tax("Vilnius", new DateTime(2016, 1, 1), (decimal)0.1);
                var daily2 = new Tax("Vilnius", new DateTime(2016, 12, 25), (decimal)0.1);
                municipality.AddTax(yearly);
                municipality.AddTax(mothly);
                municipality.AddTax(daily1);
                municipality.AddTax(daily2);

                ctx.Municipalities.Add(municipality);
                await ctx.SaveChangesAsync();

                using (var controller = new TaxesController(ctx)) {
                    var result = await controller.Get("Vilnius", dt);

                    Assert.IsType <OkNegotiatedContentResult <ViewModel.TaxGet> >(result);
                    var okResult = result as OkNegotiatedContentResult <ViewModel.TaxGet>;
                    Assert.Equal(okResult.Content.Rate, expected);
                }
            }
        }
Esempio n. 4
0
        public async void POST_Tax_successfully_adds_to_municipality()
        {
            var urlHelperMock = new Mock <UrlHelper>();

            urlHelperMock.Setup(m => m.Link(It.IsAny <string>(), It.IsAny <object>()))
            .Returns("http://testas.lt/");

            using (var ctx = new TaxesDbContext()) {
                ctx.Municipalities.Add(new Municipality("Vilnius"));
                await ctx.SaveChangesAsync();

                using (var controller = new TaxesController(ctx)) {
                    var dateFrom = new DateTime(2017, 5, 5);
                    var dateTo   = new DateTime(2017, 5, 10);
                    controller.Url = urlHelperMock.Object;
                    var result = await controller.Post("Vilnius", new ViewModel.TaxPost {
                        DateFrom = dateFrom,
                        DateTo   = dateTo,
                        Rate     = (decimal?)0.1
                    });

                    Assert.IsType <CreatedNegotiatedContentResult <Guid> >(result);
                    var createdResult = result as CreatedNegotiatedContentResult <Guid>;

                    var newTax = await ctx.Taxes.FirstAsync(t => t.Id == createdResult.Content);

                    Assert.Equal(newTax.Municipality, "Vilnius");
                    Assert.Equal(newTax.Rate, (decimal?)0.1);
                    Assert.Equal(newTax.DateTo, dateTo);
                    Assert.Equal(newTax.DateFrom, dateFrom);
                }
            }
        }
        public GetTaxHandlerTests()
        {
            var options = new DbContextOptionsBuilder <TaxesDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            _dbContext = new TaxesDbContext(options);
            _handler   = new GetTaxHandler(_dbContext);
        }
Esempio n. 6
0
        public async void GET_Municipality_not_found_returns_bad_request()
        {
            using (var ctx = new TaxesDbContext()) {
                using (var controller = new TaxesController(ctx)) {
                    var result = await controller.Get("Vilnius", DateTime.Now);

                    Assert.IsType <BadRequestErrorMessageResult>(result);
                    var badRequestResult = result as BadRequestErrorMessageResult;
                    Assert.Equal("Nerastas miestas/savivaldybė", badRequestResult.Message);
                }
            }
        }
Esempio n. 7
0
 public TestsGlobalFixture()
 {
     using (var ctx = new TaxesDbContext()) {
         try {
             Database.SetInitializer(new DropCreateDatabaseAlways <TaxesDbContext>());
             ctx.Database.Initialize(true);
         }
         finally {
             Database.SetInitializer <TaxesDbContext>(null);
         }
     }
 }
Esempio n. 8
0
        public async void GET_Returns_no_content_if_there_are_no_taxes_in_municipality()
        {
            using (var ctx = new TaxesDbContext()) {
                var municipality = new Municipality("Vilnius");

                ctx.Municipalities.Add(municipality);
                await ctx.SaveChangesAsync();

                using (var controller = new TaxesController(ctx)) {
                    var result = await controller.Get("Vilnius", DateTime.Now);

                    Assert.IsType <StatusCodeResult>(result);
                    var statusCodeResult = result as StatusCodeResult;
                    Assert.Equal(statusCodeResult.StatusCode, HttpStatusCode.NoContent);
                }
            }
        }
Esempio n. 9
0
        public async void POST_Municipality_not_found_returns_bad_request()
        {
            using (var ctx = new TaxesDbContext()) {
                using (var controller = new TaxesController(ctx)) {
                    var date   = DateTime.Now;
                    var result = await controller.Post("Vilnius", new ViewModel.TaxPost {
                        DateFrom = date,
                        DateTo   = date,
                        Rate     = (decimal?)0.1
                    });

                    Assert.IsType <BadRequestErrorMessageResult>(result);
                    var badRequestResult = result as BadRequestErrorMessageResult;
                    Assert.Equal("Nerastas miestas/savivaldybė", badRequestResult.Message);
                }
            }
        }
Esempio n. 10
0
        public void Municipalities_CRD_Works()
        {
            using (var ctx = new TaxesDbContext()) {
                //Create
                ctx.Municipalities.Add(new Municipality("Panevėžys"));
                ctx.SaveChanges();

                //Read
                var municipalities = ctx.Municipalities.ToArray();
                Assert.Equal(1, municipalities.Length);

                //Delete
                ctx.Municipalities.Remove(municipalities.First());
                ctx.SaveChanges();

                Assert.Empty(ctx.Municipalities.ToArray());
            }
        }
Esempio n. 11
0
        public void Taxes_CRUD_Works()
        {
            using (var ctx = new TaxesDbContext()) {
                ctx.Municipalities.AddRange(new List <Municipality> {
                    new Municipality("Vilnius"),
                    new Municipality("Kaunas")
                });
                ctx.SaveChanges();

                Assert.Empty(ctx.Taxes.ToList());

                //Create
                ctx.Taxes.AddRange(new List <Tax> {
                    new Tax("Vilnius", DateTime.Now, DateTime.Now, (decimal)0.1),
                    new Tax("Kaunas", DateTime.Now, DateTime.Now, (decimal)0.3)
                });

                ctx.SaveChanges();

                //Read
                var taxes = ctx.Taxes.ToArray();
                Assert.Equal(2, taxes.Length);

                //Delete
                ctx.Taxes.Remove(taxes.First(t => t.Municipality == "Kaunas"));
                ctx.SaveChanges();

                taxes = ctx.Taxes.ToArray();
                Assert.Equal(1, taxes.Length);

                //Update

                var tax = taxes.First();
                Assert.Equal((decimal)0.1, tax.Rate);
                tax.UpdateRate((decimal)0.5);
                ctx.SaveChanges();

                Assert.Equal((decimal)0.5, ctx.Taxes.First(t => t.Municipality == "Vilnius")
                             .Rate);
            }
        }
Esempio n. 12
0
        public void Taxes_Cascade_Deletes()
        {
            using (var ctx = new TaxesDbContext()) {
                var municipality = new Municipality("Panevėžys");
                var taxes        = new List <Tax> {
                    new Tax("Vilnius", DateTime.Now, DateTime.Now, (decimal)0.1),
                    new Tax("Kaunas", DateTime.Now, DateTime.Now, (decimal)0.3)
                };

                taxes.ForEach(t => municipality.AddTax(t));

                ctx.Municipalities.Add(municipality);
                ctx.SaveChanges();

                Assert.Equal(2, ctx.Taxes.ToArray()
                             .Length);

                //Delete
                ctx.Municipalities.Remove(municipality);
                ctx.SaveChanges();

                Assert.Empty(ctx.Taxes.ToArray());
            }
        }
 public TaxesController(TaxesDbContext ctx)
 {
     _ctx = ctx;
 }
Esempio n. 14
0
 public UpdateTaxHandler(TaxesDbContext dbContext)
 {
     _dbContext = dbContext ?? throw new ArgumentNullException(nameof(dbContext));
 }
 public ImportTaxHandler(TaxesDbContext dbcontext)
 {
     _dbContext = dbcontext;
 }
Esempio n. 16
0
 public MunicipalitiesController(TaxesDbContext ctx)
 {
     _ctx = ctx;
 }