public async Task ComplexTypeUpdate() { // Arrange var container = new RestierContainerBuilder(typeof(LibraryApi)); var provider = container.BuildContainer(); var libraryApi = provider.GetService<ApiBase>(); var item = new DataModificationItem( "Readers", typeof(Person), null, DataModificationItemAction.Update, new Dictionary<string, object> { { "Id", new Guid("53162782-EA1B-4712-AF26-8AA1D2AC0461") } }, new Dictionary<string, object>(), new Dictionary<string, object> { { "Addr", new Dictionary<string, object> { { "Zip", "332" } } } }); var changeSet = new ChangeSet(new[] { item }); var sc = new SubmitContext(libraryApi.Context, changeSet); // Act var changeSetPreparer = libraryApi.Context.GetApiService<IChangeSetInitializer>(); await changeSetPreparer.InitializeAsync(sc, CancellationToken.None); var person = item.Resource as Person; // Assert Assert.NotNull(person); Assert.Equal("332", person.Addr.Zip); }
public void PrimitiveTypesShouldWork() { var container = new RestierContainerBuilder(typeof(LibraryApi)); var provider = container.BuildContainer(); var api = provider.GetService<ApiBase>(); var model = api.Context.GetModelAsync().Result; IEnumerable<EdmError> errors; Assert.True(model.Validate(out errors)); Assert.Empty(errors); var universe = model.FindDeclaredType("Microsoft.Restier.Publishers.OData.Test.Model.Universe") as IEdmComplexType; Assert.NotNull(universe); var propertyArray = universe.Properties().ToArray(); int i = 0; Assert.True(propertyArray[i++].Type.AsPrimitive().IsBinary()); Assert.True(propertyArray[i++].Type.AsPrimitive().IsBoolean()); Assert.True(propertyArray[i++].Type.AsPrimitive().IsByte()); Assert.True(propertyArray[i++].Type.AsPrimitive().IsDate()); Assert.True(propertyArray[i++].Type.AsPrimitive().IsDateTimeOffset()); Assert.True(propertyArray[i++].Type.AsPrimitive().IsDecimal()); Assert.True(propertyArray[i++].Type.AsPrimitive().IsDouble()); Assert.True(propertyArray[i++].Type.AsPrimitive().IsDuration()); Assert.True(propertyArray[i++].Type.AsPrimitive().IsGuid()); Assert.True(propertyArray[i++].Type.AsPrimitive().IsInt16()); Assert.True(propertyArray[i++].Type.AsPrimitive().IsInt32()); Assert.True(propertyArray[i++].Type.AsPrimitive().IsInt64()); // Assert.True(propertyArray[i++].Type.AsPrimitive().IsSByte()); Assert.True(propertyArray[i++].Type.AsPrimitive().IsSingle()); // Assert.True(propertyArray[i++].Type.AsPrimitive().IsStream()); Assert.True(propertyArray[i++].Type.AsPrimitive().IsString()); // Assert.True(propertyArray[i].Type.AsPrimitive().IsTimeOfDay()); }
public async Task TestEntityFilterReturnsTask() { var container = new RestierContainerBuilder(typeof(TestEntityFilterReturnsTaskApi)); var provider = container.BuildContainer(); var api = provider.GetService<ApiBase>(); DataModificationItem<Customer> createCustomer = new DataModificationItem<Customer>( "Customers", typeof(Customer), null, DataModificationItemAction.Insert, null, null, new Dictionary<string, object>() { {"CustomerID", "NEW01"}, {"CompanyName", "New Cust"}, }); await api.SubmitAsync(new ChangeSet(new ChangeSetItem[] { createCustomer })); NorthwindContext ctx = new NorthwindContext(); #if EF7 Customer newCustomer = await ctx.Customers.FirstOrDefaultAsync(e => e.CustomerID == "NEW01"); #else Customer newCustomer = await ctx.Customers.FindAsync("NEW01"); #endif // The "OnInserting" should have been appended by the OnInsertingCustomers filter Assert.Equal("New CustOnInserting", newCustomer.CompanyName); ctx.Customers.Remove(newCustomer); await ctx.SaveChangesAsync(); }
public void ComplexTypeShoudWork() { var container = new RestierContainerBuilder(typeof(LibraryApi)); var provider = container.BuildContainer(); var api = provider.GetService<ApiBase>(); var model = api.Context.GetModelAsync().Result; IEnumerable<EdmError> errors; Assert.True(model.Validate(out errors)); Assert.Empty(errors); var address = model.FindDeclaredType("Microsoft.Restier.Publishers.OData.Test.Model.Address") as IEdmComplexType; Assert.NotNull(address); Assert.Equal(2, address.Properties().Count()); }