public void ChangeToCreated_WhenObejectIsInActiveState_Throws(
            IEventStoreConnection connection,
            EventStoreConnectionState state)
        {
            state.ChangeToCreated(connection);

            Assert.Throws <InvalidOperationException>(() => state.ChangeToCreated(connection));
        }
        public void ChangeToCreated_PropertiesTests(
            IEventStoreConnection connection,
            EventStoreConnectionState state)
        {
            state.ChangeToCreated(connection);

            Assert.True(state.IsActive);
            Assert.False(state.IsClosed);
            Assert.False(state.IsClosing);
        }
        public void ChangeToCreated_FiresWhenObejectIsInClosedState_Throws(
            IEventStoreConnection connection,
            EventStoreConnectionState state)
        {
            state.ChangeToCreated(connection);
            state.ChangeToClosing();
            state.ChangeToClosed();

            Assert.Throws <InvalidOperationException>(() => state.ChangeToCreated(connection));
        }
        public void EnsureConnectionIsActive_WhenObjectIsInClosingState_Throws(
            IEventStoreConnection connection,
            EventStoreConnectionState state)
        {
            state.ChangeToCreated(connection);
            state.ChangeToClosing();

            Assert.Throws <EventStreamConnectionWasClosedException>(
                () => state.EnsureConnectionIsActive());
        }
        public void ChangeToCreated_FiresConnectionCreatedEvent(
            IEventStoreConnection connection,
            EventStoreConnectionState state)
        {
            var fired = false;

            state.ConnectionCreated += (sender, args) => fired = true;

            state.ChangeToCreated(connection);

            Assert.True(fired);
        }
 public void ChangeToClosed_WhenObejectIsNotInClosingState_Throws(
     IEventStoreConnection connection,
     EventStoreConnectionState state)
 {
     Assert.Throws <InvalidOperationException>(() => state.ChangeToClosed());
 }