public void EnableAll_enables_everything()
        {
            var options = new DatabaseErrorPageOptions();
            options.EnableAll();

            Assert.True(options.ShowExceptionDetails);
            Assert.True(options.ListMigrations);
            Assert.True(options.EnableMigrationCommands);
            Assert.Equal(MigrationsEndPointOptions.DefaultPath, options.MigrationsEndPointPath);
        }
        public void MigrationsEndPointPath_is_respected()
        {
            var options = new DatabaseErrorPageOptions();
            options.EnableAll();
            options.MigrationsEndPointPath = "/test";

            Assert.True(options.ShowExceptionDetails);
            Assert.True(options.ListMigrations);
            Assert.True(options.EnableMigrationCommands);
            Assert.Equal("/test", options.MigrationsEndPointPath);
        }
        public void EnableMigrationCommands_is_respected()
        {
            var options = new DatabaseErrorPageOptions();
            options.EnableAll();
            options.EnableMigrationCommands = false;

            Assert.True(options.ShowExceptionDetails);
            Assert.True(options.ListMigrations);
            Assert.False(options.EnableMigrationCommands);
            Assert.Equal(MigrationsEndPointOptions.DefaultPath, options.MigrationsEndPointPath);
        }
示例#4
0
        public void EnableAll_enables_everything()
        {
            var options = new DatabaseErrorPageOptions();

            options.EnableAll();

            Assert.True(options.ShowExceptionDetails);
            Assert.True(options.ListMigrations);
            Assert.True(options.EnableMigrationCommands);
            Assert.Equal(MigrationsEndPointOptions.DefaultPath, options.MigrationsEndPointPath);
        }
示例#5
0
        public void MigrationsEndPointPath_is_respected()
        {
            var options = new DatabaseErrorPageOptions();

            options.EnableAll();
            options.MigrationsEndPointPath = "/test";

            Assert.True(options.ShowExceptionDetails);
            Assert.True(options.ListMigrations);
            Assert.True(options.EnableMigrationCommands);
            Assert.Equal("/test", options.MigrationsEndPointPath);
        }
