예제 #1
0
        private void ConfigureMvc(IServiceCollection services)
        {
            services
            .AddMvcCore(config => {
                config.RespectBrowserAcceptHeader = true;
                config.ReturnHttpNotAcceptable    = true;
                //config.Filters.Add(new RequestBodyInsightsFilter(StatusCodes.Status400BadRequest));
            })
            .AddAuthorization()
            .AddFormatterMappings()
            .AddJsonFormatters()
            .AddXmlSerializerFormatters()
            .AddCors()
            .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            services.AddVersionedApiExplorer(options => {
                options.GroupNameFormat           = "'v'VVV";
                options.SubstituteApiVersionInUrl = true;
            });

            services.AddApiVersioning(options => {
                options.UseApiBehavior    = false;
                options.ReportApiVersions = true;
                options.AssumeDefaultVersionWhenUnspecified = true;
                options.DefaultApiVersion = new ApiVersion(1, 0);

                ChargesController.Convention(options);
            });
        }
        public void Post_Test_NewCharge()
        {
            ChargesController controler = new ChargesController();

            controler.RavenSession = RavenSession;

            RavenSession.Store(new Owner {
                Email = "*****@*****.**", Id = 1, Name = "Tester", UserName = "******"
            });
            RavenSession.Store(new Asset {
                OwnerId = 1, Id = 1, Name = "Asset1"
            });

            RavenSession.SaveChanges();

            var newCharge = new Charge
            {
                AccountNumber = "1234",
                Amount        = 500,
                Automatic     = false,
                Counterparty  = "Counterparty",
                Name          = "Name",
                Notes         = "Notes",
                PaymentDay    = 1,
                Unit          = 2,
            };

            controler.RavenSession = RavenSession;
            var result = controler.Post(newCharge, 1);

            RavenSession.SaveChanges();

            var charge = RavenSession.Load <Asset>(1).Charges.First();

            Assert.AreEqual(charge.Id, 1);
            Assert.AreEqual(charge.Name, "Name");
            Assert.AreEqual(charge.Notes, "Notes");
            Assert.AreEqual(charge.PaymentDay, 1);
            Assert.AreEqual(charge.Unit, 2);
            Assert.AreEqual(charge.Amount, 500);
        }