Exemplo n.º 1
0
        public void TestThatMapDataMapsDataIntoProxy()
        {
            IMemberOfHouseholdProxy sut = CreateSut();

            Assert.That(sut, Is.Not.Null);

            Guid            memberOfHouseholdIdentifier = Guid.NewGuid();
            Guid            householdMemberIdentifier   = Guid.NewGuid();
            Guid            householdIdentifier         = Guid.NewGuid();
            DateTime        creationTime = DateTime.Now;
            MySqlDataReader dataReader   = CreateMySqlDataReader(memberOfHouseholdIdentifier, householdMemberIdentifier, householdIdentifier, creationTime);

            HouseholdMemberProxy   householdMemberProxy = BuildHouseholdMemberProxy(identifier: householdMemberIdentifier);
            HouseholdProxy         householdProxy       = BuildHouseholdProxy(identifier: householdIdentifier);
            IFoodWasteDataProvider dataProvider         = CreateFoodWasteDataProvider(householdMemberProxy, householdProxy);

            sut.MapData(dataReader, dataProvider);

            Assert.That(sut, Is.Not.Null);
            Assert.That(sut.Identifier, Is.Not.Null);
            Assert.That(sut.Identifier, Is.EqualTo(memberOfHouseholdIdentifier));
            Assert.That(sut.HouseholdMember, Is.Not.Null);
            Assert.That(sut.HouseholdMember, Is.EqualTo(householdMemberProxy));
            Assert.That(sut.HouseholdMemberIdentifier, Is.Not.Null);
            Assert.That(sut.HouseholdMemberIdentifier, Is.EqualTo(householdMemberIdentifier));
            Assert.That(sut.Household, Is.Not.Null);
            Assert.That(sut.Household, Is.EqualTo(householdProxy));
            Assert.That(sut.HouseholdIdentifier, Is.Not.Null);
            Assert.That(sut.HouseholdIdentifier, Is.EqualTo(householdIdentifier));
            Assert.That(sut.CreationTime, Is.EqualTo(creationTime).Within(1).Milliseconds);

            dataReader.AssertWasCalled(m => m.GetString("MemberOfHouseholdIdentifier"), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetMySqlDateTime("CreationTime"), opt => opt.Repeat.Once());

            dataProvider.AssertWasNotCalled(m => m.Clone());

            dataProvider.AssertWasCalled(m => m.Create(
                                             Arg <IHouseholdMemberProxy> .Is.TypeOf,
                                             Arg <MySqlDataReader> .Is.Equal(dataReader),
                                             Arg <string[]> .Matches(e => e != null && e.Length == 8 &&
                                                                     e[0] == "HouseholdMemberIdentifier" &&
                                                                     e[1] == "HouseholdMemberMailAddress" &&
                                                                     e[2] == "HouseholdMemberMembership" &&
                                                                     e[3] == "HouseholdMemberMembershipExpireTime" &&
                                                                     e[4] == "HouseholdMemberActivationCode" &&
                                                                     e[5] == "HouseholdMemberActivationTime" &&
                                                                     e[6] == "HouseholdMemberPrivacyPolicyAcceptedTime" &&
                                                                     e[7] == "HouseholdMemberCreationTime")),
                                         opt => opt.Repeat.Once());
            dataProvider.AssertWasCalled(m => m.Create(
                                             Arg <IHouseholdProxy> .Is.TypeOf,
                                             Arg <MySqlDataReader> .Is.Equal(dataReader),
                                             Arg <string[]> .Matches(e => e != null && e.Length == 4 &&
                                                                     e[0] == "HouseholdIdentifier" &&
                                                                     e[1] == "HouseholdName" &&
                                                                     // ReSharper disable StringLiteralTypo
                                                                     e[2] == "HouseholdDescr" &&
                                                                     // ReSharper restore StringLiteralTypo
                                                                     e[3] == "HouseholdCreationTime")),
                                         opt => opt.Repeat.Once());
        }
Exemplo n.º 2
0
        public void TestThatMapDataThrowsArgumentNullExceptionIfDataProviderIsNull()
        {
            IMemberOfHouseholdProxy sut = CreateSut();

            Assert.That(sut, Is.Not.Null);

            ArgumentNullException result = Assert.Throws <ArgumentNullException>(() => sut.MapData(CreateMySqlDataReader(), null));

            TestHelper.AssertArgumentNullExceptionIsValid(result, "dataProvider");
        }