コード例 #1
0
        public void make_sure_that_the_constructor_initializes_everything_ok()
        {
            var cmd = Substitute.For<IDbCommand>();
            var reader = Substitute.For<IDataReader>();
            var mapper = Substitute.For<IEntityMapper<string>>();

            var sut = new AdoNetEntityEnumerator<string>(cmd, reader, mapper, true);

            cmd.DidNotReceiveWithAnyArgs().ExecuteReader();
        }
コード例 #2
0
        public void make_sure_that_the_constructor_initializes_everything_ok()
        {
            var cmd    = Substitute.For <IDbCommand>();
            var reader = Substitute.For <IDataReader>();
            var mapper = Substitute.For <IEntityMapper <string> >();

            var sut = new AdoNetEntityEnumerator <string>(cmd, reader, mapper, true);

            cmd.DidNotReceiveWithAnyArgs().ExecuteReader();
        }
コード例 #3
0
        public void movenext_should_NOT_execute_the_command_when_called_for_the_First_time_if_it_was_passed_in_the_constructor()
        {
            var cmd = Substitute.For<IDbCommand>();
            var reader = Substitute.For<IDataReader>();
            var mapper = Substitute.For<IEntityMapper<string>>();

            var sut = new AdoNetEntityEnumerator<string>(cmd, reader, mapper, true);
            sut.MoveNext();

            cmd.DidNotReceive().ExecuteReader();
        }
コード例 #4
0
        public void should_dispose_command()
        {
            var cmd    = Substitute.For <IDbCommand>();
            var reader = Substitute.For <IDataReader>();
            var mapper = Substitute.For <IEntityMapper <string> >();

            var sut = new AdoNetEntityEnumerator <string>(cmd, reader, mapper, true);

            sut.Dispose();

            cmd.Received().Dispose();
        }
コード例 #5
0
        public void dispose_reader_if_it_has_been_specified()
        {
            var cmd    = Substitute.For <IDbCommand>();
            var reader = Substitute.For <IDataReader>();
            var mapper = Substitute.For <IEntityMapper <string> >();

            var sut = new AdoNetEntityEnumerator <string>(cmd, reader, mapper, true);

            sut.Dispose();

            reader.Received().Dispose();
        }
コード例 #6
0
        public void movenext_should_execute_reader_Read()
        {
            var cmd    = Substitute.For <IDbCommand>();
            var reader = Substitute.For <IDataReader>();
            var mapper = Substitute.For <IEntityMapper <string> >();

            var sut    = new AdoNetEntityEnumerator <string>(cmd, reader, mapper, true);
            var actual = sut.MoveNext();

            reader.Received().Read();
            actual.Should().BeFalse();
        }
コード例 #7
0
        public void Reset_is_not_allowed_as_we_cant_move_backwards_with_a_reader()
        {
            var cmd = Substitute.For<IDbCommand>();
            var reader = Substitute.For<IDataReader>();
            var mapper = Substitute.For<IEntityMapper<string>>();
            reader.Read();

            var sut = new AdoNetEntityEnumerator<string>(cmd, reader, mapper, true);
            Action actual = sut.Reset;

            actual.ShouldThrow<InvalidOperationException>();
        }
コード例 #8
0
        public void movenext_should_NOT_execute_the_command_when_called_for_the_First_time_if_it_was_passed_in_the_constructor()
        {
            var cmd    = Substitute.For <IDbCommand>();
            var reader = Substitute.For <IDataReader>();
            var mapper = Substitute.For <IEntityMapper <string> >();

            var sut = new AdoNetEntityEnumerator <string>(cmd, reader, mapper, true);

            sut.MoveNext();

            cmd.DidNotReceive().ExecuteReader();
        }
コード例 #9
0
        public void movenext_should_execute_reader_Read()
        {
            var cmd = Substitute.For<IDbCommand>();
            var reader = Substitute.For<IDataReader>();
            var mapper = Substitute.For<IEntityMapper<string>>();

            var sut = new AdoNetEntityEnumerator<string>(cmd, reader, mapper, true);
            var actual = sut.MoveNext();

            reader.Received().Read();
            actual.Should().BeFalse();
        }
コード例 #10
0
        public void movenext_should_return_Value_from_Read()
        {
            var cmd = Substitute.For<IDbCommand>();
            var reader = Substitute.For<IDataReader>();
            var mapper = Substitute.For<IEntityMapper<string>>();
            reader.Read().Returns(true);

            var sut = new AdoNetEntityEnumerator<string>(cmd, reader, mapper, true);
            var actual = sut.MoveNext();

            actual.Should().BeTrue();
        }
コード例 #11
0
        public void may_not_call_Current_before_MoveNext_as_we_need_to_move_to_the_first_record_first()
        {
            var    cmd    = Substitute.For <IDbCommand>();
            var    reader = Substitute.For <IDataReader>();
            var    mapper = Substitute.For <IEntityMapper <string> >();
            object tmp    = null;

            var    sut    = new AdoNetEntityEnumerator <string>(cmd, reader, mapper, false);
            Action actual = () => tmp = sut.Current;

            actual.ShouldThrow <InvalidOperationException>();
        }
コード例 #12
0
        public void movenext_should_return_Value_from_Read()
        {
            var cmd    = Substitute.For <IDbCommand>();
            var reader = Substitute.For <IDataReader>();
            var mapper = Substitute.For <IEntityMapper <string> >();

            reader.Read().Returns(true);

            var sut    = new AdoNetEntityEnumerator <string>(cmd, reader, mapper, true);
            var actual = sut.MoveNext();

            actual.Should().BeTrue();
        }
