コード例 #1
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());
        }
        public void TestThatCreateCreatesTranslationInfoProxy()
        {
            ITranslationInfoProxy sut = CreateSut();

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

            Guid            translationInfoIdentifier = Guid.NewGuid();
            string          cultureName = CultureInfo.CurrentCulture.Name;
            MySqlDataReader dataReader  = CreateMySqlDataReader(translationInfoIdentifier, cultureName);

            ITranslationInfoProxy result = sut.Create(dataReader, CreateFoodWasteDataProvider(), "TranslationInfoIdentifier", "CultureName");

            Assert.That(result, Is.Not.Null);
            Assert.That(result.Identifier, Is.Not.Null);
            Assert.That(result.Identifier, Is.EqualTo(translationInfoIdentifier));
            Assert.That(result.CultureName, Is.Not.Null);
            Assert.That(result.CultureName, Is.Not.Empty);
            Assert.That(result.CultureName, Is.EqualTo(cultureName));
            Assert.That(result.CultureInfo, Is.Not.Null);
            Assert.That(result.CultureInfo.Name, Is.Not.Null);
            Assert.That(result.CultureInfo.Name, Is.Not.Empty);
            Assert.That(result.CultureInfo.Name, Is.EqualTo(cultureName));

            dataReader.AssertWasCalled(m => m.GetString("TranslationInfoIdentifier"), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetString("CultureName"), opt => opt.Repeat.Once());
        }
コード例 #3
0
        public void TestThatMapDataMapsDataIntoProxy()
        {
            IForeignKeyProxy sut = CreateSut();

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

            Guid            foreignKeyIdentifier    = Guid.NewGuid();
            Guid            foreignKeyForIdentifier = Guid.NewGuid();
            Type            foreignKeyForType       = typeof(DataProvider);
            string          foreignKeyValue         = _fixture.Create <string>();
            MySqlDataReader dataReader = CreateMySqlDataReader(foreignKeyIdentifier, foreignKeyForIdentifier, foreignKeyForType, foreignKeyValue);

            IDataProviderProxy     dataProviderProxy = BuildDataProviderProxy();
            IFoodWasteDataProvider dataProvider      = CreateFoodWasteDataProvider(dataProviderProxy);

            sut.MapData(dataReader, dataProvider);

            Assert.That(sut, Is.Not.Null);
            Assert.That(sut.Identifier, Is.Not.Null);
            Assert.That(sut.Identifier, Is.EqualTo(foreignKeyIdentifier));
            Assert.That(sut.DataProvider, Is.Not.Null);
            Assert.That(sut.DataProvider, Is.EqualTo(dataProviderProxy));
            Assert.That(sut.ForeignKeyForIdentifier, Is.EqualTo(foreignKeyForIdentifier));
            Assert.That(sut.ForeignKeyForTypes, Is.Not.Null);
            Assert.That(sut.ForeignKeyForTypes, Is.Not.Empty);
            Assert.That(sut.ForeignKeyForTypes.Count(), Is.EqualTo(4));
            Assert.That(sut.ForeignKeyForTypes.Contains(typeof(IDomainObject)), Is.True);
            Assert.That(sut.ForeignKeyForTypes.Contains(typeof(IIdentifiable)), Is.True);
            Assert.That(sut.ForeignKeyForTypes.Contains(typeof(ITranslatable)), Is.True);
            Assert.That(sut.ForeignKeyForTypes.Contains(typeof(IDataProvider)), Is.True);
            Assert.That(sut.ForeignKeyValue, Is.Not.Null);
            Assert.That(sut.ForeignKeyValue, Is.Not.Empty);
            Assert.That(sut.ForeignKeyValue, Is.EqualTo(foreignKeyValue));

            dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("ForeignKeyIdentifier")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("ForeignKeyForIdentifier")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("ForeignKeyForTypes")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("ForeignKeyValue")), opt => opt.Repeat.Once());

            dataProvider.AssertWasNotCalled(m => m.Clone());

            dataProvider.AssertWasCalled(m => m.Create(
                                             Arg <IDataProviderProxy> .Is.TypeOf,
                                             Arg <MySqlDataReader> .Is.Equal(dataReader),
                                             Arg <string[]> .Matches(e => e != null && e.Length == 4 &&
                                                                     e[0] == "DataProviderIdentifier" &&
                                                                     e[1] == "DataProviderName" &&
                                                                     e[2] == "HandlesPayments" &&
                                                                     e[3] == "DataSourceStatementIdentifier")),
                                         opt => opt.Repeat.Once());
        }
