diff --git a/src/PinkParrot.Write/Schemas/SchemaDomainObject.cs b/src/PinkParrot.Write/Schemas/SchemaDomainObject.cs index e94e4c732..276f3a580 100644 --- a/src/PinkParrot.Write/Schemas/SchemaDomainObject.cs +++ b/src/PinkParrot.Write/Schemas/SchemaDomainObject.cs @@ -100,7 +100,7 @@ namespace PinkParrot.Write.Schemas public void On(SchemaDeleted @event) { - isDeleted = false; + isDeleted = true; } public void AddField(AddField command, FieldProperties properties) diff --git a/tests/PinkParrot.Write.Tests/Schemas/SchemaDomainObjectTest.cs b/tests/PinkParrot.Write.Tests/Schemas/SchemaDomainObjectTest.cs index fdf40b873..143e00499 100644 --- a/tests/PinkParrot.Write.Tests/Schemas/SchemaDomainObjectTest.cs +++ b/tests/PinkParrot.Write.Tests/Schemas/SchemaDomainObjectTest.cs @@ -102,5 +102,30 @@ namespace PinkParrot.Write.Tests.Schemas .ShouldBeEquivalentTo( new SchemaUpdated { Properties = props }); } + + [Fact] + public void Delete_should_throw_if_not_created() + { + Assert.Throws(() => sut.Delete()); + } + + [Fact] + public void Delete_should_throw_if_already_deleted() + { + sut.Create(new CreateSchema { Name = TestName }); + sut.Delete(); + + Assert.Throws(() => sut.Delete()); + } + + [Fact] + public void Delete_should_refresh_properties() + { + sut.Create(new CreateSchema { Name = TestName, AppId = appId }); + sut.Delete(); + + Assert.True(sut.IsDeleted); + Assert.IsType(sut.GetUncomittedEvents().Last().Payload); + } } }