Example #1
0
        public void GivenFulfilledNeed_WhenAskingForValue_ThenItShouldReturnCorrectValue()
        {
            // arrange
            FakeEventMessage fakeEventMessage     = new FakeEventMessage(new EventData(new ArraySegment <byte>()));
            FakeNeed         fakeNeed             = new FakeNeed();
            const string     stricklandPropaneLlc = "Strickland Propane, LLC";
            ExpandoObject    expected             = JsonConvert.DeserializeObject <ExpandoObject>($"{{'BusinessName':'{stricklandPropaneLlc}'}}");
            FakeResult       fakeResult           = new FakeResult(expected);
            INeedActivity    needActivity         = new Privateer().Object <GoogazonActivities.TopicNeedActivity.TopicNeedActivity>(fakeEventMessage, fakeNeed, fakeResult);

            // act
            dynamic actual = needActivity.ValueAsync().Result;

            // assert
            ((ExpandoObject)actual).Should().BeEquivalentTo(expected);
            ((string)actual.BusinessName).Should().Be(stricklandPropaneLlc);
        }
Example #2
0
        public void GivenNeed_WhenAskingToExpressNeed_ThenItShouldCallExpressNeed()
        {
            // arrange
            FakeEventMessage fakeEventMessage     = new FakeEventMessage(new EventData(new ArraySegment <byte>()));
            FakeNeed         fakeNeed             = new FakeNeed();
            const string     stricklandPropaneLlc = "Strickland Propane, LLC";
            ExpandoObject    expected             = JsonConvert.DeserializeObject <ExpandoObject>($"{{'BusinessName':'{stricklandPropaneLlc}'}}");
            FakeResult       fakeResult           = new FakeResult(expected);
            INeedActivity    needActivity         = new Privateer().Object <GoogazonActivities.TopicNeedActivity.TopicNeedActivity>(fakeEventMessage, fakeNeed, fakeResult);

            // act
            Func <Task> func = async() => await needActivity.ExpressNeed();

            func.Invoke();

            // assert
            fakeNeed.CallCountSpy.Should().Be(1);
        }