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(); } }
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); } } } }
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); } } } }