コード例 #1
0
        public void Check02DatabaseDataLinksOk()
        {
            using (var db = new SampleWebAppDb())
            {
                //SETUP
                DataLayerInitialise.InitialiseThis();
                var filepath = TestFileHelpers.GetTestFileFilePath("DbContentSimple.xml");

                //ATTEMPT
                DataLayerInitialise.ResetDatabaseToTestData(db, filepath);

                //VERIFY
                var allPosts = db.Posts.Include(x => x.Blogger).Include(x => x.Tags).ToList();
                allPosts[0].Blogger.Name.ShouldEqual("Fred Bloggs");
                string.Join(",", allPosts[0].Tags.Select(x => x.Slug)).ShouldEqual("ugly,bad");
                allPosts[1].Blogger.Name.ShouldEqual("Jon Smith");
                string.Join(",", allPosts[1].Tags.Select(x => x.Slug)).ShouldEqual("good,ugly");
                allPosts[2].Blogger.Name.ShouldEqual("Jon Smith");
                string.Join(",", allPosts[2].Tags.Select(x => x.Slug)).ShouldEqual("bad");

                db.PostTagGrades.Count().ShouldEqual(2);
                db.PostTagGrades.ToList().All(x => x.PostId == allPosts[0].PostId).ShouldEqual(true);
                string.Join(",", db.PostTagGrades.Include(x => x.TagPart).Select(x => x.TagPart.Slug)).ShouldEqual("bad,ugly");
            }
        }
コード例 #2
0
 public void SetUpFixture()
 {
     using (var db = new SampleWebAppDb())
     {
         DataLayerInitialise.InitialiseThis(false, true);
         DataLayerInitialise.ResetBlogs(db, TestDataSelection.Small);
     }
 }
コード例 #3
0
 public void SetUpFixture()
 {
     using (var db = new SampleWebAppDb())
     {
         DataLayerInitialise.InitialiseThis();
         var filepath = TestFileHelpers.GetTestFileFilePath("DbContentSimple.xml");
         DataLayerInitialise.ResetDatabaseToTestData(db, filepath);
     }
 }
コード例 #4
0
        public void Check10FindDtoKeyBad()
        {
            using (var db = new SampleWebAppDb())
            {
                //SETUP
                DataLayerInitialise.InitialiseThis();

                //ATTEMPT
                var ex = Assert.Throws <InvalidOperationException>(() => db.GetKeyProperties <SimplePostDto>());

                //VERIFY
                ex.Message.ShouldEqual("This method expects a entity class. Did you provide a DTO by mistake?");
            }
        }
コード例 #5
0
        public void FixtureSetup()
        {
            //This remembers the SqlErrorTextDict
            _rememberDefaultSqlErrorTextDict =
                GenericServicesConfig.SqlErrorDict.Select(x => new KeyValuePair <int, string>(x.Key, x.Value))
                .ToList();
            GenericServicesConfig.ClearSqlHandlerDict();

            using (var db = new SampleWebAppDb())
            {
                DataLayerInitialise.InitialiseThis();
                var filepath = TestFileHelpers.GetTestFileFilePath("DbContentSimple.xml");
                DataLayerInitialise.ResetDatabaseToTestData(db, filepath);
            }
        }
コード例 #6
0
        public void Check05FindPostTagGradeKeyOk()
        {
            using (var db = new SampleWebAppDb())
            {
                //SETUP
                DataLayerInitialise.InitialiseThis();

                //ATTEMPT
                var keys = db.GetKeyProperties <PostTagGrade>();

                //VERIFY
                keys.Count.ShouldEqual(2);
                keys.First().Name.ShouldEqual("PostId");
                keys.Last().Name.ShouldEqual("TagId");
            }
        }
