public void PolSourceGrouping_CRUD_Test()
        {
            foreach (CultureInfo culture in AllowableCulture)
            {
                ChangeCulture(culture);

                using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                {
                    PolSourceGroupingService polSourceGroupingService = new PolSourceGroupingService(new Query()
                    {
                        Lang = culture.TwoLetterISOLanguageName
                    }, dbTestDB, ContactID);

                    int count = 0;
                    if (count == 1)
                    {
                        // just so we don't get a warning during compile [The variable 'count' is assigned but its value is never used]
                    }

                    PolSourceGrouping polSourceGrouping = GetFilledRandomPolSourceGrouping("");

                    // -------------------------------
                    // -------------------------------
                    // CRUD testing
                    // -------------------------------
                    // -------------------------------

                    count = polSourceGroupingService.GetPolSourceGroupingList().Count();

                    Assert.AreEqual(count, (from c in dbTestDB.PolSourceGroupings select c).Count());

                    polSourceGroupingService.Add(polSourceGrouping);
                    if (polSourceGrouping.HasErrors)
                    {
                        Assert.AreEqual("", polSourceGrouping.ValidationResults.FirstOrDefault().ErrorMessage);
                    }
                    Assert.AreEqual(true, polSourceGroupingService.GetPolSourceGroupingList().Where(c => c == polSourceGrouping).Any());
                    polSourceGroupingService.Update(polSourceGrouping);
                    if (polSourceGrouping.HasErrors)
                    {
                        Assert.AreEqual("", polSourceGrouping.ValidationResults.FirstOrDefault().ErrorMessage);
                    }
                    Assert.AreEqual(count + 1, polSourceGroupingService.GetPolSourceGroupingList().Count());
                    polSourceGroupingService.Delete(polSourceGrouping);
                    if (polSourceGrouping.HasErrors)
                    {
                        Assert.AreEqual("", polSourceGrouping.ValidationResults.FirstOrDefault().ErrorMessage);
                    }
                    Assert.AreEqual(count, polSourceGroupingService.GetPolSourceGroupingList().Count());
                }
            }
        }
        public void GetPolSourceGroupingList_Test()
        {
            foreach (CultureInfo culture in AllowableCulture)
            {
                ChangeCulture(culture);

                using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                {
                    PolSourceGroupingService polSourceGroupingService = new PolSourceGroupingService(new Query()
                    {
                        Lang = culture.TwoLetterISOLanguageName
                    }, dbTestDB, ContactID);
                    PolSourceGrouping polSourceGrouping = (from c in dbTestDB.PolSourceGroupings select c).FirstOrDefault();
                    Assert.IsNotNull(polSourceGrouping);

                    List <PolSourceGrouping> polSourceGroupingDirectQueryList = new List <PolSourceGrouping>();
                    polSourceGroupingDirectQueryList = (from c in dbTestDB.PolSourceGroupings select c).Take(200).ToList();

                    foreach (string extra in new List <string>()
                    {
                        null, "A", "B", "C", "D", "E"
                    })
                    {
                        polSourceGroupingService.Query.Extra = extra;

                        if (string.IsNullOrWhiteSpace(extra))
                        {
                            List <PolSourceGrouping> polSourceGroupingList = new List <PolSourceGrouping>();
                            polSourceGroupingList = polSourceGroupingService.GetPolSourceGroupingList().ToList();
                            CheckPolSourceGroupingFields(polSourceGroupingList);
                        }
                        else
                        {
                            //Assert.AreEqual(true, false);
                        }
                    }
                }
            }
        }
        public void GetPolSourceGroupingList_2Where_Test()
        {
            foreach (CultureInfo culture in AllowableCulture)
            {
                ChangeCulture(culture);

                using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                {
                    foreach (string extra in new List <string>()
                    {
                        null, "A", "B", "C", "D", "E"
                    })
                    {
                        PolSourceGroupingService polSourceGroupingService = new PolSourceGroupingService(new Query()
                        {
                            Lang = culture.TwoLetterISOLanguageName
                        }, dbTestDB, ContactID);

                        polSourceGroupingService.Query = polSourceGroupingService.FillQuery(typeof(PolSourceGrouping), culture.TwoLetterISOLanguageName, 0, 10000, "", "", "PolSourceGroupingID,GT,2|PolSourceGroupingID,LT,5", extra);

                        List <PolSourceGrouping> polSourceGroupingDirectQueryList = new List <PolSourceGrouping>();
                        polSourceGroupingDirectQueryList = (from c in dbTestDB.PolSourceGroupings select c).Where(c => c.PolSourceGroupingID > 2 && c.PolSourceGroupingID < 5).ToList();

                        if (string.IsNullOrWhiteSpace(extra))
                        {
                            List <PolSourceGrouping> polSourceGroupingList = new List <PolSourceGrouping>();
                            polSourceGroupingList = polSourceGroupingService.GetPolSourceGroupingList().ToList();
                            CheckPolSourceGroupingFields(polSourceGroupingList);
                            Assert.AreEqual(polSourceGroupingDirectQueryList[0].PolSourceGroupingID, polSourceGroupingList[0].PolSourceGroupingID);
                        }
                        else
                        {
                            //Assert.AreEqual(true, false);
                        }
                    }
                }
            }
        }
        public void PolSourceGrouping_Properties_Test()
        {
            foreach (CultureInfo culture in AllowableCulture)
            {
                ChangeCulture(culture);

                using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                {
                    PolSourceGroupingService polSourceGroupingService = new PolSourceGroupingService(new Query()
                    {
                        Lang = culture.TwoLetterISOLanguageName
                    }, dbTestDB, ContactID);

                    int count = 0;
                    if (count == 1)
                    {
                        // just so we don't get a warning during compile [The variable 'count' is assigned but its value is never used]
                    }

                    count = polSourceGroupingService.GetPolSourceGroupingList().Count();

                    PolSourceGrouping polSourceGrouping = GetFilledRandomPolSourceGrouping("");

                    // -------------------------------
                    // -------------------------------
                    // Properties testing
                    // -------------------------------
                    // -------------------------------


                    // -----------------------------------
                    // [Key]
                    // Is NOT Nullable
                    // polSourceGrouping.PolSourceGroupingID   (Int32)
                    // -----------------------------------

                    polSourceGrouping = null;
                    polSourceGrouping = GetFilledRandomPolSourceGrouping("");
                    polSourceGrouping.PolSourceGroupingID = 0;
                    polSourceGroupingService.Update(polSourceGrouping);
                    Assert.AreEqual(string.Format(CSSPServicesRes._IsRequired, "PolSourceGroupingID"), polSourceGrouping.ValidationResults.FirstOrDefault().ErrorMessage);

                    polSourceGrouping = null;
                    polSourceGrouping = GetFilledRandomPolSourceGrouping("");
                    polSourceGrouping.PolSourceGroupingID = 10000000;
                    polSourceGroupingService.Update(polSourceGrouping);
                    Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "PolSourceGrouping", "PolSourceGroupingID", polSourceGrouping.PolSourceGroupingID.ToString()), polSourceGrouping.ValidationResults.FirstOrDefault().ErrorMessage);


                    // -----------------------------------
                    // Is NOT Nullable
                    // [Range(10000, 100000)]
                    // polSourceGrouping.CSSPID   (Int32)
                    // -----------------------------------

                    polSourceGrouping        = null;
                    polSourceGrouping        = GetFilledRandomPolSourceGrouping("");
                    polSourceGrouping.CSSPID = 9999;
                    Assert.AreEqual(false, polSourceGroupingService.Add(polSourceGrouping));
                    Assert.AreEqual(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "CSSPID", "10000", "100000"), polSourceGrouping.ValidationResults.FirstOrDefault().ErrorMessage);
                    Assert.AreEqual(count, polSourceGroupingService.GetPolSourceGroupingList().Count());
                    polSourceGrouping        = null;
                    polSourceGrouping        = GetFilledRandomPolSourceGrouping("");
                    polSourceGrouping.CSSPID = 100001;
                    Assert.AreEqual(false, polSourceGroupingService.Add(polSourceGrouping));
                    Assert.AreEqual(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "CSSPID", "10000", "100000"), polSourceGrouping.ValidationResults.FirstOrDefault().ErrorMessage);
                    Assert.AreEqual(count, polSourceGroupingService.GetPolSourceGroupingList().Count());

                    // -----------------------------------
                    // Is NOT Nullable
                    // polSourceGrouping.GroupName   (String)
                    // -----------------------------------

                    polSourceGrouping = null;
                    polSourceGrouping = GetFilledRandomPolSourceGrouping("GroupName");
                    Assert.AreEqual(false, polSourceGroupingService.Add(polSourceGrouping));
                    Assert.AreEqual(1, polSourceGrouping.ValidationResults.Count());
                    Assert.IsTrue(polSourceGrouping.ValidationResults.Where(c => c.ErrorMessage == string.Format(CSSPServicesRes._IsRequired, "GroupName")).Any());
                    Assert.AreEqual(null, polSourceGrouping.GroupName);
                    Assert.AreEqual(count, polSourceGroupingService.GetPolSourceGroupingList().Count());


                    // -----------------------------------
                    // Is NOT Nullable
                    // polSourceGrouping.Child   (String)
                    // -----------------------------------

                    polSourceGrouping = null;
                    polSourceGrouping = GetFilledRandomPolSourceGrouping("Child");
                    Assert.AreEqual(false, polSourceGroupingService.Add(polSourceGrouping));
                    Assert.AreEqual(1, polSourceGrouping.ValidationResults.Count());
                    Assert.IsTrue(polSourceGrouping.ValidationResults.Where(c => c.ErrorMessage == string.Format(CSSPServicesRes._IsRequired, "Child")).Any());
                    Assert.AreEqual(null, polSourceGrouping.Child);
                    Assert.AreEqual(count, polSourceGroupingService.GetPolSourceGroupingList().Count());


                    // -----------------------------------
                    // Is NOT Nullable
                    // polSourceGrouping.Hide   (String)
                    // -----------------------------------

                    polSourceGrouping = null;
                    polSourceGrouping = GetFilledRandomPolSourceGrouping("Hide");
                    Assert.AreEqual(false, polSourceGroupingService.Add(polSourceGrouping));
                    Assert.AreEqual(1, polSourceGrouping.ValidationResults.Count());
                    Assert.IsTrue(polSourceGrouping.ValidationResults.Where(c => c.ErrorMessage == string.Format(CSSPServicesRes._IsRequired, "Hide")).Any());
                    Assert.AreEqual(null, polSourceGrouping.Hide);
                    Assert.AreEqual(count, polSourceGroupingService.GetPolSourceGroupingList().Count());


                    // -----------------------------------
                    // Is NOT Nullable
                    // [CSSPAfter(Year = 1980)]
                    // polSourceGrouping.LastUpdateDate_UTC   (DateTime)
                    // -----------------------------------

                    polSourceGrouping = null;
                    polSourceGrouping = GetFilledRandomPolSourceGrouping("");
                    polSourceGrouping.LastUpdateDate_UTC = new DateTime();
                    polSourceGroupingService.Add(polSourceGrouping);
                    Assert.AreEqual(string.Format(CSSPServicesRes._IsRequired, "LastUpdateDate_UTC"), polSourceGrouping.ValidationResults.FirstOrDefault().ErrorMessage);
                    polSourceGrouping = null;
                    polSourceGrouping = GetFilledRandomPolSourceGrouping("");
                    polSourceGrouping.LastUpdateDate_UTC = new DateTime(1979, 1, 1);
                    polSourceGroupingService.Add(polSourceGrouping);
                    Assert.AreEqual(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LastUpdateDate_UTC", "1980"), polSourceGrouping.ValidationResults.FirstOrDefault().ErrorMessage);

                    // -----------------------------------
                    // Is NOT Nullable
                    // [CSSPExist(ExistTypeName = "TVItem", ExistPlurial = "s", ExistFieldID = "TVItemID", AllowableTVtypeList = Contact)]
                    // polSourceGrouping.LastUpdateContactTVItemID   (Int32)
                    // -----------------------------------

                    polSourceGrouping = null;
                    polSourceGrouping = GetFilledRandomPolSourceGrouping("");
                    polSourceGrouping.LastUpdateContactTVItemID = 0;
                    polSourceGroupingService.Add(polSourceGrouping);
                    Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", polSourceGrouping.LastUpdateContactTVItemID.ToString()), polSourceGrouping.ValidationResults.FirstOrDefault().ErrorMessage);

                    polSourceGrouping = null;
                    polSourceGrouping = GetFilledRandomPolSourceGrouping("");
                    polSourceGrouping.LastUpdateContactTVItemID = 1;
                    polSourceGroupingService.Add(polSourceGrouping);
                    Assert.AreEqual(string.Format(CSSPServicesRes._IsNotOfType_, "LastUpdateContactTVItemID", "Contact"), polSourceGrouping.ValidationResults.FirstOrDefault().ErrorMessage);


                    // -----------------------------------
                    // Is NOT Nullable
                    // [NotMapped]
                    // polSourceGrouping.HasErrors   (Boolean)
                    // -----------------------------------

                    // No testing requied

                    // -----------------------------------
                    // Is NOT Nullable
                    // [NotMapped]
                    // polSourceGrouping.ValidationResults   (IEnumerable`1)
                    // -----------------------------------

                    // No testing requied
                }
            }
        }