public void TestThatMapDataMapsDataIntoProxy()
        {
            ITranslationProxy sut = CreateSut();

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

            Guid            identifier = Guid.NewGuid();
            Guid            translationOfIdentifier = Guid.NewGuid();
            string          value      = _fixture.Create <string>();
            MySqlDataReader dataReader = CreateMySqlDataReader(identifier, translationOfIdentifier, value);

            ITranslationInfoProxy  translationInfoProxy = BuildTranslationInfoProxy(Guid.NewGuid());
            IFoodWasteDataProvider dataProvider         = CreateFoodWasteDataProvider(translationInfoProxy);

            sut.MapData(dataReader, dataProvider);

            Assert.That(sut.Identifier, Is.Not.Null);
            Assert.That(sut.Identifier, Is.EqualTo(identifier));
            Assert.That(sut.TranslationOfIdentifier, Is.EqualTo(translationOfIdentifier));
            Assert.That(sut.TranslationInfo, Is.Not.Null);
            Assert.That(sut.TranslationInfo, Is.EqualTo(translationInfoProxy));
            Assert.That(sut.Value, Is.Not.Null);
            Assert.That(sut.Value, Is.Not.Empty);
            Assert.That(sut.Value, Is.EqualTo(value));

            dataReader.AssertWasCalled(m => m.GetString("TranslationIdentifier"), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetString("OfIdentifier"), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetString("Value"), opt => opt.Repeat.Once());

            dataProvider.AssertWasCalled(m => m.Create(
                                             Arg <ITranslationInfoProxy> .Is.TypeOf,
                                             Arg <MySqlDataReader> .Is.Equal(dataReader),
                                             Arg <string[]> .Matches(e => e != null && e.Length == 2 &&
                                                                     e[0] == "InfoIdentifier" &&
                                                                     e[1] == "CultureName")),
                                         opt => opt.Repeat.Once());
        }
        public void TestThatMapDataThrowsArgumentNullExceptionIfDataReaderIsNull()
        {
            ITranslationProxy sut = CreateSut();

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

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

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