From 8aee0a11653e85e06a4c62add679729772faacff Mon Sep 17 00:00:00 2001 From: Brian Rogers Date: Tue, 11 Dec 2018 19:33:38 -0800 Subject: [PATCH] Items - SkipCustomActionForItemThatHasNoActions --- core/src/Item.cs | 2 +- core/test/ItemsTest.cs | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/core/src/Item.cs b/core/src/Item.cs index aab976e..3b47fcd 100644 --- a/core/src/Item.cs +++ b/core/src/Item.cs @@ -19,7 +19,7 @@ public bool Do(MessageBus bus, Word verb, Word noun) protected virtual bool DoCore(MessageBus bus, Word verb, Word noun) { - return true; + return false; } } } diff --git a/core/test/ItemsTest.cs b/core/test/ItemsTest.cs index 931e833..ace3a64 100644 --- a/core/test/ItemsTest.cs +++ b/core/test/ItemsTest.cs @@ -142,6 +142,27 @@ public void SkipCustomActionForItemThatCannotHandleIt() messages.Should().ContainSingle().Which.Should().Be("Don't CONSUME the BALL"); } + [Fact] + public void SkipCustomActionForItemThatHasNoActions() + { + MessageBus bus = new MessageBus(); + List messages = new List(); + bus.Subscribe(m => messages.Add(m.Text)); + Items items = new Items(bus); + items.Drop("ball", new TestItemNoActions()); + + items.Activate(); + bus.Subscribe(m => messages.Add($"Don't {m.Verb} the {m.Noun}")); + bus.Send(new SentenceMessage(new Word("eat", "CONSUME"), new Word("ball", "BALL"))); + + messages.Should().ContainSingle().Which.Should().Be("Don't CONSUME the BALL"); + } + + private sealed class TestItemNoActions : Item + { + public override string ShortDescription => "a dull item"; + } + private sealed class TestItem : Item { public override string ShortDescription => "a test item";