Beispiel #1
0
        private static async Task PopulateData(int rowId)
        {
            using (var ctx = new PrimitivesContext())
            {
                ctx.Add(new DateItem()
                {
                    DateProperty = DateTime.Now,
                    DTProperty   = DateTime.UtcNow,
                    DTOProperty  = DateTimeOffset.Now,
                    RowId        = rowId,
                    TODProperty  = TimeOfDay.Now,
                    TSProperty   = TimeSpan.FromDays(.3),
                });

                await ctx.SaveChangesAsync();
            }
        }
Beispiel #2
0
        public async Task VerifyChange()
        {
            await PopulateData(42);

            {
                dynamic newObj = new ExpandoObject();
                newObj.DateProperty = "2016-01-04";
                newObj.DTProperty   = DateTime.UtcNow;
                newObj.DTOProperty  = DateTimeOffset.Now;
                newObj.TODProperty  = "08:09:10";
                newObj.TSProperty   = "PT4H12M";

                string        newOrderContent = JsonConvert.SerializeObject(newObj);
                StringContent content         = new StringContent(newOrderContent, UTF8Encoding.Default, "application/json");
                using (var response = await ODataTestHelpers.GetResponse(@"http://local/api/Prim/Dates(42)", HttpMethod.Put, content, RegisterApi))
                {
                    Assert.Equal(HttpStatusCode.NoContent, response.StatusCode);
                    using (var ctx = new PrimitivesContext())
                    {
                        var item42 = ctx.Dates.First(e => e.RowId == 42);

                        Assert.Equal(new DateTime(2016, 1, 4), item42.DateProperty);
                        Assert.Equal(new TimeSpan(8, 9, 10), item42.TODProperty);
                        Assert.Equal(new TimeSpan(4, 12, 0), item42.TSProperty);
                    }
                }
            }

            {
                dynamic newObj = new ExpandoObject();
                newObj.DateProperty = "2016-01-04";
                newObj.DTProperty   = DateTime.UtcNow;
                newObj.DTOProperty  = DateTimeOffset.Now;
                newObj.RowId        = 1024;
                newObj.TODProperty  = "08:09:10";
                newObj.TSProperty   = "PT4H12M";

                string        newOrderContent = JsonConvert.SerializeObject(newObj);
                StringContent content         = new StringContent(newOrderContent, UTF8Encoding.Default, "application/json");
                using (var response = await ODataTestHelpers.GetResponse(@"http://local/api/Prim/Dates", HttpMethod.Post, content, RegisterApi))
                {
                    Assert.Equal(HttpStatusCode.Created, response.StatusCode);
                    var ret = await response.Content.ReadAsAsync <DateItem>();

                    Assert.Equal(new DateTime(2016, 1, 4), ret.DateProperty);
                    Assert.Equal(new TimeSpan(8, 9, 10), ret.TODProperty);
                    Assert.Equal(new TimeSpan(4, 12, 0), ret.TSProperty);

                    using (var ctx = new PrimitivesContext())
                    {
                        ret = ctx.Dates.First(e => e.RowId == 1024);

                        Assert.Equal(new DateTime(2016, 1, 4), ret.DateProperty);
                        Assert.Equal(new TimeSpan(8, 9, 10), ret.TODProperty);
                        Assert.Equal(new TimeSpan(4, 12, 0), ret.TSProperty);
                    }
                }
            }

            {
                dynamic newObj = new ExpandoObject();
                newObj.DateProperty = "2017-01-04";
                newObj.TODProperty  = "10:09:08";
                newObj.TSProperty   = "PT4H32M";

                string        newOrderContent = JsonConvert.SerializeObject(newObj);
                StringContent content         = new StringContent(newOrderContent, UTF8Encoding.Default, "application/json");
                using (var response = await ODataTestHelpers.GetResponse(@"http://local/api/Prim/Dates(1024)", new HttpMethod("Patch"), content, RegisterApi))
                {
                    Assert.Equal(HttpStatusCode.NoContent, response.StatusCode);

                    using (var ctx = new PrimitivesContext())
                    {
                        var ret = ctx.Dates.First(e => e.RowId == 1024);

                        Assert.NotNull(ret.DTProperty);
                        Assert.NotEqual(default(DateTimeOffset), ret.DTOProperty);

                        Assert.Equal(new DateTime(2017, 1, 4), ret.DateProperty);
                        Assert.Equal(new TimeSpan(10, 9, 8), ret.TODProperty);
                        Assert.Equal(new TimeSpan(4, 32, 0), ret.TSProperty);
                    }
                }
            }
        }
