public void ExtendModelAsync_UpdatesModel_IfHasOnModelCreatingMethod(Type type) { // Arrange var domain = Activator.CreateInstance(type); var extender = new ConventionalModelExtender(type); var domainConfig = new DomainConfiguration(); domainConfig.EnsureCommitted(); var domainContext = new DomainContext(domainConfig); domainContext.SetProperty(type.AssemblyQualifiedName, domain); var model = GetModel(); var context = new ModelContext(domainContext) { Model = model }; // Act extender.ExtendModelAsync(context, new CancellationToken()); // Assert Assert.Same(model, context.Model); var operations = model.SchemaElements.OfType<IEdmOperation>(); Assert.Single(operations); var operation = operations.Single(); Assert.True(operation.IsBound); Assert.True(operation.IsFunction()); Assert.Equal("MostExpensive", operation.Name); Assert.Equal("ns", operation.Namespace); }
/// <inheritdoc/> public override void Initialize( DomainContext context, Type type, object instance) { Ensure.NotNull(context); Ensure.NotNull(type); context.SetProperty(type.AssemblyQualifiedName, instance); }
public void ExtendModelAsync_DoesntUpdatesModel_IfWithoutOnModelCreatingMethod() { // Arrange var domain = new AnyDomain(); var type = domain.GetType(); var extender = new ConventionalModelExtender(type); var domainConfig = new DomainConfiguration(); domainConfig.EnsureCommitted(); var domainContext = new DomainContext(domainConfig); domainContext.SetProperty(type.AssemblyQualifiedName, domain); var model = GetModel(); var context = new ModelContext(domainContext) { Model = model }; // Act extender.ExtendModelAsync(context, new CancellationToken()); // Assert Assert.Same(model, context.Model); Assert.Empty(model.SchemaElements.OfType<IEdmOperation>()); }