Exemple #1
0
        public async Task OpenAndOpenOnOpening()
        {
            var o = new TestCommunicationObject();

            o.DoOn("OnOpeningAsync", async co => await co.OpenAsync());

            // Calling open is only allowed on a fresh object
            await o.Invoking(x => x.OpenAsync())
            .Should().ThrowAsync <InvalidOperationException>();
        }
Exemple #2
0
        public async Task OpenAndThrowOnOpening()
        {
            var o = new TestCommunicationObject();

            o.DoOn("OnOpeningAsync", co => Task.FromException(new TestException()));

            await o.Invoking(x => x.OpenAsync())
            .Should().ThrowAsync <TestException>();

            o.State
            .Should().Be(CommunicationState.Faulted);

            o.Record
            .Should().Equal(new string[]
            {
                "OnOpeningAsync",
                "Event_Opening",
                "OnFaulted",
                "Event_Faulted",
            });
        }