public ContentCommandMiddlewareTests()
        {
            var schemaDef =
                Schema.Create("my-schema", new SchemaProperties())
                .AddOrUpdateField(new NumberField(1, "my-field", Partitioning.Invariant,
                                                  new NumberFieldProperties {
                IsRequired = true
            }));

            content = new ContentDomainObject(contentId, -1);

            sut = new ContentCommandMiddleware(Handler, appProvider, A.Dummy <IAssetRepository>(), schemas, scriptEngine, A.Dummy <IContentRepository>());

            A.CallTo(() => app.LanguagesConfig).Returns(languagesConfig);
            A.CallTo(() => app.PartitionResolver).Returns(languagesConfig.ToResolver());

            A.CallTo(() => appProvider.FindAppByIdAsync(AppId)).Returns(app);

            A.CallTo(() => schema.SchemaDef).Returns(schemaDef);
            A.CallTo(() => schema.ScriptCreate).Returns("<create-script>");
            A.CallTo(() => schema.ScriptChange).Returns("<change-script>");
            A.CallTo(() => schema.ScriptUpdate).Returns("<update-script>");
            A.CallTo(() => schema.ScriptDelete).Returns("<delete-script>");

            A.CallTo(() => schemas.FindSchemaByIdAsync(SchemaId, false)).Returns(schema);
        }
Beispiel #2
0
        private void Should_enrich_with_default_values()
        {
            var data =
                new NamedContentData()
                .AddField("my-string",
                          new ContentFieldData()
                          .AddValue("de", "de-string"))
                .AddField("my-number",
                          new ContentFieldData()
                          .AddValue("iv", 456));

            data.Enrich(schema, languagesConfig.ToResolver());

            Assert.Equal(456, (int)data["my-number"]["iv"]);

            Assert.Equal("de-string", (string)data["my-string"]["de"]);
            Assert.Equal("en-string", (string)data["my-string"]["en"]);

            Assert.Equal(Now.ToString(), (string)data["my-datetime"]["iv"]);

            Assert.True((bool)data["my-boolean"]["iv"]);
        }