コード例 #4
0
        public void TestThatMapDataMapsDataIntoProxy(bool isPrimary)
        {
            IFoodItemGroupProxy sut = CreateSut();

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

            Guid            foodItemGroupIdentifier = Guid.NewGuid();
            MySqlDataReader dataReader = CreateMySqlDataReader(foodItemGroupIdentifier, isPrimary);

            Guid                   foodItemIdentifier  = Guid.NewGuid();
            FoodItemProxy          foodItemProxy       = BuildFoodItemProxy(identifier: foodItemIdentifier);
            Guid                   foodGroupIdentifier = Guid.NewGuid();
            FoodGroupProxy         foodGroupProxy      = BuildFoodGroupProxy(identifier: foodGroupIdentifier);
            IFoodWasteDataProvider dataProvider        = CreateFoodWasteDataProvider(foodItemProxy, foodGroupProxy);

            sut.MapData(dataReader, dataProvider);

            Assert.That(sut.Identifier, Is.Not.Null);
            Assert.That(sut.Identifier, Is.EqualTo(foodItemGroupIdentifier));
            Assert.That(sut.FoodItem, Is.Not.Null);
            Assert.That(sut.FoodItem, Is.EqualTo(foodItemProxy));
            Assert.That(sut.FoodItemIdentifier, Is.Not.Null);
            Assert.That(sut.FoodItemIdentifier, Is.EqualTo(foodItemIdentifier));
            Assert.That(sut.FoodGroup, Is.Not.Null);
            Assert.That(sut.FoodGroup, Is.EqualTo(foodGroupProxy));
            Assert.That(sut.FoodGroupIdentifier, Is.Not.Null);
            Assert.That(sut.FoodGroupIdentifier, Is.EqualTo(foodGroupIdentifier));
            Assert.That(sut.IsPrimary, Is.EqualTo(isPrimary));

            dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("FoodItemGroupIdentifier")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetInt32(Arg <string> .Is.Equal("IsPrimary")), opt => opt.Repeat.Once());

            dataProvider.AssertWasNotCalled(m => m.Clone());
            dataProvider.AssertWasCalled(m => m.Create(
                                             Arg <IFoodItemProxy> .Is.TypeOf,
                                             Arg <MySqlDataReader> .Is.Equal(dataReader),
                                             Arg <string[]> .Matches(e => e != null && e.Length == 2 &&
                                                                     e[0] == "FoodItemIdentifier" &&
                                                                     e[1] == "FoodItemIsActive")),
                                         opt => opt.Repeat.Once());
            dataProvider.AssertWasCalled(m => m.Create(
                                             Arg <IFoodGroupProxy> .Is.TypeOf,
                                             Arg <MySqlDataReader> .Is.Equal(dataReader),
                                             Arg <string[]> .Matches(e => e != null && e.Length == 3 &&
                                                                     e[0] == "FoodGroupIdentifier" &&
                                                                     e[1] == "FoodGroupParentIdentifier" &&
                                                                     e[2] == "FoodGroupIsActive")),
                                         opt => opt.Repeat.Once());
        }
コード例 #5
0
        public void TestThatCreateCreatesSystemProxy(bool hasProperties)
        {
            ISystemProxy sut = CreateSut();

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

            int             number     = _fixture.Create <int>();
            string          title      = _fixture.Create <string>();
            int?            properties = hasProperties ? _fixture.Create <int>() : (int?)null;
            MySqlDataReader dataReader = CreateMySqlDataReader(number, title, properties);

            ISystemProxy result = sut.Create(dataReader, CreateMySqlDataProvider(), "SystemNo", "Title", "Properties");

            Assert.That(result, Is.Not.Null);
            Assert.That(result.Nummer, Is.EqualTo(number));
            Assert.That(result.Titel, Is.EqualTo(title));
            if (hasProperties)
            {
                Assert.That(result.Properties, Is.EqualTo(properties));
            }
            else
            {
                Assert.That(result.Properties, Is.EqualTo(0));
            }

            dataReader.AssertWasCalled(m => m.GetInt32(Arg <string> .Is.Equal("SystemNo")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("Title")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetOrdinal(Arg <string> .Is.Equal("Properties")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.IsDBNull(Arg <int> .Is.Equal(2)), opt => opt.Repeat.Once());
            if (hasProperties)
            {
                dataReader.AssertWasCalled(m => m.GetInt32(Arg <string> .Is.Equal("Properties")), opt => opt.Repeat.Once());
            }
            else
            {
                dataReader.AssertWasNotCalled(m => m.GetInt32(Arg <string> .Is.Equal("Properties")));
            }
        }
コード例 #6
0
        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());
        }
