public void TestThatMapRelationsMapsBodyTranslationsIntoProxy(bool withBodyTranslation) { Guid subjectTranslationIdentifier = Guid.NewGuid(); Guid?bodyTranslationIdentifier = withBodyTranslation ? Guid.NewGuid() : (Guid?)null; IStaticTextProxy sut = CreateSut(Guid.NewGuid(), _fixture.Create <StaticTextType>(), subjectTranslationIdentifier, bodyTranslationIdentifier); Assert.That(sut, Is.Not.Null); List <TranslationProxy> translationProxyCollection = new List <TranslationProxy>(BuildTranslationProxyCollection(subjectTranslationIdentifier)); if (bodyTranslationIdentifier.HasValue) { translationProxyCollection.AddRange(BuildTranslationProxyCollection(bodyTranslationIdentifier.Value)); } IFoodWasteDataProvider dataProvider = CreateFoodWasteDataProvider(translationProxyCollection); sut.MapRelations(dataProvider); Assert.That(sut.Translation, Is.Null); Assert.That(sut.Translations, Is.Not.Null); Assert.That(sut.Translations, Is.Not.Empty); Assert.That(sut.Translations, Is.EqualTo(translationProxyCollection)); Assert.That(sut.BodyTranslation, Is.Null); Assert.That(sut.BodyTranslations, Is.Not.Null); if (bodyTranslationIdentifier.HasValue) { Assert.That(sut.BodyTranslations, Is.Not.Empty); foreach (TranslationProxy translationProxy in translationProxyCollection.Where(m => m.TranslationOfIdentifier == bodyTranslationIdentifier.Value)) { Assert.That(sut.BodyTranslations.Contains(translationProxy), Is.True); } } else { Assert.That(sut.BodyTranslations, Is.Empty); } dataProvider.AssertWasCalled(m => m.Clone(), opt => opt.Repeat.Times(1 + Convert.ToInt32(bodyTranslationIdentifier.HasValue))); dataProvider.AssertWasCalled(m => m.GetCollection <TranslationProxy>(Arg <MySqlCommand> .Is.NotNull), opt => opt.Repeat.Times(1 + Convert.ToInt32(bodyTranslationIdentifier.HasValue))); if (bodyTranslationIdentifier.HasValue == false) { return; } MySqlCommand cmd = (MySqlCommand)dataProvider.GetArgumentsForCallsMadeOn(m => m.GetCollection <TranslationProxy>(Arg <MySqlCommand> .Is.NotNull)) .Last() .ElementAt(0); new DbCommandTestBuilder("SELECT t.TranslationIdentifier AS TranslationIdentifier,t.OfIdentifier AS OfIdentifier,ti.TranslationInfoIdentifier AS InfoIdentifier,ti.CultureName AS CultureName,t.Value AS Value FROM Translations AS t INNER JOIN TranslationInfos AS ti ON ti.TranslationInfoIdentifier=t.InfoIdentifier WHERE t.OfIdentifier=@ofIdentifier ORDER BY ti.CultureName") .AddCharDataParameter("@ofIdentifier", bodyTranslationIdentifier.Value) .Build() .Run(cmd); }
public void TestThatMapRelationsThrowsArgumentNullExceptionIfDataProviderIsNull() { IStaticTextProxy sut = CreateSut(); Assert.That(sut, Is.Not.Null); ArgumentNullException result = Assert.Throws <ArgumentNullException>(() => sut.MapRelations(null)); TestHelper.AssertArgumentNullExceptionIsValid(result, "dataProvider"); }