Exemple #1
0
        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());
        }
Exemple #2
0
 public void TestThatConstructorInitializeFoodWasteDataProvider()
 {
     using (IFoodWasteDataProvider sut = CreateSut())
     {
         Assert.That(sut, Is.Not.Null);
     }
 }
Exemple #3
0
        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());
        }
Exemple #4
0
        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());
        }
Exemple #5
0
        /// <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);
        }
Exemple #7
0
        /// <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));
            }
        }
Exemple #10
0
        /// <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;
        }
Exemple #11
0
        /// <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;
        }
Exemple #13
0
        /// <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;
        }
Exemple #14
0
        /// <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;
        }
Exemple #16
0
        /// <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);
        }
Exemple #19
0
        /// <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);
                }
            }
        }
Exemple #20
0
        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());
        }
Exemple #21
0
        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);
                }
            }
        }
Exemple #22
0
        public void TestThatMapRelationsDoesNotCloneDataProvider()
        {
            IStorageProxy sut = CreateSut();

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

            IFoodWasteDataProvider dataProvider = CreateFoodWasteDataProvider();

            sut.MapRelations(dataProvider);

            dataProvider.AssertWasNotCalled(m => m.Clone());
        }
Exemple #23
0
        /// <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);
                }
            }
        }
Exemple #24
0
        /// <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);
        }
Exemple #25
0
        /// <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);
        }
Exemple #26
0
        /// <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);
        }
Exemple #27
0
        /// <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);
                }
            }
        }
Exemple #29
0
        /// <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;
        }