コード例 #13
0
        public void Reset_is_not_allowed_as_we_cant_move_backwards_with_a_reader()
        {
            var cmd    = Substitute.For <IDbCommand>();
            var reader = Substitute.For <IDataReader>();
            var mapper = Substitute.For <IEntityMapper <string> >();

            reader.Read();

            var    sut    = new AdoNetEntityEnumerator <string>(cmd, reader, mapper, true);
            Action actual = sut.Reset;

            actual.ShouldThrow <InvalidOperationException>();
        }
コード例 #14
0
        public void should_NOT_dispose_connection_if_its_nots_owned()
        {
            var connection = Substitute.For <IDbConnection>();
            var cmd        = Substitute.For <IDbCommand>();

            cmd.Connection.Returns(connection);
            var reader = Substitute.For <IDataReader>();
            var mapper = Substitute.For <IEntityMapper <string> >();

            var sut = new AdoNetEntityEnumerator <string>(cmd, reader, mapper, false);

            sut.Dispose();

            connection.DidNotReceive().Dispose();
        }
コード例 #15
0
        public void map_a_record_first_time_Current_is_invoked()
        {
            var cmd      = Substitute.For <IDbCommand>();
            var reader   = Substitute.For <IDataReader>();
            var mapper   = Substitute.For <IEntityMapper <Wrapper> >();
            var wrapper  = new Wrapper();
            var expected = "Hello";

            mapper.Create(reader).Returns(wrapper);
            mapper.Map(reader, Arg.Do <object>(x => wrapper.Value = expected));

            var sut = new AdoNetEntityEnumerator <Wrapper>(cmd, reader, mapper, false);

            sut.MoveNext();
            var actual = sut.Current;

            actual.Value.Should().Be(expected);
        }
コード例 #16
0
        public void only_populate_Current_once_even_if_called_multiple_times_for_the_same_entity()
        {
            var cmd      = Substitute.For <IDbCommand>();
            var reader   = Substitute.For <IDataReader>();
            var mapper   = Substitute.For <IEntityMapper <Wrapper> >();
            var expected = "Hello";

            mapper.Map(reader, Arg.Do <object>(x => ((Wrapper)x).Value = expected));
            mapper.Create(reader).Returns(new Wrapper());

            var sut = new AdoNetEntityEnumerator <Wrapper>(cmd, reader, mapper, false);

            sut.MoveNext();
            sut.Current.Should().NotBeNull();
            mapper.ClearReceivedCalls();
            var actual = sut.Current;

            mapper.DidNotReceiveWithAnyArgs().Map(null, null);
        }
コード例 #17
0
        public void only_populate_Current_once_even_if_called_multiple_times_for_the_same_entity()
        {
            var cmd = Substitute.For<IDbCommand>();
            var reader = Substitute.For<IDataReader>();
            var mapper = Substitute.For<IEntityMapper<Wrapper>>();
            var expected = "Hello";
            mapper.Map(reader, Arg.Do<object>(x => ((Wrapper)x).Value = expected));
            mapper.Create(reader).Returns(new Wrapper());

            var sut = new AdoNetEntityEnumerator<Wrapper>(cmd, reader, mapper, false);
            sut.MoveNext();
            sut.Current.Should().NotBeNull();
            mapper.ClearReceivedCalls();
            var actual = sut.Current;

            mapper.DidNotReceiveWithAnyArgs().Map(null, null);
        }
コード例 #18
0
        public void may_not_call_Current_before_MoveNext_as_we_need_to_move_to_the_first_record_first()
        {
            var cmd = Substitute.For<IDbCommand>();
            var reader = Substitute.For<IDataReader>();
            var mapper = Substitute.For<IEntityMapper<string>>();
            object tmp = null;

            var sut = new AdoNetEntityEnumerator<string>(cmd, reader, mapper, false);
            Action actual = () => tmp = sut.Current;

            actual.ShouldThrow<InvalidOperationException>();
        }
コード例 #19
0
        public void should_dispose_command()
        {
            var cmd = Substitute.For<IDbCommand>();
            var reader = Substitute.For<IDataReader>();
            var mapper = Substitute.For<IEntityMapper<string>>();

            var sut = new AdoNetEntityEnumerator<string>(cmd, reader, mapper, true);
            sut.Dispose();

            cmd.Received().Dispose();
        }
コード例 #20
0
        public void dispose_reader_if_it_has_been_specified()
        {
            var cmd = Substitute.For<IDbCommand>();
            var reader = Substitute.For<IDataReader>();
            var mapper = Substitute.For<IEntityMapper<string>>();

            var sut = new AdoNetEntityEnumerator<string>(cmd, reader, mapper, true);
            sut.Dispose();

            reader.Received().Dispose();
        }
コード例 #21
0
        public void should_NOT_dispose_connection_if_its_nots_owned()
        {
            var connection = Substitute.For<IDbConnection>();
            var cmd = Substitute.For<IDbCommand>();
            cmd.Connection.Returns(connection);
            var reader = Substitute.For<IDataReader>();
            var mapper = Substitute.For<IEntityMapper<string>>();

            var sut = new AdoNetEntityEnumerator<string>(cmd, reader, mapper, false);
            sut.Dispose();

            connection.DidNotReceive().Dispose();
        }
コード例 #22
0
        public void map_a_record_first_time_Current_is_invoked()
        {
            var cmd = Substitute.For<IDbCommand>();
            var reader = Substitute.For<IDataReader>();
            var mapper = Substitute.For<IEntityMapper<Wrapper>>();
            var wrapper = new Wrapper();
            var expected = "Hello";
            mapper.Create(reader).Returns(wrapper);
            mapper.Map(reader, Arg.Do<object>(x => wrapper.Value = expected));

            var sut = new AdoNetEntityEnumerator<Wrapper>(cmd, reader, mapper, false);
            sut.MoveNext();
            var actual = sut.Current;

            actual.Value.Should().Be(expected);
        }