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()); }
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"); }