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 }); }
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); }
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(); }
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)); }