Beispiel #3
0
        public ODataQueryTests()
        {
            schemaDef.Update(new SchemaProperties {
                Hints = "The User"
            });

            schemaDef.AddField(new StringField(1, "firstName", Partitioning.Language,
                                               new StringFieldProperties {
                Label = "FirstName", IsRequired = true, AllowedValues = new[] { "1", "2" }
            }));
            schemaDef.AddField(new StringField(2, "lastName", Partitioning.Language,
                                               new StringFieldProperties {
                Hints = "Last Name", Editor = StringFieldEditor.Input
            }));

            schemaDef.AddField(new BooleanField(3, "isAdmin", Partitioning.Invariant,
                                                new BooleanFieldProperties()));

            schemaDef.AddField(new NumberField(4, "age", Partitioning.Invariant,
                                               new NumberFieldProperties {
                MinValue = 1, MaxValue = 10
            }));

            schemaDef.AddField(new DateTimeField(5, "birthday", Partitioning.Invariant,
                                                 new DateTimeFieldProperties()));

            schemaDef.AddField(new AssetsField(6, "pictures", Partitioning.Invariant,
                                               new AssetsFieldProperties()));

            schemaDef.AddField(new ReferencesField(7, "friends", Partitioning.Invariant,
                                                   new ReferencesFieldProperties()));

            schemaDef.AddField(new StringField(8, "dashed-field", Partitioning.Invariant,
                                               new StringFieldProperties()));

            var builder = new EdmModelBuilder(new MemoryCache(Options.Create(new MemoryCacheOptions())));

            var schema = A.Dummy <ISchemaEntity>();

            A.CallTo(() => schema.Id).Returns(Guid.NewGuid());
            A.CallTo(() => schema.Version).Returns(3);
            A.CallTo(() => schema.SchemaDef).Returns(schemaDef);

            var app = A.Dummy <IAppEntity>();

            A.CallTo(() => app.Id).Returns(Guid.NewGuid());
            A.CallTo(() => app.Version).Returns(3);
            A.CallTo(() => app.PartitionResolver).Returns(languagesConfig.ToResolver());

            edmModel = builder.BuildEdmModel(schema, app);
        }
        public void Should_enrich_with_default_values()
        {
            var data =
                new ContentData()
                .AddField("my-string",
                          new ContentFieldData()
                          .AddLocalized("de", "de-string"))
                .AddField("my-number",
                          new ContentFieldData()
                          .AddInvariant(456));

            data.GenerateDefaultValues(schema, languagesConfig.ToResolver());

            Assert.Equal(456, ((JsonNumber)data["my-number"] !["iv"]).Value);
Beispiel #5
0
        public void Should_enrich_with_default_values()
        {
            var data =
                new NamedContentData()
                .AddField("my-string",
                          new ContentFieldData()
                          .AddValue("de", "de-string"))
                .AddField("my-number",
                          new ContentFieldData()
                          .AddValue("iv", 456));

            data.GenerateDefaultValues(schema, languagesConfig.ToResolver());

            Assert.Equal(456, ((JsonScalar <double>)data["my-number"] !["iv"]).Value);
Beispiel #6
0
        public ODataQueryTests()
        {
            var builder = new EdmModelBuilder(new MemoryCache(Options.Create(new MemoryCacheOptions())));

            var schema = A.Dummy <ISchemaEntity>();

            A.CallTo(() => schema.Id).Returns(Guid.NewGuid());
            A.CallTo(() => schema.Version).Returns(3);
            A.CallTo(() => schema.SchemaDef).Returns(schemaDef);

            var app = A.Dummy <IAppEntity>();

            A.CallTo(() => app.Id).Returns(Guid.NewGuid());
            A.CallTo(() => app.Version).Returns(3);
            A.CallTo(() => app.PartitionResolver).Returns(languagesConfig.ToResolver());

            edmModel = builder.BuildEdmModel(schema, app);
        }
Beispiel #7
0
        public ODataQueryTests()
        {
            var builder = new EdmModelBuilder(new MemoryCache(Options.Create(new MemoryCacheOptions())));

            var schemaEntity = new Mock <ISchemaEntity>();

            schemaEntity.Setup(x => x.Id).Returns(Guid.NewGuid());
            schemaEntity.Setup(x => x.Version).Returns(3);
            schemaEntity.Setup(x => x.Schema).Returns(schema);

            var appEntity = new Mock <IAppEntity>();

            appEntity.Setup(x => x.Id).Returns(Guid.NewGuid());
            appEntity.Setup(x => x.Version).Returns(3);
            appEntity.Setup(x => x.PartitionResolver).Returns(languagesConfig.ToResolver());

            edmModel = builder.BuildEdmModel(schemaEntity.Object, appEntity.Object);
        }
Beispiel #8
0
        public ContentCommandMiddlewareTests()
        {
            var schema =
                Schema.Create("my-schema", new SchemaProperties())
                .AddOrUpdateField(new NumberField(1, "my-field", Partitioning.Invariant,
                                                  new NumberFieldProperties {
                IsRequired = true
            }));

            content = new ContentDomainObject(contentId, -1);

            sut = new ContentCommandMiddleware(Handler, appProvider, A.Dummy <IAssetRepository>(), schemaProvider, A.Dummy <IContentRepository>());

            A.CallTo(() => appEntity.LanguagesConfig).Returns(languagesConfig);
            A.CallTo(() => appEntity.PartitionResolver).Returns(languagesConfig.ToResolver());
            A.CallTo(() => appProvider.FindAppByIdAsync(AppId)).Returns(Task.FromResult(appEntity));

            A.CallTo(() => schemaEntity.Schema).Returns(schema);
            A.CallTo(() => schemaProvider.FindSchemaByIdAsync(SchemaId, false)).Returns(Task.FromResult(schemaEntity));
        }
        public ContentCommandHandlerTests()
        {
            var schema =
                Schema.Create("my-schema", new SchemaProperties())
                .AddOrUpdateField(new NumberField(1, "my-field", Partitioning.Invariant,
                                                  new NumberFieldProperties {
                IsRequired = true
            }));

            content = new ContentDomainObject(contentId, -1);

            sut = new ContentCommandHandler(Handler, appProvider.Object, schemaProvider.Object);

            appEntity.Setup(x => x.LanguagesConfig).Returns(languagesConfig);
            appEntity.Setup(x => x.PartitionResolver).Returns(languagesConfig.ToResolver());
            appProvider.Setup(x => x.FindAppByIdAsync(AppId)).Returns(Task.FromResult(appEntity.Object));

            schemaEntity.Setup(x => x.Schema).Returns(schema);
            schemaProvider.Setup(x => x.FindSchemaByIdAsync(SchemaId, false)).Returns(Task.FromResult(schemaEntity.Object));
        }
Beispiel #10
0
        public async Task Should_add_error_if_value_validator_throws_exception()
        {
            var validator = A.Fake <IValidator>();

            A.CallTo(() => validator.ValidateAsync(A <object?> ._, A <ValidationContext> ._, A <AddError> ._))
            .Throws(new InvalidOperationException());

            var validatorFactory = A.Fake <IValidatorsFactory>();

            A.CallTo(() => validatorFactory.CreateValueValidators(A <ValidationContext> ._, A <IField> ._, A <ValidatorFactory> ._))
            .Returns(Enumerable.Repeat(validator, 1));

            schema = schema.AddNumber(1, "my-field", Partitioning.Invariant,
                                      new NumberFieldProperties());

            var data =
                new ContentData()
                .AddField("my-field",
                          new ContentFieldData()
                          .AddInvariant(1000));

            await data.ValidateAsync(languagesConfig.ToResolver(), errors, schema, factory : validatorFactory);

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Validation failed with internal error.", "my-field.iv")
            });
        }
Beispiel #11
0
        public async Task Should_add_error_if_validating_data_with_unknown_field()
        {
            var data =
                new NamedContentData()
                .AddField("unknown",
                          new ContentFieldData());

            await data.ValidateAsync(context, schema, languagesConfig.ToResolver(), errors);

            errors.ShouldBeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("unknown: Not a known field.", "unknown")
            });
        }