コード例 #7
0
        public void Check11BlogsResetMediumOk()
        {
            using (var db = new SampleWebAppDb())
            {
                //SETUP
                DataLayerInitialise.InitialiseThis(false, true);

                //ATTEMPT
                DataLayerInitialise.ResetBlogs(db, TestDataSelection.Medium);

                //VERIFY
                db.Blogs.Count().ShouldEqual(4);
                db.Posts.Count().ShouldEqual(17);
                db.Tags.Count().ShouldEqual(8);
            }
        }
コード例 #8
0
        public void Check20NullInitialiserOk()
        {
            Check10BlogsResetSmallOk();             //we call this to ensure the database is setup
            using (var db = new SampleWebAppDb())
            {
                //SETUP
                DataLayerInitialise.InitialiseThis(false, false);           //select null initialiser

                //ATTEMPT
                DataLayerInitialise.ResetBlogs(db, TestDataSelection.Small);

                //VERIFY
                db.Blogs.Count().ShouldEqual(2);
                db.Posts.Count().ShouldEqual(3);
                db.Tags.Count().ShouldEqual(3);
            }
        }
コード例 #9
0
        public void Check10DatabaseResetWithIGenericServicesDbContextOk()
        {
            using (var db = new SampleWebAppDb() as IGenericServicesDbContext)
            {
                //SETUP
                DataLayerInitialise.InitialiseThis();
                var filepath = TestFileHelpers.GetTestFileFilePath("DbContentSimple.xml");

                //ATTEMPT
                DataLayerInitialise.ResetDatabaseToTestData(db as SampleWebAppDb, filepath);

                //VERIFY
                db.Set <Blog>().Count().ShouldEqual(2);
                db.Set <Post>().Count().ShouldEqual(3);
                db.Set <Tag>().Count().ShouldEqual(3);
                db.Set <PostTagGrade>().Count().ShouldEqual(2);
            }
        }
コード例 #10
0
        public void Check01DatabaseResetOk()
        {
            using (var db = new SampleWebAppDb())
            {
                //SETUP
                DataLayerInitialise.InitialiseThis();
                var filepath = TestFileHelpers.GetTestFileFilePath("DbContentSimple.xml");

                //ATTEMPT
                DataLayerInitialise.ResetDatabaseToTestData(db, filepath);

                //VERIFY
                db.Blogs.Count().ShouldEqual(2);
                db.Posts.Count().ShouldEqual(3);
                db.Tags.Count().ShouldEqual(3);
                db.Database.SqlQuery <int>("SELECT COUNT(*) FROM dbo.TagPosts").First().ShouldEqual(5);
                db.PostTagGrades.Count().ShouldEqual(2);
            }
        }
コード例 #11
0
        public void Check02FindPostKeyAgainOk()
        {
            using (var db = new SampleWebAppDb())
            {
                //SETUP
                var timer = new Stopwatch();
                DataLayerInitialise.InitialiseThis();
                var x = db.Posts.Count();

                //ATTEMPT
                timer.Start();
                var keys = db.GetKeyProperties <Post>();
                timer.Stop();

                Console.WriteLine("took {0:f3} ms", 1000.0 * timer.ElapsedTicks / Stopwatch.Frequency);
                //VERIFY
                keys.Count.ShouldEqual(1);
                keys.First().Name.ShouldEqual("PostId");
            }
        }
コード例 #12
0
        /// <summary>
        /// This should be called at Startup from Infrastructure.Configuration
        /// </summary>
        /// <param name="isAzure">true if working with azure database</param>
        /// <param name="canCreateDatabase">true if the database provider allows the app to drop/create a database</param>
        public static void InitialiseThis(bool isAzure, bool canCreateDatabase)
        {
            //Place any tasks that need initialising here

            DataLayerInitialise.InitialiseThis(isAzure, canCreateDatabase);
        }
コード例 #13
0
 public void SetUpFixture()
 {
     DataLayerInitialise.InitialiseThis();
     new SimplePostDto();        //sets up the mapping
     new DetailPostDto();        //sets up the mapping
 }