Beispiel #3
0
        public async Task VerifyChange()
        {
            await PopulateData(42);

            {
                dynamic newObj = new ExpandoObject();
                newObj.DateProperty = "2016-01-04";
                newObj.DTProperty = DateTime.UtcNow;
                newObj.DTOProperty = DateTimeOffset.Now;
                newObj.TODProperty = "08:09:10";
                newObj.TSProperty = "PT4H12M";

                string newOrderContent = JsonConvert.SerializeObject(newObj);
                StringContent content = new StringContent(newOrderContent, UTF8Encoding.Default, "application/json");
                using (var response = await ODataTestHelpers
                    .GetResponseNoContentValidation(@"http://local/api/Prim/Dates(42)", HttpMethod.Put, content, RegisterApi, HttpStatusCode.NoContent))
                {
                    using (var ctx = new PrimitivesContext())
                    {
                        var item42 = ctx.Dates.First(e => e.RowId == 42);

                        Assert.Equal(new DateTime(2016, 1, 4), item42.DateProperty);
                        Assert.Equal(new TimeSpan(8, 9, 10), item42.TODProperty);
                        Assert.Equal(new TimeSpan(4, 12, 0), item42.TSProperty);
                    }
                }
            }

            {
                dynamic newObj = new ExpandoObject();
                newObj.DateProperty = "2016-01-04";
                newObj.DTProperty = DateTime.UtcNow;
                newObj.DTOProperty = DateTimeOffset.Now;
                newObj.RowId = 1024;
                newObj.TODProperty = "08:09:10";
                newObj.TSProperty = "PT4H12M";

                string newOrderContent = JsonConvert.SerializeObject(newObj);
                StringContent content = new StringContent(newOrderContent, UTF8Encoding.Default, "application/json");
                using (var response = await ODataTestHelpers
                    .GetResponseNoContentValidation(@"http://local/api/Prim/Dates", HttpMethod.Post, content, RegisterApi, HttpStatusCode.Created))
                {
                    var ret = await response.Content.ReadAsAsync<DateItem>();
                    Assert.Equal(new DateTime(2016, 1, 4), ret.DateProperty);
                    Assert.Equal(new TimeSpan(8, 9, 10), ret.TODProperty);
                    Assert.Equal(new TimeSpan(4, 12, 0), ret.TSProperty);

                    using (var ctx = new PrimitivesContext())
                    {
                        ret = ctx.Dates.First(e => e.RowId == 1024);

                        Assert.Equal(new DateTime(2016, 1, 4), ret.DateProperty);
                        Assert.Equal(new TimeSpan(8, 9, 10), ret.TODProperty);
                        Assert.Equal(new TimeSpan(4, 12, 0), ret.TSProperty);
                    }
                }
            }

            {
                dynamic newObj = new ExpandoObject();
                newObj.DateProperty = "2017-01-04";
                newObj.TODProperty = "10:09:08";
                newObj.TSProperty = "PT4H32M";

                string newOrderContent = JsonConvert.SerializeObject(newObj);
                StringContent content = new StringContent(newOrderContent, UTF8Encoding.Default, "application/json");
                using (var response = await ODataTestHelpers
                    .GetResponseNoContentValidation(@"http://local/api/Prim/Dates(1024)", new HttpMethod("Patch"), content, RegisterApi, HttpStatusCode.NoContent))
                {
                    using (var ctx = new PrimitivesContext())
                    {
                        var ret = ctx.Dates.First(e => e.RowId == 1024);

                        Assert.NotNull(ret.DTProperty);
                        Assert.NotEqual(default(DateTimeOffset), ret.DTOProperty);

                        Assert.Equal(new DateTime(2017, 1, 4), ret.DateProperty);
                        Assert.Equal(new TimeSpan(10, 9, 8), ret.TODProperty);
                        Assert.Equal(new TimeSpan(4, 32, 0), ret.TSProperty);
                    }
                }
            }
        }
Beispiel #4
0
        private static async Task PopulateData(int rowId)
        {
            using (var ctx = new PrimitivesContext())
            {
                ctx.Add(new DateItem()
                {
                    DateProperty = DateTime.Now,
                    DTProperty = DateTime.UtcNow,
                    DTOProperty = DateTimeOffset.Now,
                    RowId = rowId,
                    TODProperty = TimeOfDay.Now,
                    TSProperty = TimeSpan.FromDays(.3),
                });

                await ctx.SaveChangesAsync();
            }
        }