public ClassEnvironment(string alternativeSourceFilePath = null, [CallerFilePath] string sourceFilePath = "")
        {
            ThisClassesLog = new ClassLog(alternativeSourceFilePath ?? sourceFilePath);
            MasterEnvironment.AddClassLog( ThisClassesLog);

            //ensure the database is set up
            using (var db = new EfTestDbContext())
            {
                if (!db.EfParents.Any()) db.ResetDatabaseContent();     //make sure database is loaded after change to model
            }
        }
        public MethodEnvironment(ClassEnvironment classEnv,
                                  [CallerMemberName] string memberName = "",
                                  [CallerLineNumber] int envLineNumber = 0)
        {
            this.classEnv = classEnv;
            this.memberName = memberName;
            lineNumberToUseIfException = envLineNumber;

            loggedLinqSql = new List<string>();
            loggedDelegateDecompilerSql = new List<string>();

            Db = new EfTestDbContext();
            Db.Database.Log = LogEfSql;               //capture the sql for the linq part
        }
        public void Test01FillDatabaseOk()
        {
            using (var db = new EfTestDbContext())
            {
                //SETUP
                

                //ATTEMPT
                db.ResetDatabaseContent();

                //VERIFY
                db.EfParents.Count().ShouldEqual(DatabaseHelpers.BaseData.Count);
                db.EfChildren.Count().ShouldEqual(DatabaseHelpers.BaseData.SelectMany( x => x.Children).Count());

                db.EfPersons.Count().ShouldEqual(DatabaseHelpers.PersonsData.Count);
            }
        }
示例#4
0
        public static void ResetDatabaseContent(this EfTestDbContext db)
        {
            //check that ParentIntUniqueValue is unique
            if (BaseData.Count(x => x.ParentInt == ParentIntUniqueValue) != 1)
            {
                throw new InvalidOperationException("The test data must have only one item with ParentInt equal to ParentIntUniqueValue");
            }

            //wipe out all exsiting data
            db.EfParents.RemoveRange(db.EfParents);
            db.EfPersons.RemoveRange(db.EfPersons);
            db.SaveChanges();

            db.EfParents.AddRange(BaseData);
            db.EfPersons.AddRange(PersonsData);
            db.SaveChanges();
        }