Esempio n. 1
0
        public ResolveReferencesTests()
        {
            requestContext = new Context(Mocks.FrontendUser(), Mocks.App(appId, Language.DE));

            var refSchemaDef =
                new Schema("my-ref")
                .AddString(1, "name", Partitioning.Invariant,
                           new StringFieldProperties())
                .AddNumber(2, "number", Partitioning.Invariant,
                           new NumberFieldProperties())
                .SetFieldsInReferences("name", "number");

            var schemaDef =
                new Schema(schemaId.Name)
                .AddReferences(1, "ref1", Partitioning.Invariant, new ReferencesFieldProperties
            {
                ResolveReference = true,
                MinItems         = 1,
                MaxItems         = 1,
                SchemaId         = refSchemaId1.Id
            })
                .AddReferences(2, "ref2", Partitioning.Invariant, new ReferencesFieldProperties
            {
                ResolveReference = true,
                MinItems         = 1,
                MaxItems         = 1,
                SchemaId         = refSchemaId2.Id
            })
                .SetFieldsInLists("ref1", "ref2");

            schemaProvider = x =>
            {
                if (x == schemaId.Id)
                {
                    return(Task.FromResult(Mocks.Schema(appId, schemaId, schemaDef)));
                }
                else if (x == refSchemaId1.Id)
                {
                    return(Task.FromResult(Mocks.Schema(appId, refSchemaId1, refSchemaDef)));
                }
                else if (x == refSchemaId2.Id)
                {
                    return(Task.FromResult(Mocks.Schema(appId, refSchemaId2, refSchemaDef)));
                }
                else
                {
                    throw new DomainObjectNotFoundException(x.ToString());
                }
            };

            sut = new ResolveReferences(new Lazy <IContentQueryService>(() => contentQuery), requestCache);
        }