示例#1
0
        private static CreateRule MakeCreateCommand()
        {
            var newTrigger = new ContentChangedTriggerV2
            {
                Schemas = ReadOnlyCollection.Empty <ContentChangedTriggerSchemaV2>()
            };

            var newAction = new TestAction
            {
                Url = new Uri("https://squidex.io/v2")
            };

            return(new CreateRule {
                Trigger = newTrigger, Action = newAction
            });
        }
示例#2
0
        public async Task Should_not_add_error_if_schemas_ids_are_valid()
        {
            A.CallTo(() => appProvider.GetSchemaAsync(appId.Id, A <DomainId> ._, false))
            .Returns(Mocks.Schema(appId, schemaId));

            var trigger = new ContentChangedTriggerV2
            {
                Schemas = ReadOnlyCollection.Create(new ContentChangedTriggerSchemaV2 {
                    SchemaId = schemaId.Id
                })
            };

            var errors = await RuleTriggerValidator.ValidateAsync(appId.Id, trigger, appProvider);

            Assert.Empty(errors);
        }
示例#3
0
        public async Task Should_not_add_error_if_schemas_ids_are_valid()
        {
            A.CallTo(() => appProvider.GetSchemaAsync(appId, A <Guid> .Ignored, false))
            .Returns(A.Fake <ISchemaEntity>());

            var trigger = new ContentChangedTriggerV2
            {
                Schemas = ReadOnlyCollection.Create(new ContentChangedTriggerSchemaV2 {
                    SchemaId = schemaId
                })
            };

            var errors = await RuleTriggerValidator.ValidateAsync(appId, trigger, appProvider);

            Assert.Empty(errors);
        }
        public async Task Should_add_error_if_schema_id_is_not_defined()
        {
            var trigger = new ContentChangedTriggerV2
            {
                Schemas = ReadOnlyCollection.Create(new ContentChangedTriggerSchemaV2())
            };

            var errors = await RuleTriggerValidator.ValidateAsync(appId.Id, trigger, appProvider);

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError("Schema id is required.", "Schemas")
            });

            A.CallTo(() => appProvider.GetSchemaAsync(appId.Id, A <DomainId> ._, false, false))
            .MustNotHaveHappened();
        }
示例#5
0
        public void Should_replace_trigger_when_updating()
        {
            var newTrigger1 = new ContentChangedTriggerV2 {
                HandleAll = true
            };
            var newTrigger2 = new ContentChangedTriggerV2 {
                HandleAll = true
            };

            var rule_1 = rule_0.Update(newTrigger1);
            var rule_2 = rule_1.Update(newTrigger2);

            Assert.NotSame(rule_0.Action, newTrigger1);
            Assert.NotSame(rule_0, rule_1);
            Assert.Same(newTrigger1, rule_1.Trigger);
            Assert.Same(newTrigger1, rule_2.Trigger);
            Assert.Same(rule_1, rule_2);
        }
        public async Task Should_add_error_if_schemas_ids_are_not_valid()
        {
            A.CallTo(() => appProvider.GetSchemaAsync(appId.Id, schemaId.Id, false, false))
            .Returns(Task.FromResult <ISchemaEntity?>(null));

            var trigger = new ContentChangedTriggerV2
            {
                Schemas = ReadOnlyCollection.Create(new ContentChangedTriggerSchemaV2 {
                    SchemaId = schemaId.Id
                })
            };

            var errors = await RuleTriggerValidator.ValidateAsync(appId.Id, trigger, appProvider);

            errors.Should().BeEquivalentTo(
                new List <ValidationError>
            {
                new ValidationError($"Schema {schemaId.Id} does not exist.", "Schemas")
            });
        }
        public async Task Should_create_events_from_snapshots()
        {
            var trigger = new ContentChangedTriggerV2();

            A.CallTo(() => contentRepository.StreamAll(appId.Id, null))
            .Returns(new List <ContentEntity>
            {
                new ContentEntity {
                    SchemaId = schemaMatch
                },
                new ContentEntity {
                    SchemaId = schemaMatch
                }
            }.ToAsyncEnumerable());

            var result = await sut.CreateSnapshotEvents(trigger, appId.Id).ToListAsync();

            var typed = result.OfType <EnrichedContentEvent>().ToList();

            Assert.Equal(2, typed.Count);
            Assert.Equal(2, typed.Count(x => x.Type == EnrichedContentEventType.Created));
        }