示例#6
0
        public void EnableMigrationCommands_is_respected()
        {
            var options = new DatabaseErrorPageOptions();

            options.EnableAll();
            options.EnableMigrationCommands = false;

            Assert.True(options.ShowExceptionDetails);
            Assert.True(options.ListMigrations);
            Assert.False(options.EnableMigrationCommands);
            Assert.Equal(MigrationsEndPointOptions.DefaultPath, options.MigrationsEndPointPath);
        }
        public async Task Exception_details_are_displayed()
        {
            var options = new DatabaseErrorPageOptions();

            options.EnableAll();

            var model = new DatabaseErrorPageModel(
                contextType: typeof(BloggingContext),
                exception: new Exception("Something bad happened"),
                databaseExists: false,
                pendingModelChanges: false,
                pendingMigrations: new string[] { },
                options: options);

            var content = await ExecutePage(options, model);

            Assert.Contains("Something bad happened", content);
        }
        public async Task MigrationsEndPointPath_is_respected()
        {
            var options = new DatabaseErrorPageOptions();

            options.EnableAll();
            options.MigrationsEndPointPath = "/HitThisEndPoint";

            var model = new DatabaseErrorPageModel(
                contextType: typeof(BloggingContext),
                exception: new Exception(),
                databaseExists: true,
                pendingModelChanges: false,
                pendingMigrations: new string[] { "111_MigrationOne" },
                options: options);

            var content = await ExecutePage(options, model);

            Assert.Contains(options.MigrationsEndPointPath.Value, content);
        }
        public async Task ListMigrations_is_respected()
        {
            var options = new DatabaseErrorPageOptions();

            options.EnableAll();
            options.ListMigrations = false;

            var model = new DatabaseErrorPageModel(
                contextType: typeof(BloggingContext),
                exception: new Exception(),
                databaseExists: true,
                pendingModelChanges: false,
                pendingMigrations: new string[] { "111_MigrationOne" },
                options: options);

            var content = await ExecutePage(options, model);

            Assert.DoesNotContain("111_MigrationOne", content);
        }
        public async Task Existing_database_with_migrations_only_displays_apply_migrations()
        {
            var options = new DatabaseErrorPageOptions();
            options.EnableAll();

            var model = new DatabaseErrorPageModel(
                contextType: typeof(BloggingContext),
                exception: new Exception(),
                databaseExists: true,
                pendingModelChanges: false,
                pendingMigrations: new string[] { "111_MigrationOne" },
                options: options);

            var content = await ExecutePage(options, model);

            AssertHelpers.NotDisplaysScaffoldFirstMigration(typeof(BloggingContext), content);
            AssertHelpers.DisplaysApplyMigrations(typeof(BloggingContext), content);
            AssertHelpers.NotDisplaysScaffoldNextMigraion(typeof(BloggingContext), content);
        }
        public async Task Existing_database_with_migrations_and_pending_model_changes_only_displays_apply_migrations()
        {
            var options = new DatabaseErrorPageOptions();

            options.EnableAll();

            var model = new DatabaseErrorPageModel(
                contextType: typeof(BloggingContext),
                exception: new Exception(),
                databaseExists: true,
                pendingModelChanges: true,
                pendingMigrations: new string[] { "111_MigrationOne" },
                options: options);

            var content = await ExecutePage(options, model);

            AssertHelpers.NotDisplaysScaffoldFirstMigration(typeof(BloggingContext), content);
            AssertHelpers.DisplaysApplyMigrations(typeof(BloggingContext), content);
            AssertHelpers.NotDisplaysScaffoldNextMigraion(typeof(BloggingContext), content);
        }
        public async Task No_database_or_migrations_only_displays_scaffold_first_migration()
        {
            var options = new DatabaseErrorPageOptions();

            options.EnableAll();

            var model = new DatabaseErrorPageModel(
                contextType: typeof(BloggingContext),
                exception: new Exception(),
                databaseExists: false,
                pendingModelChanges: false,
                pendingMigrations: new string[] { },
                options: options);

            var content = await ExecutePage(options, model);

            AssertHelpers.DisplaysScaffoldFirstMigration(typeof(BloggingContext), content);
            AssertHelpers.NotDisplaysApplyMigrations(typeof(BloggingContext), content);
            AssertHelpers.NotDisplaysScaffoldNextMigraion(typeof(BloggingContext), content);
        }
        public async Task MigrationsEndPointPath_is_respected()
        {
            var options = new DatabaseErrorPageOptions();
            options.EnableAll();
            options.MigrationsEndPointPath = "/HitThisEndPoint";

            var model = new DatabaseErrorPageModel(
               contextType: typeof(BloggingContext),
               exception: new Exception(),
               databaseExists: true,
               pendingModelChanges: false,
               pendingMigrations: new string[] { "111_MigrationOne" },
               options: options);

            var content = await ExecutePage(options, model);

            Assert.Contains(options.MigrationsEndPointPath.Value, content);
        }
        public async Task ListMigrations_is_respected()
        {
            var options = new DatabaseErrorPageOptions();
            options.EnableAll();
            options.ListMigrations = false;

            var model = new DatabaseErrorPageModel(
               contextType: typeof(BloggingContext),
               exception: new Exception(),
               databaseExists: true,
               pendingModelChanges: false,
               pendingMigrations: new string[] { "111_MigrationOne" },
               options: options);

            var content = await ExecutePage(options, model);

            Assert.DoesNotContain("111_MigrationOne", content);
        }
        public async Task ShowExceptionDetails_is_respected()
        {
            var options = new DatabaseErrorPageOptions();
            options.EnableAll();
            options.ShowExceptionDetails = false;

            var model = new DatabaseErrorPageModel(
                contextType: typeof(BloggingContext),
                exception: new Exception("Something bad happened"),
                databaseExists: false,
                pendingModelChanges: false,
                pendingMigrations: new string[] { },
                options: options);

            var content = await ExecutePage(options, model);

            Assert.DoesNotContain("Something bad happened", content);
        }
        public async Task Inner_exception_details_are_displayed()
        {
            var options = new DatabaseErrorPageOptions();
            options.EnableAll();

            var model = new DatabaseErrorPageModel(
                contextType: typeof(BloggingContext),
                exception: new Exception("Something bad happened", new Exception("Because something more badder happened")),
                databaseExists: false,
                pendingModelChanges: false,
                pendingMigrations: new string[] { },
                options: options);

            var content = await ExecutePage(options, model);

            Assert.Contains("Something bad happened", content);
            Assert.Contains("Because something more badder happened", content);
        }