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

                using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                {
                    PolSourceSiteEffectTermService polSourceSiteEffectTermService = new PolSourceSiteEffectTermService(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]
                    }

                    PolSourceSiteEffectTerm polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");

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

                    count = polSourceSiteEffectTermService.GetPolSourceSiteEffectTermList().Count();

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

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

                using (CSSPDBContext dbTestDB = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB))
                {
                    PolSourceSiteEffectTermService polSourceSiteEffectTermService = new PolSourceSiteEffectTermService(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 = polSourceSiteEffectTermService.GetPolSourceSiteEffectTermList().Count();

                    PolSourceSiteEffectTerm polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");

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


                    // -----------------------------------
                    // [Key]
                    // Is NOT Nullable
                    // polSourceSiteEffectTerm.PolSourceSiteEffectTermID   (Int32)
                    // -----------------------------------

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");
                    polSourceSiteEffectTerm.PolSourceSiteEffectTermID = 0;
                    polSourceSiteEffectTermService.Update(polSourceSiteEffectTerm);
                    Assert.AreEqual(string.Format(CSSPServicesRes._IsRequired, "PolSourceSiteEffectTermID"), polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");
                    polSourceSiteEffectTerm.PolSourceSiteEffectTermID = 10000000;
                    polSourceSiteEffectTermService.Update(polSourceSiteEffectTerm);
                    Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "PolSourceSiteEffectTerm", "PolSourceSiteEffectTermID", polSourceSiteEffectTerm.PolSourceSiteEffectTermID.ToString()), polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);


                    // -----------------------------------
                    // Is NOT Nullable
                    // polSourceSiteEffectTerm.IsGroup   (Boolean)
                    // -----------------------------------


                    // -----------------------------------
                    // Is Nullable
                    // [CSSPExist(ExistTypeName = "PolSourceSiteEffectTerm", ExistPlurial = "s", ExistFieldID = "PolSourceSiteEffectTermID", AllowableTVtypeList = )]
                    // polSourceSiteEffectTerm.UnderGroupID   (Int32)
                    // -----------------------------------

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");
                    polSourceSiteEffectTerm.UnderGroupID = 0;
                    polSourceSiteEffectTermService.Add(polSourceSiteEffectTerm);
                    Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "PolSourceSiteEffectTerm", "UnderGroupID", polSourceSiteEffectTerm.UnderGroupID.ToString()), polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);


                    // -----------------------------------
                    // Is NOT Nullable
                    // [StringLength(100))]
                    // polSourceSiteEffectTerm.EffectTermEN   (String)
                    // -----------------------------------

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("EffectTermEN");
                    Assert.AreEqual(false, polSourceSiteEffectTermService.Add(polSourceSiteEffectTerm));
                    Assert.AreEqual(1, polSourceSiteEffectTerm.ValidationResults.Count());
                    Assert.IsTrue(polSourceSiteEffectTerm.ValidationResults.Where(c => c.ErrorMessage == string.Format(CSSPServicesRes._IsRequired, "EffectTermEN")).Any());
                    Assert.AreEqual(null, polSourceSiteEffectTerm.EffectTermEN);
                    Assert.AreEqual(count, polSourceSiteEffectTermService.GetPolSourceSiteEffectTermList().Count());

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");
                    polSourceSiteEffectTerm.EffectTermEN = GetRandomString("", 101);
                    Assert.AreEqual(false, polSourceSiteEffectTermService.Add(polSourceSiteEffectTerm));
                    Assert.AreEqual(string.Format(CSSPServicesRes._MaxLengthIs_, "EffectTermEN", "100"), polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);
                    Assert.AreEqual(count, polSourceSiteEffectTermService.GetPolSourceSiteEffectTermList().Count());

                    // -----------------------------------
                    // Is NOT Nullable
                    // [StringLength(100))]
                    // polSourceSiteEffectTerm.EffectTermFR   (String)
                    // -----------------------------------

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("EffectTermFR");
                    Assert.AreEqual(false, polSourceSiteEffectTermService.Add(polSourceSiteEffectTerm));
                    Assert.AreEqual(1, polSourceSiteEffectTerm.ValidationResults.Count());
                    Assert.IsTrue(polSourceSiteEffectTerm.ValidationResults.Where(c => c.ErrorMessage == string.Format(CSSPServicesRes._IsRequired, "EffectTermFR")).Any());
                    Assert.AreEqual(null, polSourceSiteEffectTerm.EffectTermFR);
                    Assert.AreEqual(count, polSourceSiteEffectTermService.GetPolSourceSiteEffectTermList().Count());

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");
                    polSourceSiteEffectTerm.EffectTermFR = GetRandomString("", 101);
                    Assert.AreEqual(false, polSourceSiteEffectTermService.Add(polSourceSiteEffectTerm));
                    Assert.AreEqual(string.Format(CSSPServicesRes._MaxLengthIs_, "EffectTermFR", "100"), polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);
                    Assert.AreEqual(count, polSourceSiteEffectTermService.GetPolSourceSiteEffectTermList().Count());

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

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

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

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");
                    polSourceSiteEffectTerm.LastUpdateContactTVItemID = 0;
                    polSourceSiteEffectTermService.Add(polSourceSiteEffectTerm);
                    Assert.AreEqual(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", polSourceSiteEffectTerm.LastUpdateContactTVItemID.ToString()), polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);

                    polSourceSiteEffectTerm = null;
                    polSourceSiteEffectTerm = GetFilledRandomPolSourceSiteEffectTerm("");
                    polSourceSiteEffectTerm.LastUpdateContactTVItemID = 1;
                    polSourceSiteEffectTermService.Add(polSourceSiteEffectTerm);
                    Assert.AreEqual(string.Format(CSSPServicesRes._IsNotOfType_, "LastUpdateContactTVItemID", "Contact"), polSourceSiteEffectTerm.ValidationResults.FirstOrDefault().ErrorMessage);


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

                    // No testing requied

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

                    // No testing requied
                }
            }
        }