Exemplo n.º 1
0
        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"));
        }