public async Task AnnotateSlug_should_create_events_and_update_slug() { var command = new AnnotateAsset { Slug = "my-new-image.png" }; await ExecuteCreateAsync(); var result = await PublishIdempotentAsync(command); result.ShouldBeEquivalent(sut.Snapshot); Assert.Equal(command.Slug, sut.Snapshot.Slug); LastEvents .ShouldHaveSameEvents( CreateAssetEvent(new AssetAnnotated { Slug = command.Slug }) ); }
public async Task AnnotateProtected_should_create_events_and_update_protected_flag() { var command = new AnnotateAsset { IsProtected = true }; await ExecuteCreateAsync(); var result = await PublishIdempotentAsync(command); result.ShouldBeEquivalent(sut.Snapshot); Assert.Equal(command.IsProtected, sut.Snapshot.IsProtected); LastEvents .ShouldHaveSameEvents( CreateAssetEvent(new AssetAnnotated { IsProtected = command.IsProtected }) ); }
public async Task AnnotateSlug_should_create_events() { var command = new AnnotateAsset { Slug = "my-new-image.png" }; await ExecuteCreateAsync(); var result = await sut.ExecuteAsync(CreateAssetCommand(command)); result.ShouldBeEquivalent(new EntitySavedResult(1)); Assert.Equal("my-new-image.png", sut.Snapshot.Slug); LastEvents .ShouldHaveSameEvents( CreateAssetEvent(new AssetAnnotated { Slug = "my-new-image.png" }) ); }
public async Task AnnotateName_should_create_events_and_update_file_name() { var command = new AnnotateAsset { FileName = "My New Image.png" }; await ExecuteCreateAsync(); var result = await PublishIdempotentAsync(command); result.ShouldBeEquivalent(sut.Snapshot); Assert.Equal(command.FileName, sut.Snapshot.FileName); LastEvents .ShouldHaveSameEvents( CreateAssetEvent(new AssetAnnotated { FileName = command.FileName }) ); }
public async Task AnnotateMetadata_should_create_events_and_update_metadata() { var command = new AnnotateAsset { Metadata = new AssetMetadata().SetPixelWidth(800) }; await ExecuteCreateAsync(); var result = await PublishIdempotentAsync(command); result.ShouldBeEquivalent(sut.Snapshot); Assert.Equal(command.Metadata, sut.Snapshot.Metadata); LastEvents .ShouldHaveSameEvents( CreateAssetEvent(new AssetAnnotated { Metadata = command.Metadata }) ); }
public static void CanAnnotate(AnnotateAsset command) { Guard.NotNull(command); Validate.It(() => "Cannot annotate asset.", e => { if (string.IsNullOrWhiteSpace(command.FileName) && string.IsNullOrWhiteSpace(command.Slug) && command.IsProtected == null && command.Metadata == null && command.Tags == null) { e("At least one property must be defined.", nameof(command.FileName), nameof(command.IsProtected), nameof(command.Metadata), nameof(command.Slug), nameof(command.Tags)); } }); }
public async Task AnnotateName_should_create_events() { var command = new AnnotateAsset { FileName = "My New Image.png" }; await ExecuteCreateAsync(); var result = await sut.ExecuteAsync(CreateAssetCommand(command)); result.ShouldBeEquivalent(sut.Snapshot); Assert.Equal("My New Image.png", sut.Snapshot.FileName); LastEvents .ShouldHaveSameEvents( CreateAssetEvent(new AssetAnnotated { FileName = "My New Image.png" }) ); }
public async Task AnnotateTags_should_create_events_and_update_state() { var command = new AnnotateAsset { Tags = new HashSet <string> { "tag1" } }; await ExecuteCreateAsync(); var result = await PublishIdempotentAsync(command); result.ShouldBeEquivalent2(sut.Snapshot); LastEvents .ShouldHaveSameEvents( CreateAssetEvent(new AssetAnnotated { Tags = new HashSet <string> { "tag1" } }) ); }
public static void CanAnnotate(AnnotateAsset command, string oldFileName, string oldSlug) { Guard.NotNull(command, nameof(command)); Validate.It(() => "Cannot rename asset.", e => { if (string.IsNullOrWhiteSpace(command.FileName) && string.IsNullOrWhiteSpace(command.Slug) && command.Tags == null) { e("Either file name, slug or tags must be defined.", nameof(command.FileName), nameof(command.Slug), nameof(command.Tags)); } if (!string.IsNullOrWhiteSpace(command.FileName) && string.Equals(command.FileName, oldFileName)) { e(Not.New("Asset", "name"), nameof(command.FileName)); } if (!string.IsNullOrWhiteSpace(command.Slug) && string.Equals(command.Slug, oldSlug)) { e(Not.New("Asset", "slug"), nameof(command.Slug)); } }); }
private void Annotate(AnnotateAsset command) { Raise(command, new AssetAnnotated()); }
public static void CanAnnotate(AnnotateAsset command) { Guard.NotNull(command, nameof(command)); }
public void Annotate(AnnotateAsset command) { RaiseEvent(SimpleMapper.Map(command, new AssetAnnotated())); }