public void TestThatMapDataMapsDataIntoProxy(bool withBodyTranslation) { foreach (StaticTextType staticTextTypeToTest in Enum.GetValues(typeof(StaticTextType)).Cast <StaticTextType>()) { IStaticTextProxy sut = CreateSut(); Assert.That(sut, Is.Not.Null); Guid staticTextIdentifier = Guid.NewGuid(); Guid subjectTranslationIdentifier = Guid.NewGuid(); Guid? bodyTranslationIdentifier = withBodyTranslation ? Guid.NewGuid() : (Guid?)null; MySqlDataReader dataReader = CreateMySqlDataReader(staticTextIdentifier, staticTextTypeToTest, subjectTranslationIdentifier, bodyTranslationIdentifier); IFoodWasteDataProvider dataProvider = CreateFoodWasteDataProvider(); sut.MapData(dataReader, dataProvider); Assert.That(sut.Identifier, Is.Not.Null); Assert.That(sut.Identifier, Is.EqualTo(staticTextIdentifier)); Assert.That(sut.Type, Is.EqualTo(staticTextTypeToTest)); Assert.That(sut.SubjectTranslationIdentifier, Is.EqualTo(subjectTranslationIdentifier)); if (withBodyTranslation) { Assert.That(sut.BodyTranslationIdentifier, Is.Not.Null); Assert.That(sut.BodyTranslationIdentifier, Is.EqualTo(bodyTranslationIdentifier)); } else { Assert.That(sut.BodyTranslationIdentifier, Is.Null); } dataReader.AssertWasCalled(m => m.GetString("StaticTextIdentifier"), opt => opt.Repeat.Once()); dataReader.AssertWasCalled(m => m.GetInt16("StaticTextType"), opt => opt.Repeat.Once()); dataReader.AssertWasCalled(m => m.GetString("SubjectTranslationIdentifier"), opt => opt.Repeat.Once()); dataReader.AssertWasCalled(m => m.GetOrdinal("BodyTranslationIdentifier"), opt => opt.Repeat.Once()); dataReader.AssertWasCalled(m => m.IsDBNull(Arg <int> .Is.Equal(3)), opt => opt.Repeat.Once()); if (withBodyTranslation) { dataReader.AssertWasCalled(m => m.GetString("BodyTranslationIdentifier"), opt => opt.Repeat.Once()); } else { dataReader.AssertWasNotCalled(m => m.GetString("BodyTranslationIdentifier")); } dataProvider.AssertWasNotCalled(m => m.Clone()); } }
public void TestThatMapDataThrowsArgumentNullExceptionIfDataProviderIsNull() { IStaticTextProxy sut = CreateSut(); Assert.That(sut, Is.Not.Null); ArgumentNullException result = Assert.Throws <ArgumentNullException>(() => sut.MapData(CreateMySqlDataReader(), null)); TestHelper.AssertArgumentNullExceptionIsValid(result, "dataProvider"); }