public void Build_Will_Use_Resource_If_Defined_For_Single_Document() { var entity = new User(); var resourceGraph = new ResourceGraphBuilder() .AddResource <User>("user") .Build(); _jsonApiContextMock.Setup(m => m.ResourceGraph).Returns(resourceGraph); var scopedServiceProvider = new TestScopedServiceProvider( new ServiceCollection() .AddScoped <ResourceDefinition <User>, UserResource>() .BuildServiceProvider()); var documentBuilder = new DocumentBuilder(_jsonApiContextMock.Object, scopedServiceProvider: scopedServiceProvider); var documents = documentBuilder.Build(entity); Assert.False(documents.Data.Attributes.ContainsKey("password")); Assert.True(documents.Data.Attributes.ContainsKey("username")); }
public void Build_Will_Use_Instance_Specific_Resource_If_Defined_For_Multiple_Documents() { var entities = new[] { new User() }; var contextGraph = new ContextGraphBuilder() .AddResource <User>("user") .Build(); _jsonApiContextMock.Setup(m => m.ContextGraph).Returns(contextGraph); var scopedServiceProvider = new TestScopedServiceProvider( new ServiceCollection() .AddScoped <ResourceDefinition <User>, InstanceSpecificUserResource>() .BuildServiceProvider()); var documentBuilder = new DocumentBuilder(_jsonApiContextMock.Object, scopedServiceProvider: scopedServiceProvider); var documents = documentBuilder.Build(entities); Assert.Single(documents.Data); Assert.False(documents.Data[0].Attributes.ContainsKey("password")); Assert.True(documents.Data[0].Attributes.ContainsKey("username")); }