public async Task Update() { var fixture = new DbFixtureInitDb(); fixture.Initalize(); await fixture.ExecuteBatchAsync("Update"); using (var orderContext = fixture.CreateContext()) { var category = orderContext.Categories.Single(t => t.Name == "sombrero jacket"); Assert.Equal("jackets", orderContext.Categories.Single(t => t.Id == category.ParentId).Name); Assert.Equal(4, orderContext.Customers.Count()); Assert.Equal(3, orderContext.Orders.Count()); Assert.Equal(7, orderContext.OrderItems.Count()); var order1 = orderContext.Orders.Include(t => t.Items).Single(t => t.Id == 1); Assert.Equal("New Order 1", order1.Name); Assert.Equal("New Product order 1 item 3", order1.Items.Single(t => t.Id == 3).Product); Assert.Equal(Sex.Female, orderContext.Customers.Single(c => c.Id == 1).Sex); Assert.Equal(null, orderContext.Customers.Single(c => c.Id == 2).Sex); } }
public Task Add() { var fixture = new DbFixtureInitDb(); fixture.Initalize(); using (var orderContext = fixture.CreateContext()) { Assert.Equal(8, orderContext.Categories.Count()); Assert.Equal(4, orderContext.Customers.Count()); Assert.Equal(3, orderContext.Orders.Count()); Assert.Equal(7, orderContext.OrderItems.Count()); var category = orderContext.Categories.Single(t => t.Name == "jackets"); Assert.Equal("clothes", orderContext.Categories.Single(t => t.Id == category.ParentId).Name); Assert.Equal(2, orderContext.Categories.Where(t => t.ParentId == category.Id).Count()); var order1 = orderContext.Orders.Include(t => t.Items).Single(t => t.Name == "Order 1"); Assert.Equal(3, order1.Items.Count()); var order2 = orderContext.Orders.Include(t => t.Items).Single(t => t.Name == "Order 2"); Assert.Equal(2, order2.Items.Count()); var order3 = orderContext.Orders.Include(t => t.Items).Single(t => t.Name == "Order unknown"); Assert.Equal(2, order3.Items.Count()); } return(Task.CompletedTask); }
private static async Task <T[]> Execute <T>(String request, Object requestData, Func <OrderContext, IEnumerable <T> > fromDbFunc) { var fixture = new DbFixtureInitDb(); fixture.Initalize(); var parser = new OeParser(new Uri("http://dummy/"), fixture.OeDataAdapter, fixture.EdmModel); var responseStream = new MemoryStream(); var requestUri = new Uri(@"http://dummy/" + request); if (requestData == null) { await parser.ExecuteGetAsync(requestUri, OeRequestHeaders.JsonDefault, responseStream, CancellationToken.None); } else { String data = JsonConvert.SerializeObject(requestData); var requestStream = new MemoryStream(Encoding.UTF8.GetBytes(data)); await parser.ExecutePostAsync(requestUri, OeRequestHeaders.JsonDefault, requestStream, responseStream, CancellationToken.None); } var reader = new ResponseReader(fixture.EdmModel, fixture.DbDataAdapter.EntitySetMetaAdapters); responseStream.Position = 0; T[] fromOe; if (typeof(T) == typeof(int)) { String count = new StreamReader(responseStream).ReadToEnd(); fromOe = count == "" ? null : new T[] { (T)(Object)int.Parse(count) }; } else { fromOe = reader.Read <T>(responseStream).ToArray(); } if (fromDbFunc == null) { return(fromOe); } T[] fromDb; using (var orderContext = (OrderContext)fixture.DbDataAdapter.CreateDataContext()) fromDb = fromDbFunc(orderContext).ToArray(); var settings = new JsonSerializerSettings() { DateFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'ffffff", DateTimeZoneHandling = DateTimeZoneHandling.Utc, ReferenceLoopHandling = ReferenceLoopHandling.Ignore, NullValueHandling = NullValueHandling.Ignore }; String jsonOe = JsonConvert.SerializeObject(fromOe, settings); String jsonDb = JsonConvert.SerializeObject(fromDb, settings); Console.WriteLine(requestUri); Assert.Equal(jsonDb, jsonOe); return(fromOe); }
public async Task Delete() { var fixture = new DbFixtureInitDb(); fixture.Initalize(); await fixture.ExecuteBatchAsync("Delete"); using (var orderContext = fixture.CreateContext()) { Assert.Equal(5, orderContext.Categories.Count()); Assert.Equal(4, orderContext.Customers.Count()); Assert.Equal(2, orderContext.Orders.Count()); Assert.Equal(3, orderContext.OrderItems.Count()); var order1 = orderContext.Orders.Include(t => t.Items).Single(t => t.Name == "Order 1"); Assert.Equal("Product order 1 item 3", order1.Items.Single().Product); } }
protected ModelBoundTest(DbFixtureInitDb fixture) { fixture.Initalize().GetAwaiter().GetResult(); Fixture = fixture; }