public void TestThatTranslationsMapsTranslationsAndDataSourceStatementsIntoProxyWhenMapDataHasBeenCalledAndMapRelationsHasNotBeenCalled() { IDataProviderProxy sut = CreateSut(); Assert.That(sut, Is.Not.Null); Guid dataSourceStatementIdentifier = Guid.NewGuid(); MySqlDataReader dataReader = CreateMySqlDataReader(Guid.NewGuid(), _fixture.Create <string>(), _fixture.Create <bool>(), dataSourceStatementIdentifier); IEnumerable <TranslationProxy> translationProxyCollection = BuildTranslationProxyCollection(dataSourceStatementIdentifier); IFoodWasteDataProvider dataProvider = CreateFoodWasteDataProvider(translationProxyCollection); sut.MapData(dataReader, 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.DataSourceStatement, Is.Null); Assert.That(sut.DataSourceStatements, Is.Not.Null); Assert.That(sut.DataSourceStatements, Is.Not.Empty); Assert.That(sut.DataSourceStatements, Is.EqualTo(translationProxyCollection)); dataProvider.AssertWasCalled(m => m.Clone(), opt => opt.Repeat.Times(1)); IDbCommandTestExecutor commandTester = 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", dataSourceStatementIdentifier) .Build(); dataProvider.AssertWasCalled(m => m.GetCollection <TranslationProxy>(Arg <MySqlCommand> .Matches(cmd => commandTester.Run(cmd))), opt => opt.Repeat.Once()); }
public void TestThatConstructorInitializeFoodWasteDataProvider() { using (IFoodWasteDataProvider sut = CreateSut()) { Assert.That(sut, Is.Not.Null); } }
public void TestThatTranslationsMapsTranslationsIntoProxyWhenCreateHasBeenCalledAndMapDataHasNotBeenCalled() { IStorageTypeProxy sut = CreateSut(); Assert.That(sut, Is.Not.Null); Guid storageTypeIdentifier = Guid.NewGuid(); MySqlDataReader dataReader = CreateMySqlDataReader(storageTypeIdentifier); IEnumerable <TranslationProxy> translationProxyCollection = _fixture.CreateMany <TranslationProxy>().ToList(); IFoodWasteDataProvider dataProvider = CreateFoodWasteDataProvider(translationProxyCollection); IStorageTypeProxy result = sut.Create(dataReader, dataProvider, "StorageTypeIdentifier", "SortOrder", "Temperature", "TemperatureRangeStartValue", "TemperatureRangeEndValue", "Creatable", "Editable", "Deletable"); Assert.That(result, Is.Not.Null); Assert.That(result.Translation, Is.Null); Assert.That(result.Translations, Is.Not.Null); Assert.That(result.Translations, Is.Not.Empty); Assert.That(result.Translations, Is.EqualTo(translationProxyCollection)); dataProvider.AssertWasCalled(m => m.Clone(), opt => opt.Repeat.Once()); IDbCommandTestExecutor commandTester = 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", storageTypeIdentifier) .Build(); dataProvider.AssertWasCalled(m => m.GetCollection <TranslationProxy>(Arg <MySqlCommand> .Matches(cmd => commandTester.Run(cmd))), opt => opt.Repeat.Once()); }
public void TestThatCreateCreatesProxy(bool handlesPayments) { IDataProviderProxy sut = CreateSut(); Assert.That(sut, Is.Not.Null); Guid identifier = Guid.NewGuid(); string name = _fixture.Create <string>(); Guid dataSourceStatementIdentifier = Guid.NewGuid(); MySqlDataReader dataReader = CreateMySqlDataReader(identifier, name, handlesPayments, dataSourceStatementIdentifier); IFoodWasteDataProvider dataProvider = CreateFoodWasteDataProvider(); IDataProviderProxy result = sut.Create(dataReader, dataProvider, "DataProviderIdentifier", "Name", "HandlesPayments", "DataSourceStatementIdentifier"); Assert.That(result, Is.Not.Null); Assert.That(result.Identifier, Is.Not.Null); Assert.That(result.Identifier, Is.EqualTo(identifier)); Assert.That(result.Name, Is.Not.Null); Assert.That(result.Name, Is.Not.Empty); Assert.That(result.Name, Is.EqualTo(name)); Assert.That(result.HandlesPayments, Is.EqualTo(handlesPayments)); Assert.That(result.DataSourceStatementIdentifier, Is.Not.EqualTo(Guid.Empty)); Assert.That(result.DataSourceStatementIdentifier, Is.EqualTo(dataSourceStatementIdentifier)); dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("DataProviderIdentifier")), opt => opt.Repeat.Once()); dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("Name")), opt => opt.Repeat.Once()); dataReader.AssertWasCalled(m => m.GetInt32(Arg <string> .Is.Equal("HandlesPayments")), opt => opt.Repeat.Once()); dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("DataSourceStatementIdentifier")), opt => opt.Repeat.Once()); dataProvider.AssertWasNotCalled(m => m.Clone()); }
/// <summary> /// Maps relations. /// </summary> /// <param name="dataProvider">Implementation of the data provider used to access data.</param> public virtual void MapRelations(IDataProviderBase <MySqlDataReader, MySqlCommand> dataProvider) { ArgumentNullGuard.NotNull(dataProvider, nameof(dataProvider)); Translations = new List <ITranslation>(TranslationProxy.GetDomainObjectTranslations(dataProvider, DataSourceStatementIdentifier)); _dataProvider = (IFoodWasteDataProvider)dataProvider; }
/// <summary> /// Creates a mockup for the data provider which can access data in the food waste repository. /// </summary> /// <returns>Mockup for the data provider which can access data in the food waste repository.</returns> private IFoodWasteDataProvider CreateFoodWasteDataProvider(IDataProviderProxy dataProviderProxy = null) { IFoodWasteDataProvider foodWasteDataProvider = MockRepository.GenerateMock <IFoodWasteDataProvider>(); foodWasteDataProvider.Stub(m => m.Create(Arg <IDataProviderProxy> .Is.Anything, Arg <MySqlDataReader> .Is.Anything, Arg <string[]> .Is.Anything)) .Return(dataProviderProxy ?? BuildDataProviderProxy()) .Repeat.Any(); return(foodWasteDataProvider); }
/// <summary> /// Creates a data proxy for a food item. /// </summary> /// <param name="dataProvider">The data provider which the created data proxy should use.</param> private FoodItemProxy(IDataProviderBase <MySqlDataReader, MySqlCommand> dataProvider) { if (dataProvider == null) { return; } _dataProvider = (IFoodWasteDataProvider)dataProvider; }
/// <summary> /// Creates a mockup for the data provider which can access data in the food waste repository. /// </summary> /// <returns>Mockup for the data provider which can access data in the food waste repository.</returns> private IFoodWasteDataProvider CreateFoodWasteDataProvider(ITranslationInfoProxy translationInfoProxy = null) { IFoodWasteDataProvider foodWasteDataProviderMock = MockRepository.GenerateMock <IFoodWasteDataProvider>(); foodWasteDataProviderMock.Stub(m => m.Create(Arg <ITranslationInfoProxy> .Is.TypeOf, Arg <MySqlDataReader> .Is.Anything, Arg <string[]> .Is.Anything)) .Return(translationInfoProxy ?? BuildTranslationInfoProxy(Guid.NewGuid())) .Repeat.Any(); return(foodWasteDataProviderMock); }
/// <summary> /// Gets foods groups which has this a given food group as a parent. /// </summary> /// <param name="dataProvider">Implementation of the data provider used to access data.</param> /// <param name="foodGroupIdentifier">Identifier for the food group which is the parent.</param> /// <returns>Foods groups which has this a given food group as a parent.</returns> private static IEnumerable <FoodGroupProxy> GetFoodGroupChildren(IDataProviderBase <MySqlDataReader, MySqlCommand> dataProvider, Guid foodGroupIdentifier) { ArgumentNullGuard.NotNull(dataProvider, nameof(dataProvider)); using (IFoodWasteDataProvider subDataProvider = (IFoodWasteDataProvider)dataProvider.Clone()) { MySqlCommand command = BuildSystemDataCommandForSelecting("WHERE fg.ParentIdentifier=@parentIdentifier", systemDataCommandBuilder => systemDataCommandBuilder.AddFoodGroupParentIdentifierParameter(foodGroupIdentifier)); return(subDataProvider.GetCollection <FoodGroupProxy>(command)); } }
/// <summary> /// Creates a data proxy to a given data provider. /// </summary> /// <param name="name">Name for the data provider.</param> /// <param name="handlesPayments">Indication of whether the data provider handles payments.</param> /// <param name="dataSourceStatementIdentifier">Identifier for the data source statement.</param> /// <param name="dataProvider">The data provider which the created data proxy could use.</param> private DataProviderProxy(string name, bool handlesPayments, Guid dataSourceStatementIdentifier, IDataProviderBase <MySqlDataReader, MySqlCommand> dataProvider) : base(name, handlesPayments, dataSourceStatementIdentifier) { if (dataProvider == null) { return; } _dataProvider = (IFoodWasteDataProvider)dataProvider; }
/// <summary> /// Creates a household. /// </summary> /// <param name="name">Name for the household.</param> /// <param name="description">Description for the household.</param> /// <param name="creationTime">Date and time for when the household was created.</param> /// <param name="dataProvider">The data provider which the created data proxy should use.</param> public HouseholdProxy(string name, string description, DateTime creationTime, IDataProviderBase <MySqlDataReader, MySqlCommand> dataProvider = null) : base(name, description, creationTime) { if (dataProvider == null) { return; } _dataProvider = (IFoodWasteDataProvider)dataProvider; }
/// <summary> /// Creates a data proxy to a household member. /// </summary> /// <param name="mailAddress">Mail address for the household member.</param> /// <param name="membership">Membership.</param> /// <param name="membershipExpireTime">Date and time for when the membership expires.</param> /// <param name="activationCode">Activation code for the household member.</param> /// <param name="creationTime">Date and time for when the household member was created.</param> /// <param name="dataProvider">The data provider which the created data proxy should use.</param> public HouseholdMemberProxy(string mailAddress, Membership membership, DateTime?membershipExpireTime, string activationCode, DateTime creationTime, IDataProviderBase <MySqlDataReader, MySqlCommand> dataProvider = null) : base(mailAddress, membership, membershipExpireTime, activationCode, creationTime) { if (dataProvider == null) { return; } _dataProvider = (IFoodWasteDataProvider)dataProvider; }
/// <summary> /// Creates a data proxy to a given storage. /// </summary> /// <param name="household">Household where the storage are placed.</param> /// <param name="sortOrder">Sort order for the storage.</param> /// <param name="storageType">Storage type for the storage.</param> /// <param name="temperature">Temperature for the storage.</param> /// <param name="creationTime">Creation date and time for when the storage was created.</param> /// <param name="description">Description for the storage.</param> /// <param name="dataProvider">The data provider which the created data proxy should use.</param> public StorageProxy(IHousehold household, int sortOrder, IStorageType storageType, int temperature, DateTime creationTime, string description = null, IDataProviderBase <MySqlDataReader, MySqlCommand> dataProvider = null) : base(household, sortOrder, storageType, temperature, creationTime, description) { if (dataProvider == null) { return; } _dataProvider = (IFoodWasteDataProvider)dataProvider; }
/// <summary> /// Gets all the storages for a given household. /// </summary> /// <param name="dataProvider">Implementation of the data provider used to access data.</param> /// <param name="householdIdentifier">The identifier for the household on which to get the storages.</param> /// <returns>All the storages for the given household.</returns> /// <exception cref="ArgumentNullException">Thrown when <paramref name="dataProvider"/> is null.</exception> internal static IEnumerable <StorageProxy> GetStorages(IDataProviderBase <MySqlDataReader, MySqlCommand> dataProvider, Guid householdIdentifier) { ArgumentNullGuard.NotNull(dataProvider, nameof(dataProvider)); using (IFoodWasteDataProvider subDataProvider = (IFoodWasteDataProvider)dataProvider.Clone()) { MySqlCommand command = BuildHouseholdDataCommandForSelecting("WHERE s.HouseholdIdentifier=@householdIdentifier", householdDataCommandBuilder => householdDataCommandBuilder.AddHouseholdIdentifierParameter(householdIdentifier)); return(subDataProvider.GetCollection <StorageProxy>(command)); } }
/// <summary> /// Creates a data proxy to a given storage type. /// </summary> /// <param name="sortOrder">Order for sorting storage types.</param> /// <param name="temperature">Default temperature for the storage type.</param> /// <param name="temperatureRange">Temperature range for the storage type.</param> /// <param name="creatable">Indicates whether household members can create storage of this type.</param> /// <param name="editable">Indicates whether household members can edit storage of this type.</param> /// <param name="deletable">Indicates whether household members can delete storage of this type.</param> /// <param name="dataProvider">The data provider which the created data proxy should use.</param> public StorageTypeProxy(int sortOrder, int temperature, IRange <int> temperatureRange, bool creatable, bool editable, bool deletable, IDataProviderBase <MySqlDataReader, MySqlCommand> dataProvider = null) : base(sortOrder, temperature, temperatureRange, creatable, editable, deletable) { if (dataProvider == null) { return; } _dataProvider = (IFoodWasteDataProvider)dataProvider; }
/// <summary> /// Delete relations. /// </summary> /// <param name="dataProvider">Implementation of the data provider used to access data.</param> public virtual void DeleteRelations(IDataProviderBase <MySqlDataReader, MySqlCommand> dataProvider) { ArgumentNullGuard.NotNull(dataProvider, nameof(dataProvider)); if (Identifier.HasValue == false) { throw new IntranetRepositoryException(Resource.GetExceptionMessage(ExceptionMessage.IllegalValue, Identifier, "Identifier")); } _dataProvider = (IFoodWasteDataProvider)dataProvider; }
/// <summary> /// Gets the data proxy for a given food group identifier. /// </summary> /// <param name="dataProvider">The data provider from which to get the given food group.</param> /// <param name="foodGroupIdentifier">The food group identifier on which to get the data proxy.</param> /// <returns>The data proxy for the given food group identifier.</returns> /// <exception cref="ArgumentNullException">Thrown when <paramref name="dataProvider"/> is null.</exception> internal static FoodGroupProxy GetFoodGroup(IDataProviderBase <MySqlDataReader, MySqlCommand> dataProvider, Guid foodGroupIdentifier) { ArgumentNullGuard.NotNull(dataProvider, nameof(dataProvider)); using (IFoodWasteDataProvider subDataProvider = (IFoodWasteDataProvider)dataProvider.Clone()) { return(subDataProvider.Get(new FoodGroupProxy { Identifier = foodGroupIdentifier })); } }
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); }
/// <summary> /// Deletes all the storages for a given household. /// </summary> /// <param name="dataProvider">Implementation of the data provider used to access data.</param> /// <param name="householdIdentifier">The identifier for the household on which to delete the storages.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="dataProvider"/> is null.</exception> internal static void DeleteStorages(IDataProviderBase <MySqlDataReader, MySqlCommand> dataProvider, Guid householdIdentifier) { ArgumentNullGuard.NotNull(dataProvider, nameof(dataProvider)); foreach (StorageProxy storageProxy in GetStorages(dataProvider, householdIdentifier)) { using (IFoodWasteDataProvider subDataProvider = (IFoodWasteDataProvider)dataProvider.Clone()) { subDataProvider.Delete(storageProxy); } } }
public void TestThatMapRelationsCallsCloneOnDataProviderOneTime() { IStorageTypeProxy sut = CreateSut(Guid.NewGuid()); Assert.That(sut, Is.Not.Null); IFoodWasteDataProvider dataProvider = CreateFoodWasteDataProvider(); sut.MapRelations(dataProvider); dataProvider.AssertWasCalled(m => m.Clone(), opt => opt.Repeat.Once()); }
public void TestThatCloneClonesFoodWasteDataProvider() { using (IFoodWasteDataProvider sut = CreateSut()) { Assert.That(sut, Is.Not.Null); using (IFoodWasteDataProvider clone = sut.Clone() as IFoodWasteDataProvider) { Assert.That(clone, Is.Not.Null); } } }
public void TestThatMapRelationsDoesNotCloneDataProvider() { IStorageProxy sut = CreateSut(); Assert.That(sut, Is.Not.Null); IFoodWasteDataProvider dataProvider = CreateFoodWasteDataProvider(); sut.MapRelations(dataProvider); dataProvider.AssertWasNotCalled(m => m.Clone()); }
/// <summary> /// Deletes foreign keys for a domain object in the food waste domain. /// </summary> /// <param name="dataProvider">Implementation of the data provider used to access data.</param> /// <param name="foreignKeyForIdentifier">Identifier for the given domain object on which to get the foreign keys.</param> internal static void DeleteDomainObjectForeignKeys(IDataProviderBase <MySqlDataReader, MySqlCommand> dataProvider, Guid foreignKeyForIdentifier) { ArgumentNullGuard.NotNull(dataProvider, nameof(dataProvider)); foreach (IForeignKeyProxy foreignKeyProxy in GetDomainObjectForeignKeys(dataProvider, foreignKeyForIdentifier)) { using (IFoodWasteDataProvider subDataProvider = (IFoodWasteDataProvider)dataProvider.Clone()) { subDataProvider.Delete(foreignKeyProxy); } } }
/// <summary> /// Creates a mockup for the data provider which can access data in the food waste repository. /// </summary> /// <returns>Mockup for the data provider which can access data in the food waste repository.</returns> private IFoodWasteDataProvider CreateFoodWasteDataProvider(HouseholdMemberProxy householdMemberProxy = null, HouseholdProxy householdProxy = null) { IFoodWasteDataProvider foodWasteDataProvider = MockRepository.GenerateMock <IFoodWasteDataProvider>(); foodWasteDataProvider.Stub(m => m.Create(Arg <IHouseholdMemberProxy> .Is.TypeOf, Arg <MySqlDataReader> .Is.Anything, Arg <string[]> .Is.Anything)) .Return(householdMemberProxy ?? BuildHouseholdMemberProxy()) .Repeat.Any(); foodWasteDataProvider.Stub(m => m.Create(Arg <IHouseholdProxy> .Is.TypeOf, Arg <MySqlDataReader> .Is.Anything, Arg <string[]> .Is.Anything)) .Return(householdProxy ?? BuildHouseholdProxy()) .Repeat.Any(); return(foodWasteDataProvider); }
/// <summary> /// Creates a mockup for the data provider which can access data in the food waste repository. /// </summary> /// <returns>Mockup for the data provider which can access data in the food waste repository.</returns> private IFoodWasteDataProvider CreateFoodWasteDataProvider(IEnumerable <TranslationProxy> translationProxyCollection = null) { IFoodWasteDataProvider foodWasteDataProvider = MockRepository.GenerateMock <IFoodWasteDataProvider>(); foodWasteDataProvider.Stub(m => m.Clone()) .Return(foodWasteDataProvider) .Repeat.Any(); foodWasteDataProvider.Stub(m => m.GetCollection <TranslationProxy>(Arg <MySqlCommand> .Is.Anything)) .Return(translationProxyCollection ?? BuildTranslationProxyCollection(Guid.NewGuid())) .Repeat.Any(); return(foodWasteDataProvider); }
/// <summary> /// Creates an instance of a data provider which should be used for unit testing. /// </summary> /// <returns>Instance of a data provider which should be used for unit testing</returns> private IFoodWasteDataProvider CreateFoodWasteDataProvider(HouseholdProxy householdProxy = null, StorageTypeProxy storageTypeProxy = null) { IFoodWasteDataProvider dataProviderMock = MockRepository.GenerateMock <IFoodWasteDataProvider>(); dataProviderMock.Stub(m => m.Create(Arg <IHouseholdProxy> .Is.TypeOf, Arg <MySqlDataReader> .Is.Anything, Arg <string[]> .Is.Anything)) .Return(householdProxy ?? BuildHouseholdProxy()) .Repeat.Any(); dataProviderMock.Stub(m => m.Create(Arg <IStorageTypeProxy> .Is.TypeOf, Arg <MySqlDataReader> .Is.Anything, Arg <string[]> .Is.Anything)) .Return(storageTypeProxy ?? BuildStorageTypeProxy()) .Repeat.Any(); return(dataProviderMock); }
/// <summary> /// Deletes translations for a given translatable domain object in the food waste domain. /// </summary> /// <param name="dataProvider"></param> /// <param name="translationOfIdentifier">Identifier for the given domain object on which to delete the translations.</param> internal static void DeleteDomainObjectTranslations(IDataProviderBase <MySqlDataReader, MySqlCommand> dataProvider, Guid translationOfIdentifier) { ArgumentNullGuard.NotNull(dataProvider, nameof(dataProvider)); foreach (ITranslationProxy translationProxy in GetDomainObjectTranslations(dataProvider, translationOfIdentifier)) { using (IFoodWasteDataProvider subDataProvider = (IFoodWasteDataProvider)dataProvider.Clone()) { subDataProvider.Delete(translationProxy); } } }
/// <summary> /// Delete all the payments made by a given stakeholder. /// </summary> /// <param name="dataProvider">Implementation of the data provider used to access data.</param> /// <param name="stakeholderIdentifier">Identifier for the stakeholder on which to delete payments.</param> internal static void DeletePayments(IDataProviderBase <MySqlDataReader, MySqlCommand> dataProvider, Guid stakeholderIdentifier) { ArgumentNullGuard.NotNull(dataProvider, nameof(dataProvider)); foreach (PaymentProxy paymentProxy in GetPayments(dataProvider, stakeholderIdentifier)) { using (IFoodWasteDataProvider subDataProvider = (IFoodWasteDataProvider)dataProvider.Clone()) { subDataProvider.Delete(paymentProxy); } } }
/// <summary> /// Creates an instance of a data provider which should be used for unit testing. /// </summary> /// <returns>Instance of a data provider which should be used for unit testing</returns> private IFoodWasteDataProvider CreateFoodWasteDataProvider(IEnumerable <TranslationProxy> translationProxyCollection = null) { IFoodWasteDataProvider dataProviderMock = MockRepository.GenerateMock <IFoodWasteDataProvider>(); dataProviderMock.Stub(m => m.Clone()) .Return(dataProviderMock) .Repeat.Any(); dataProviderMock.Stub(m => m.GetCollection <TranslationProxy>(Arg <MySqlCommand> .Is.Anything)) .Return(translationProxyCollection ?? _fixture.CreateMany <TranslationProxy>().ToList()) .Repeat.Any(); return(dataProviderMock); }
/// <summary> /// Maps relations. /// </summary> /// <param name="dataProvider">Implementation of the data provider used to access data.</param> public virtual void MapRelations(IDataProviderBase <MySqlDataReader, MySqlCommand> dataProvider) { ArgumentNullGuard.NotNull(dataProvider, nameof(dataProvider)); if (Identifier.HasValue == false) { throw new IntranetRepositoryException(Resource.GetExceptionMessage(ExceptionMessage.IllegalValue, Identifier, "Identifier")); } Translations = new List <ITranslation>(TranslationProxy.GetDomainObjectTranslations(dataProvider, Identifier.Value)); _dataProvider = (IFoodWasteDataProvider)dataProvider; }