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