コード例 #7
0
        public void TestThatCreateCreatesProxy(bool creatable, bool editable, bool deletable)
        {
            IStorageTypeProxy sut = CreateSut();

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

            Guid            storageTypeIdentifier = Guid.NewGuid();
            int             sortOrder             = _fixture.Create <int>();
            int             temperature           = _fixture.Create <int>();
            IRange <int>    temperatureRange      = DomainObjectMockBuilder.BuildIntRange();
            MySqlDataReader dataReader            = CreateMySqlDataReader(storageTypeIdentifier, sortOrder, temperature, temperatureRange, creatable, editable, deletable);

            IFoodWasteDataProvider dataProvider = CreateFoodWasteDataProvider();

            IStorageTypeProxy result = sut.Create(dataReader, dataProvider, "StorageTypeIdentifier", "SortOrder", "Temperature", "TemperatureRangeStartValue", "TemperatureRangeEndValue", "Creatable", "Editable", "Deletable");

            Assert.That(result, Is.Not.Null);
            Assert.That(result.Identifier, Is.Not.Null);
            Assert.That(result.Identifier, Is.EqualTo(storageTypeIdentifier));
            Assert.That(result.SortOrder, Is.EqualTo(sortOrder));
            Assert.That(result.Temperature, Is.EqualTo(temperature));
            Assert.That(result.TemperatureRange, Is.Not.Null);
            Assert.That(result.TemperatureRange.StartValue, Is.EqualTo(temperatureRange.StartValue));
            Assert.That(result.TemperatureRange.EndValue, Is.EqualTo(temperatureRange.EndValue));
            Assert.That(result.Creatable, Is.EqualTo(creatable));
            Assert.That(result.Editable, Is.EqualTo(editable));
            Assert.That(result.Deletable, Is.EqualTo(deletable));

            dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("StorageTypeIdentifier")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetInt16(Arg <string> .Is.Equal("SortOrder")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetInt16(Arg <string> .Is.Equal("Temperature")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetInt16(Arg <string> .Is.Equal("TemperatureRangeStartValue")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetInt16(Arg <string> .Is.Equal("TemperatureRangeEndValue")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetInt32(Arg <string> .Is.Equal("Creatable")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetInt32(Arg <string> .Is.Equal("Editable")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetInt32(Arg <string> .Is.Equal("Deletable")), opt => opt.Repeat.Once());

            dataProvider.AssertWasNotCalled(m => m.Clone());
        }
コード例 #8
0
        public void TestThatMapDataMapsDataIntoProxy(bool withBodyTranslation)
        {
            foreach (StaticTextType staticTextTypeToTest in Enum.GetValues(typeof(StaticTextType)).Cast <StaticTextType>())
            {
                IStaticTextProxy sut = CreateSut();
                Assert.That(sut, Is.Not.Null);

                Guid            staticTextIdentifier         = Guid.NewGuid();
                Guid            subjectTranslationIdentifier = Guid.NewGuid();
                Guid?           bodyTranslationIdentifier    = withBodyTranslation ? Guid.NewGuid() : (Guid?)null;
                MySqlDataReader dataReader = CreateMySqlDataReader(staticTextIdentifier, staticTextTypeToTest, subjectTranslationIdentifier, bodyTranslationIdentifier);

                IFoodWasteDataProvider dataProvider = CreateFoodWasteDataProvider();

                sut.MapData(dataReader, dataProvider);

                Assert.That(sut.Identifier, Is.Not.Null);
                Assert.That(sut.Identifier, Is.EqualTo(staticTextIdentifier));
                Assert.That(sut.Type, Is.EqualTo(staticTextTypeToTest));
                Assert.That(sut.SubjectTranslationIdentifier, Is.EqualTo(subjectTranslationIdentifier));
                if (withBodyTranslation)
                {
                    Assert.That(sut.BodyTranslationIdentifier, Is.Not.Null);
                    Assert.That(sut.BodyTranslationIdentifier, Is.EqualTo(bodyTranslationIdentifier));
                }
                else
                {
                    Assert.That(sut.BodyTranslationIdentifier, Is.Null);
                }

                dataReader.AssertWasCalled(m => m.GetString("StaticTextIdentifier"), opt => opt.Repeat.Once());
                dataReader.AssertWasCalled(m => m.GetInt16("StaticTextType"), opt => opt.Repeat.Once());
                dataReader.AssertWasCalled(m => m.GetString("SubjectTranslationIdentifier"), opt => opt.Repeat.Once());
                dataReader.AssertWasCalled(m => m.GetOrdinal("BodyTranslationIdentifier"), opt => opt.Repeat.Once());
                dataReader.AssertWasCalled(m => m.IsDBNull(Arg <int> .Is.Equal(3)), opt => opt.Repeat.Once());
                if (withBodyTranslation)
                {
                    dataReader.AssertWasCalled(m => m.GetString("BodyTranslationIdentifier"), opt => opt.Repeat.Once());
                }
                else
                {
                    dataReader.AssertWasNotCalled(m => m.GetString("BodyTranslationIdentifier"));
                }

                dataProvider.AssertWasNotCalled(m => m.Clone());
            }
        }
コード例 #9
0
        public void TestThatCreateCreatesCalenderUserProxy(bool hasUserName)
        {
            IBrugerProxy sut = CreateSut();

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

            int             systemNo   = _fixture.Create <int>();
            int             userId     = _fixture.Create <int>();
            string          userName   = hasUserName ? _fixture.Create <string>() : null;
            string          name       = _fixture.Create <string>();
            string          initials   = _fixture.Create <string>();
            MySqlDataReader dataReader = CreateMySqlDataReader(systemNo, userId, userName, name, initials);

            ISystemProxy       systemProxy  = MockRepository.GenerateMock <ISystemProxy>();
            IMySqlDataProvider dataProvider = CreateMySqlDataProvider(systemProxy);

            IBrugerProxy result = sut.Create(dataReader, dataProvider, "UserId", "Initials", "Name", "UserName", "SystemNo", "Title", "Properties");

            Assert.That(result, Is.Not.Null);
            Assert.That(result.System, Is.Not.Null);
            Assert.That(result.System, Is.EqualTo(systemProxy));
            Assert.That(result.Id, Is.EqualTo(userId));
            if (hasUserName)
            {
                Assert.That(result.UserName, Is.Not.Null);
                Assert.That(result.UserName, Is.Not.Empty);
                Assert.That(result.UserName, Is.EqualTo(userName));
            }
            else
            {
                Assert.That(result.UserName, Is.Null);
            }
            Assert.That(result.Navn, Is.Not.Null);
            Assert.That(result.Navn, Is.Not.Empty);
            Assert.That(result.Navn, Is.EqualTo(name));
            Assert.That(result.Initialer, Is.Not.Null);
            Assert.That(result.Initialer, Is.Not.Empty);
            Assert.That(result.Initialer, Is.EqualTo(initials));

            dataReader.AssertWasCalled(m => m.GetInt32(Arg <string> .Is.Equal("UserId")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetOrdinal(Arg <string> .Is.Equal("UserName")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.IsDBNull(Arg <int> .Is.Equal(2)), opt => opt.Repeat.Once());
            if (hasUserName)
            {
                dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("UserName")), opt => opt.Repeat.Once());
            }
            else
            {
                dataReader.AssertWasNotCalled(m => m.GetString(Arg <string> .Is.Equal("UserName")));
            }
            dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("Name")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("Initials")), opt => opt.Repeat.Once());

            dataProvider.AssertWasCalled(m => m.Create(
                                             Arg <ISystemProxy> .Is.TypeOf,
                                             Arg <MySqlDataReader> .Is.Equal(dataReader),
                                             Arg <string[]> .Matches(e => e != null && e.Length == 3 &&
                                                                     e[0] == "SystemNo" &&
                                                                     e[1] == "Title" &&
                                                                     e[2] == "Properties")),
                                         opt => opt.Repeat.Once());
        }
コード例 #10
0
        public void TestAtMapDataMapperBrugeraftaleProxy(bool hasProperties)
        {
            IBrugeraftaleProxy sut = CreateSut();

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

            int             systemNo   = _fixture.Create <int>();
            int             calId      = _fixture.Create <int>();
            int             userId     = _fixture.Create <int>();
            int?            properties = hasProperties ? _fixture.Create <int>() : (int?)null;
            MySqlDataReader dataReader = CreateMySqlDataReader(systemNo, calId, userId, properties);

            ISystemProxy       systemProxy       = MockRepository.GenerateMock <ISystemProxy>();
            IAftaleProxy       appointmentProxy  = MockRepository.GenerateMock <IAftaleProxy>();
            IBrugerProxy       calenderUserProxy = MockRepository.GenerateMock <IBrugerProxy>();
            IMySqlDataProvider dataProvider      = CreateMySqlDataProvider(systemProxy, appointmentProxy, calenderUserProxy);

            sut.MapData(dataReader, dataProvider);

            Assert.That(sut.System, Is.Not.Null);
            Assert.That(sut.System, Is.EqualTo(systemProxy));
            Assert.That(sut.Aftale, Is.Not.Null);
            Assert.That(sut.Aftale, Is.EqualTo(appointmentProxy));
            Assert.That(sut.Bruger, Is.Not.Null);
            Assert.That(sut.Bruger, Is.EqualTo(calenderUserProxy));
            if (hasProperties)
            {
                Assert.That(sut.Properties, Is.EqualTo(properties));
            }
            else
            {
                Assert.That(sut.Properties, Is.EqualTo(0));
            }

            dataReader.AssertWasCalled(m => m.GetOrdinal(Arg <string> .Is.Equal("Properties")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.IsDBNull(Arg <int> .Is.Equal(3)), opt => opt.Repeat.Once());
            if (hasProperties)
            {
                dataReader.AssertWasCalled(m => m.GetInt32(Arg <string> .Is.Equal("Properties")), opt => opt.Repeat.Once());
            }
            else
            {
                dataReader.AssertWasNotCalled(m => m.GetInt32(Arg <string> .Is.Equal("Properties")));
            }

            dataProvider.AssertWasCalled(m => m.Create(
                                             Arg <ISystemProxy> .Is.TypeOf,
                                             Arg <MySqlDataReader> .Is.Equal(dataReader),
                                             Arg <string[]> .Matches(e => e != null && e.Length == 3 &&
                                                                     e[0] == "SystemNo" &&
                                                                     e[1] == "SystemTitle" &&
                                                                     e[2] == "SystemProperties")),
                                         opt => opt.Repeat.Once());
            dataProvider.AssertWasCalled(m => m.Create(
                                             Arg <IAftaleProxy> .Is.TypeOf,
                                             Arg <MySqlDataReader> .Is.Equal(dataReader),
                                             Arg <string[]> .Matches(e => e != null && e.Length == 10 &&
                                                                     e[0] == "CalId" &&
                                                                     e[1] == "Date" &&
                                                                     e[2] == "FromTime" &&
                                                                     e[3] == "ToTime" &&
                                                                     e[4] == "AppointmentProperties" &&
                                                                     e[5] == "Subject" &&
                                                                     e[6] == "Note" &&
                                                                     e[7] == "SystemNo" &&
                                                                     e[8] == "SystemTitle" &&
                                                                     e[9] == "SystemProperties")),
                                         opt => opt.Repeat.Once());
            dataProvider.AssertWasCalled(m => m.Create(
                                             Arg <IBrugerProxy> .Is.TypeOf,
                                             Arg <MySqlDataReader> .Is.Equal(dataReader),
                                             Arg <string[]> .Matches(e => e != null && e.Length == 7 &&
                                                                     e[0] == "UserId" &&
                                                                     e[1] == "UserInitials" &&
                                                                     e[2] == "UserFullname" &&
                                                                     e[3] == "UserName" &&
                                                                     e[4] == "SystemNo" &&
                                                                     e[5] == "SystemTitle" &&
                                                                     e[6] == "SystemProperties")),
                                         opt => opt.Repeat.Once());
        }
コード例 #11
0
        public void TestThatCreateCreatesProxy(bool hasDescription)
        {
            IStorageProxy sut = CreateSut();

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

            Guid            identifier            = Guid.NewGuid();
            Guid            householdIdentifier   = Guid.NewGuid();
            int             sortOrder             = GetLegalSortOrder();
            Guid            storageTypeIdentifier = Guid.NewGuid();
            string          description           = hasDescription ? _fixture.Create <string>() : null;
            IRange <int>    temperatureRange      = DomainObjectMockBuilder.BuildIntRange();
            int             temperature           = GetLegalTemperature(temperatureRange);
            DateTime        creationTime          = DateTime.Now;
            MySqlDataReader dataReader            = CreateMySqlDataReader(identifier, householdIdentifier, sortOrder, storageTypeIdentifier, description, temperature, creationTime);

            HouseholdProxy         householdProxy   = BuildHouseholdProxy();
            StorageTypeProxy       storageTypeProxy = BuildStorageTypeProxy(temperatureRange: temperatureRange);
            IFoodWasteDataProvider dataProvider     = CreateFoodWasteDataProvider(householdProxy, storageTypeProxy);

            // ReSharper disable StringLiteralTypo
            IStorageProxy result = sut.Create(dataReader, dataProvider, "StorageIdentifier", "HouseholdIdentifier", "SortOrder", "StorageTypeIdentifier", "Descr", "Temperature", "CreationTime", "HouseholdName", "HouseholdDescr", "HouseholdCreationTime", "StorageTypeSortOrder", "StorageTypeTemperature", "StorageTypeTemperatureRangeStartValue", "StorageTypeTemperatureRangeEndValue", "StorageTypeCreatable", "StorageTypeEditable", "StorageTypeDeletable");

            // ReSharper restore StringLiteralTypo
            Assert.That(result, Is.Not.Null);
            Assert.That(result.Identifier, Is.Not.Null);
            Assert.That(result.Identifier, Is.EqualTo(identifier));
            Assert.That(result.Household, Is.Not.Null);
            Assert.That(result.Household, Is.EqualTo(householdProxy));
            Assert.That(result.SortOrder, Is.EqualTo(sortOrder));
            Assert.That(result.StorageType, Is.Not.Null);
            Assert.That(result.StorageType, Is.EqualTo(storageTypeProxy));
            if (string.IsNullOrWhiteSpace(description) == false)
            {
                Assert.That(result.Description, Is.Not.Null);
                Assert.That(result.Description, Is.Not.Empty);
                Assert.That(result.Description, Is.EqualTo(description));
            }
            else
            {
                Assert.That(result.Description, Is.Null);
            }
            Assert.That(result.Temperature, Is.EqualTo(temperature));
            Assert.That(result.CreationTime, Is.EqualTo(creationTime).Within(1).Milliseconds);

            dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("StorageIdentifier")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetInt16(Arg <string> .Is.Equal("SortOrder")), opt => opt.Repeat.Once());
            // ReSharper disable StringLiteralTypo
            dataReader.AssertWasCalled(m => m.GetOrdinal(Arg <string> .Is.Equal("Descr")), opt => opt.Repeat.Once());
            // ReSharper restore StringLiteralTypo
            dataReader.AssertWasCalled(m => m.IsDBNull(Arg <int> .Is.Equal(4)), opt => opt.Repeat.Once());
            if (string.IsNullOrWhiteSpace(description) == false)
            {
                dataReader.AssertWasCalled(m => m.GetString(Arg <int> .Is.Equal(4)), opt => opt.Repeat.Once());
            }
            else
            {
                dataReader.AssertWasNotCalled(m => m.GetString(Arg <int> .Is.Equal(4)));
            }
            dataReader.AssertWasCalled(m => m.GetInt16(Arg <string> .Is.Equal("Temperature")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetMySqlDateTime(Arg <string> .Is.Equal("CreationTime")), opt => opt.Repeat.Once());

            dataProvider.AssertWasNotCalled(m => m.Clone());

            dataProvider.AssertWasCalled(m => m.Create(
                                             Arg <IHouseholdProxy> .Is.TypeOf,
                                             Arg <MySqlDataReader> .Is.Equal(dataReader),
                                             Arg <string[]> .Matches(e => e != null && e.Length == 4 &&
                                                                     e[0] == "HouseholdIdentifier" &&
                                                                     e[1] == "HouseholdName" &&
                                                                     // ReSharper disable StringLiteralTypo
                                                                     e[2] == "HouseholdDescr" &&
                                                                     // ReSharper restore StringLiteralTypo
                                                                     e[3] == "HouseholdCreationTime")),
                                         opt => opt.Repeat.Once());

            dataProvider.AssertWasCalled(m => m.Create(
                                             Arg <IStorageTypeProxy> .Is.TypeOf,
                                             Arg <MySqlDataReader> .Is.Equal(dataReader),
                                             Arg <string[]> .Matches(e => e != null && e.Length == 8 &&
                                                                     e[0] == "StorageTypeIdentifier" &&
                                                                     e[1] == "StorageTypeSortOrder" &&
                                                                     e[2] == "StorageTypeTemperature" &&
                                                                     e[3] == "StorageTypeTemperatureRangeStartValue" &&
                                                                     e[4] == "StorageTypeTemperatureRangeEndValue" &&
                                                                     e[5] == "StorageTypeCreatable" &&
                                                                     e[6] == "StorageTypeEditable" &&
                                                                     e[7] == "StorageTypeDeletable")),
                                         opt => opt.Repeat.Once());
        }
コード例 #12
0
        public void TestThatMapDataMapsDataIntoProxy()
        {
            IMemberOfHouseholdProxy sut = CreateSut();

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

            Guid            memberOfHouseholdIdentifier = Guid.NewGuid();
            Guid            householdMemberIdentifier   = Guid.NewGuid();
            Guid            householdIdentifier         = Guid.NewGuid();
            DateTime        creationTime = DateTime.Now;
            MySqlDataReader dataReader   = CreateMySqlDataReader(memberOfHouseholdIdentifier, householdMemberIdentifier, householdIdentifier, creationTime);

            HouseholdMemberProxy   householdMemberProxy = BuildHouseholdMemberProxy(identifier: householdMemberIdentifier);
            HouseholdProxy         householdProxy       = BuildHouseholdProxy(identifier: householdIdentifier);
            IFoodWasteDataProvider dataProvider         = CreateFoodWasteDataProvider(householdMemberProxy, householdProxy);

            sut.MapData(dataReader, dataProvider);

            Assert.That(sut, Is.Not.Null);
            Assert.That(sut.Identifier, Is.Not.Null);
            Assert.That(sut.Identifier, Is.EqualTo(memberOfHouseholdIdentifier));
            Assert.That(sut.HouseholdMember, Is.Not.Null);
            Assert.That(sut.HouseholdMember, Is.EqualTo(householdMemberProxy));
            Assert.That(sut.HouseholdMemberIdentifier, Is.Not.Null);
            Assert.That(sut.HouseholdMemberIdentifier, Is.EqualTo(householdMemberIdentifier));
            Assert.That(sut.Household, Is.Not.Null);
            Assert.That(sut.Household, Is.EqualTo(householdProxy));
            Assert.That(sut.HouseholdIdentifier, Is.Not.Null);
            Assert.That(sut.HouseholdIdentifier, Is.EqualTo(householdIdentifier));
            Assert.That(sut.CreationTime, Is.EqualTo(creationTime).Within(1).Milliseconds);

            dataReader.AssertWasCalled(m => m.GetString("MemberOfHouseholdIdentifier"), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetMySqlDateTime("CreationTime"), opt => opt.Repeat.Once());

            dataProvider.AssertWasNotCalled(m => m.Clone());

            dataProvider.AssertWasCalled(m => m.Create(
                                             Arg <IHouseholdMemberProxy> .Is.TypeOf,
                                             Arg <MySqlDataReader> .Is.Equal(dataReader),
                                             Arg <string[]> .Matches(e => e != null && e.Length == 8 &&
                                                                     e[0] == "HouseholdMemberIdentifier" &&
                                                                     e[1] == "HouseholdMemberMailAddress" &&
                                                                     e[2] == "HouseholdMemberMembership" &&
                                                                     e[3] == "HouseholdMemberMembershipExpireTime" &&
                                                                     e[4] == "HouseholdMemberActivationCode" &&
                                                                     e[5] == "HouseholdMemberActivationTime" &&
                                                                     e[6] == "HouseholdMemberPrivacyPolicyAcceptedTime" &&
                                                                     e[7] == "HouseholdMemberCreationTime")),
                                         opt => opt.Repeat.Once());
            dataProvider.AssertWasCalled(m => m.Create(
                                             Arg <IHouseholdProxy> .Is.TypeOf,
                                             Arg <MySqlDataReader> .Is.Equal(dataReader),
                                             Arg <string[]> .Matches(e => e != null && e.Length == 4 &&
                                                                     e[0] == "HouseholdIdentifier" &&
                                                                     e[1] == "HouseholdName" &&
                                                                     // ReSharper disable StringLiteralTypo
                                                                     e[2] == "HouseholdDescr" &&
                                                                     // ReSharper restore StringLiteralTypo
                                                                     e[3] == "HouseholdCreationTime")),
                                         opt => opt.Repeat.Once());
        }
コード例 #13
0
        public void TestThatCreateCreatesCalenderUserProxy(bool hasProperties, bool hasNote)
        {
            IAftaleProxy sut = CreateSut();

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

            int             systemNo     = _fixture.Create <int>();
            int             calId        = _fixture.Create <int>();
            DateTime        fromDateTime = DateTime.Today.AddDays(_random.Next(1, 30)).AddHours(_random.Next(8, 16)).AddMinutes(_random.Next(0, 3) * 15);
            TimeSpan        duration     = new TimeSpan(0, 0, _random.Next(1, 3) * 15, 0);
            int?            properties   = hasProperties ? _fixture.Create <int>() : (int?)null;
            string          subject      = _fixture.Create <string>();
            string          note         = hasNote ? _fixture.Create <string>() : null;
            MySqlDataReader dataReader   = CreateMySqlDataReader(systemNo, calId, fromDateTime, duration, properties, subject, note);

            ISystemProxy       systemProxy  = MockRepository.GenerateMock <ISystemProxy>();
            IMySqlDataProvider dataProvider = CreateMySqlDataProvider(systemProxy);

            IAftaleProxy result = sut.Create(dataReader, dataProvider, "CalId", "Date", "FromTime", "ToTime", "Properties", "Subject", "Note", "SystemNo", "SystemTitle", "SystemProperties");

            Assert.That(result.System, Is.Not.Null);
            Assert.That(result.System, Is.EqualTo(systemProxy));
            Assert.That(result.Id, Is.EqualTo(calId));
            Assert.That(result.FraTidspunkt, Is.EqualTo(fromDateTime));
            Assert.That(result.TilTidspunkt, Is.EqualTo(fromDateTime.Add(duration)));
            if (hasProperties)
            {
                Assert.That(result.Properties, Is.EqualTo(properties));
            }
            else
            {
                Assert.That(result.Properties, Is.EqualTo(0));
            }
            Assert.That(result.Emne, Is.Not.Null);
            Assert.That(result.Emne, Is.Not.Empty);
            Assert.That(result.Emne, Is.EqualTo(subject));
            if (hasNote)
            {
                Assert.That(result.Notat, Is.Not.Null);
                Assert.That(result.Notat, Is.Not.Empty);
                Assert.That(result.Notat, Is.EqualTo(note));
            }
            else
            {
                Assert.That(result.Notat, Is.Null);
            }

            dataReader.AssertWasCalled(m => m.GetInt32(Arg <string> .Is.Equal("CalId")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetMySqlDateTime(Arg <string> .Is.Equal("Date")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetTimeSpan(Arg <string> .Is.Equal("FromTime")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetTimeSpan(Arg <string> .Is.Equal("ToTime")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetOrdinal(Arg <string> .Is.Equal("Properties")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.IsDBNull(Arg <int> .Is.Equal(5)), opt => opt.Repeat.Once());
            if (hasProperties)
            {
                dataReader.AssertWasCalled(m => m.GetInt32(Arg <string> .Is.Equal("Properties")), opt => opt.Repeat.Once());
            }
            else
            {
                dataReader.AssertWasNotCalled(m => m.GetInt32(Arg <string> .Is.Equal("Properties")));
            }
            dataReader.AssertWasCalled(m => m.GetOrdinal(Arg <string> .Is.Equal("Subject")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.IsDBNull(Arg <int> .Is.Equal(6)), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("Subject")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetOrdinal(Arg <string> .Is.Equal("Note")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.IsDBNull(Arg <int> .Is.Equal(7)), opt => opt.Repeat.Once());
            if (hasNote)
            {
                dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("Note")), opt => opt.Repeat.Once());
            }
            else
            {
                dataReader.AssertWasNotCalled(m => m.GetString(Arg <string> .Is.Equal("Note")));
            }

            dataProvider.AssertWasCalled(m => m.Create(
                                             Arg <ISystemProxy> .Is.TypeOf,
                                             Arg <MySqlDataReader> .Is.Equal(dataReader),
                                             Arg <string[]> .Matches(e => e != null && e.Length == 3 &&
                                                                     e[0] == "SystemNo" &&
                                                                     e[1] == "SystemTitle" &&
                                                                     e[2] == "SystemProperties")),
                                         opt => opt.Repeat.Once());
            dataProvider.AssertWasNotCalled(m => m.Clone());
        }
コード例 #14
0
        public void TestThatMapDataMapsDataIntoProxy(StakeholderType stakeholderType, bool hasPaymentReceipt)
        {
            IPaymentProxy sut = CreateSut();

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

            Guid     paymentIdentifier      = Guid.NewGuid();
            Guid     stakeholderIdentifier  = Guid.NewGuid();
            Guid     dataProviderIdentifier = Guid.NewGuid();
            DateTime paymentTime            = DateTime.Now.AddDays(_random.Next(1, 7) * -1).AddMinutes(_random.Next(120, 240));
            string   paymentReference       = _fixture.Create <string>();

            byte[]          paymentReceipt = hasPaymentReceipt ? _fixture.CreateMany <byte>(_random.Next(1024, 4096)).ToArray() : null;
            DateTime        creationTime   = DateTime.Now;
            MySqlDataReader dataReader     = CreateMySqlDataReader(paymentIdentifier, stakeholderIdentifier, stakeholderType, dataProviderIdentifier, paymentTime, paymentReference, paymentReceipt, creationTime);

            DataProviderProxy      dataProviderProxy    = BuildDataProviderProxy();
            HouseholdMemberProxy   householdMemberProxy = BuildHouseholdMemberProxy();
            IFoodWasteDataProvider dataProvider         = CreateFoodWasteDataProvider(dataProviderProxy, householdMemberProxy);

            sut.MapData(dataReader, dataProvider);

            Assert.That(sut.Identifier, Is.Not.Null);
            Assert.That(sut.Identifier, Is.EqualTo(paymentIdentifier));
            Assert.That(sut.Stakeholder, Is.Not.Null);
            Assert.That(sut.Stakeholder, Is.EqualTo(householdMemberProxy));
            Assert.That(sut.DataProvider, Is.Not.Null);
            Assert.That(sut.DataProvider, Is.EqualTo(dataProviderProxy));
            Assert.That(sut.PaymentTime, Is.EqualTo(paymentTime).Within(1).Milliseconds);
            Assert.That(sut.PaymentReference, Is.Not.Null);
            Assert.That(sut.PaymentReference, Is.Not.Empty);
            Assert.That(sut.PaymentReference, Is.EqualTo(paymentReference));
            if (paymentReceipt != null)
            {
                Assert.That(sut.PaymentReceipt, Is.Not.Null);
                Assert.That(sut.PaymentReceipt, Is.Not.Empty);
                Assert.That(sut.PaymentReceipt, Is.EqualTo(paymentReceipt));
            }
            else
            {
                Assert.That(sut.PaymentReceipt, Is.Null);
            }
            Assert.That(sut.CreationTime, Is.EqualTo(creationTime).Within(1).Milliseconds);

            dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("PaymentIdentifier")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetInt32(Arg <string> .Is.Equal("StakeholderType")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetMySqlDateTime(Arg <string> .Is.Equal("PaymentTime")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetString(Arg <string> .Is.Equal("PaymentReference")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.GetOrdinal(Arg <string> .Is.Equal("PaymentReceipt")), opt => opt.Repeat.Once());
            dataReader.AssertWasCalled(m => m.IsDBNull(Arg <int> .Is.Equal(6)), opt => opt.Repeat.Once());
            if (paymentReceipt != null)
            {
                dataReader.AssertWasCalled(m => m.GetTextReader(Arg <int> .Is.Equal(6)), opt => opt.Repeat.Once());
            }
            else
            {
                dataReader.AssertWasNotCalled(m => m.GetTextReader(Arg <int> .Is.Equal(6)));
            }
            dataReader.AssertWasCalled(m => m.GetMySqlDateTime(Arg <string> .Is.Equal("CreationTime")), opt => opt.Repeat.Once());

            dataProvider.AssertWasNotCalled(m => m.Clone());

            switch (stakeholderType)
            {
            case StakeholderType.HouseholdMember:
                dataProvider.AssertWasCalled(m => m.Create(
                                                 Arg <IHouseholdMemberProxy> .Is.TypeOf,
                                                 Arg <MySqlDataReader> .Is.Equal(dataReader),
                                                 Arg <string[]> .Matches(e => e != null && e.Length == 8 &&
                                                                         e[0] == "StakeholderIdentifier" &&
                                                                         e[1] == "HouseholdMemberMailAddress" &&
                                                                         e[2] == "HouseholdMemberMembership" &&
                                                                         e[3] == "HouseholdMemberMembershipExpireTime" &&
                                                                         e[4] == "HouseholdMemberActivationCode" &&
                                                                         e[5] == "HouseholdMemberActivationTime" &&
                                                                         e[6] == "HouseholdMemberPrivacyPolicyAcceptedTime" &&
                                                                         e[7] == "HouseholdMemberCreationTime")),
                                             opt => opt.Repeat.Once());
                break;

            default:
                throw new NotSupportedException($"The stakeholderType '{stakeholderType}' is not supported.");
            }

            dataProvider.AssertWasCalled(m => m.Create(
                                             Arg <IDataProviderProxy> .Is.TypeOf,
                                             Arg <MySqlDataReader> .Is.Equal(dataReader),
                                             Arg <string[]> .Matches(e => e != null && e.Length == 4 &&
                                                                     e[0] == "DataProviderIdentifier" &&
                                                                     e[1] == "DataProviderName" &&
                                                                     e[2] == "DataProviderHandlesPayments" &&
                                                                     e[3] == "DataProviderDataSourceStatementIdentifier")),
                                         opt => opt.Repeat.Once());
        }