[TestMethod] public async Task CreateAllGivenTest()
        {
            Assert.Inconclusive();
            // http://www.stefanhendriks.com/2016/05/11/integration-testing-your-asp-net-core-app-dealing-with-anti-request-forgery-csrf-formdata-and-cookies/
            var c = GetRandom.Object <CountryViewModel>();

            c.Alpha3Code = "YYY";
            c.Alpha2Code = "YY";
            c.Name       = "Some name";
            var d = new Dictionary <string, string>();
            var a = GetUrl.ForControllerAction <CountriesController>(x => x.Create());

            d.Add(GetMember.Name <CountryViewModel>(m => m.Alpha3Code), c.Alpha3Code);
            d.Add(GetMember.Name <CountryViewModel>(m => m.Alpha2Code), c.Alpha2Code);
            d.Add(GetMember.Name <CountryViewModel>(m => m.Name), c.Name);
            d.Add(GetMember.Name <CountryViewModel>(m => m.ValidFrom), c.ValidFrom.ToString());
            d.Add(GetMember.Name <CountryViewModel>(m => m.ValidTo), c.ValidTo.ToString());
            var content = new FormUrlEncodedContent(d);

            TestAuthenticationHandler.IsLoggedIn = true;
            var response = await client.PostAsync(a, content);

            Assert.AreEqual(HttpStatusCode.Redirect, response.StatusCode);
            var dbObject = await repository.GetObjectsList();

            Assert.IsNotNull(dbObject);
        }
Ejemplo n.º 2
0
        private async Task deleteTest(string id)
        {
            var a = GetUrl.ForControllerAction <TController>(x => x.Delete(""));

            a = a + $"/{id}";
            await testWhenLoggedOut(a, HttpStatusCode.Redirect);
        }
Ejemplo n.º 3
0
        [TestMethod] public async Task HomeTest()
        {
            var a = GetUrl.ForControllerAction <HomeController>();

            await testControllerAction(a, "<h1>Sentry</h1>", "<h2>Welcome to Sentry</h2>",
                                       "<h2>Download it</h2>");
        }
Ejemplo n.º 4
0
        [TestMethod] public async Task HomeTest()
        {
            var a = GetUrl.ForControllerAction <HomeController>();

            await testControllerAction(a, "<h2>Welcome to SonicBank!</h2>",
                                       "<h3>Please log in to use our services!</h3>");
        }
Ejemplo n.º 5
0
        [TestMethod] public async Task IndexTest()
        {
            var a = GetUrl.ForControllerAction <TController>(x => x.Index(null, null, null, null));

            await testWhenLoggedOut(a, HttpStatusCode.Unauthorized);

            var strings = new List <string> {
                $"<form method=\"get\" action=\"/{controller}\"",
                "<div class=\"form-inline col-md-6\">",
                "Find by: <input class=\"form-control\" type=\"text\" name=\"SearchString\"",
                "<input type=\"submit\" value=\"Search\" class=\"btn btn-default\" /> |",
                $"<a href=\"/{controller}\">Back to Full List</a>",
                "<table class=\"table\">",
                "<thead>",
                $"<a class=\"btn btn-default disabled\" href=\"/{controller}?page=0\">",
                $"<a class=\"btn btn-default \" href=\"/{controller}?page=2\">",
                $"<th><a href=\"/{controller}/Edit/",
                $"\">Edit</a> | <a href=\"/{controller}/Details/",
                $"\">Details</a> | <a href=\"/{controller}/Delete/",
                ">Delete</a></th>"
            };

            strings.AddRange(specificStringsToTestInIndexView());
            await testWhenLoggedIn(a, strings.ToArray());
        }
Ejemplo n.º 6
0
        protected async Task createTest(Expression <Func <TController, object> > action,
                                        string controllerName,
                                        string header, string postAction = "create")
        {
            var a = GetUrl.ForControllerAction(action);

            await testWhenLoggedOut(a, HttpStatusCode.Redirect);
        }
Ejemplo n.º 7
0
        protected async Task editTest(Expression <Func <TController, object> > actionMethod, Func <string> actionName,
                                      Func <string> header, Func <List <string> > stringsToTestInView)
        {
            var id = createDbRecord();
            var a  = GetUrl.ForControllerAction(actionMethod);

            a = a + $"/{id}";
            await testWhenLoggedOut(a, HttpStatusCode.Redirect);
        }
        public async Task RegisterTest()
        {
            var a = GetUrl.ForControllerAction <AccountController>(x => x.Register(null));

            await testControllerAction(a,
                                       "<h2>Register</h2>",
                                       "<form method=\"post\" action=\"/Account/Register\">",
                                       "<h4>Create a new account</h4>",
                                       "<label for=\"Email\">Email</label>",
                                       "<label for=\"Password\">Password</label>",
                                       "<label for=\"ConfirmPassword\">Confirm password</label>",
                                       "<button style=\"margin-top: 48px\" type=\"submit\" class=\"btn btn-primary btn-block\">Register</button>"
                                       );
        }
        [TestMethod] public async Task CreateTest()
        {
            Assert.Inconclusive();
            var a = GetUrl.ForControllerAction <CountriesController>(x => x.Create());

            await testWhenLoggedOut(a, HttpStatusCode.Unauthorized);
            await testWhenLoggedIn(a,
                                   "<h2>Create</h2>",
                                   "<form action=\"/countries/create\" method=\"post\">",
                                   "<h4>Country</h4>",
                                   "<input type=\"submit\" value=Create class=\"btn btn-default\" />",
                                   "<a href=\"/countries\">Back to List</a>"
                                   );
        }
Ejemplo n.º 10
0
        protected async Task createTest(Expression <Func <TController, object> > action,
                                        string controllerName,
                                        string header, string postAction = "create")
        {
            var a = GetUrl.ForControllerAction(action);

            await testWhenLoggedOut(a, HttpStatusCode.Unauthorized);
            await testWhenLoggedIn(a,
                                   "<h2>Create</h2>",
                                   $"<form action=\"/{controllerName}/{postAction}\" method=\"post\">",
                                   $"<h4>{header}</h4>",
                                   "<input type=\"submit\" value=Create class=\"btn btn-default\" />",
                                   $"<a href=\"/{controllerName}\">Back to List</a>"
                                   );
        }
        public async Task LoginTest()
        {
            var a = GetUrl.ForControllerAction <AccountController>(x => x.Login(null));

            await testControllerAction(a,
                                       "<h2>Log in</h2>",
                                       "<form method=\"post\" action=\"/Account/Login\">",
                                       "<h4>Use a local account to log in</h4>",
                                       "<label for=\"Email\">Email</label>",
                                       "<label for=\"Password\">Password</label>",
                                       "<label for=\"RememberMe\">",
                                       "<button type=\"submit\" class=\"btn btn-primary btn-block\">Log in</button>",
                                       "<a href=\"/Account/ForgotPassword\">Forgot your password?</a>",
                                       "<a href=\"/Account/Register\">Register as a new user?</a>"
                                       );
        }
        [TestMethod] public async Task DetailsTest()
        {
            Assert.Inconclusive();
            var a = GetUrl.ForControllerAction <CountriesController>(x => x.Details(""));

            a = a + "/AFG";
            await testWhenLoggedOut(a, HttpStatusCode.Unauthorized);
            await testWhenLoggedIn(a,
                                   "<h2>Details</h2>",
                                   "AFG</div></div>",
                                   "AF</div></div>",
                                   "Afghanistan</div></div>",
                                   "<h4>Country</h4>",
                                   "<a href=\"/countries/Edit/AFG\">Edit</a>",
                                   "<a href=\"/countries\">Back to List</a>"
                                   );
        }
Ejemplo n.º 13
0
        private async Task deleteTest(string id)
        {
            var a = GetUrl.ForControllerAction <TController>(x => x.Delete(""));

            a = a + $"/{id}";
            await testWhenLoggedOut(a, HttpStatusCode.Unauthorized);

            var strings = new List <string> {
                "<h2>Delete</h2>",
                $"<form action=\"/{controller}/delete/{id}\" method=\"post\">",
                $"<h4>{detailsViewCaption}</h4>",
                "<input type=\"submit\" value=Delete class=\"btn btn-default\" />",
                $"<a href=\"/{controller}\">Back to List</a>"
            };

            strings.AddRange(specificStringsToTestInView);
            await testWhenLoggedIn(a, strings.ToArray());
        }
        private async Task deactivateTest(string id)
        {
            var a = GetUrl.ForControllerAction <BankAccountController>(x => x.Deactivate(""));

            a = a + $"/{id}";
            await testWhenLoggedOut(a, HttpStatusCode.Unauthorized);

            var strings = new List <string> {
                "<h2>Deactivate</h2>",
                $"<form action=\"/{controller}/deactivate/{id}\" method=\"post\">",
                $"<h4>{id}</h4>",
                "<input type=\"submit\" value=Deactivate &raquo class=\"btn btn-primary btn-sm\" />",
                $"<a href=\"/\">Back to home page</a>"
            };

            strings.AddRange(specificStringsToTestInView);
            await testWhenLoggedIn(a, strings.ToArray());
        }
Ejemplo n.º 15
0
        [TestMethod] public async Task DetailsTest()
        {
            var id = createDbRecord();
            var a  = GetUrl.ForControllerAction <TController>(x => x.Details(""));

            a = a + $"/{id}";
            await testWhenLoggedOut(a, HttpStatusCode.Unauthorized);

            var strings = new List <string> {
                "<h2>Details</h2>",
                $"<h4>{detailsViewCaption}</h4>",
                $"<a href=\"/{controller}/Edit/{id}\">Edit</a>",
                $"<a href=\"/{controller}\">Back to List</a>"
            };

            strings.AddRange(specificStringsToTestInView);
            await testWhenLoggedIn(a, strings.ToArray());
        }
        [TestMethod] public async Task DeleteTest()
        {
            Assert.Inconclusive();
            var a = GetUrl.ForControllerAction <CountriesController>(x => x.Delete(""));

            a = a + "/AFG";
            await testWhenLoggedOut(a, HttpStatusCode.Unauthorized);
            await testWhenLoggedIn(a,
                                   "<h2>Delete</h2>",
                                   "AFG</div></div>",
                                   "AF</div></div>",
                                   "Afghanistan</div></div>",
                                   "<form action=\"/countries/delete/AFG\" method=\"post\">",
                                   "<h4>Country</h4>",
                                   "<input type=\"submit\" value=Delete class=\"btn btn-default\" />",
                                   "<a href=\"/countries\">Back to List</a>"
                                   );
        }
        [TestMethod] public async Task EditTest()
        {
            Assert.Inconclusive();
            var a = GetUrl.ForControllerAction <CountriesController>(x => x.Edit(""));

            a = a + "/AFG";
            await testWhenLoggedOut(a, HttpStatusCode.Unauthorized);
            await testWhenLoggedIn(a,
                                   "<h2>Edit</h2>",
                                   "type=\"hidden\" value=\"AFG\"",
                                   "value=\"AF\"",
                                   "value=\"Afghanistan\"",
                                   "<form action=\"/countries/edit/AFG\" method=\"post\">",
                                   "<h4>Country (AFG)</h4>",
                                   "<input type=\"submit\" value=Save class=\"btn btn-default\" />",
                                   "<a href=\"/countries\">Back to List</a>"
                                   );
        }
Ejemplo n.º 18
0
        protected async Task createAllGivenTest <T>(Func <object> createRandom, Expression <Func <T, object> > action)
            where T : Controller, ISentryController
        {
            var o = createRandom();
            var a = GetUrl.ForControllerAction(action);

            TestAuthenticationHandler.IsLoggedIn = true;
            var response = await client.GetAsync(a);

            response.EnsureSuccessStatusCode();
            var d       = createHttpPostContext(o);
            var content = new FormUrlEncodedContent(d);

            TestAuthenticationHandler.IsLoggedIn = true;
            response = await client.PostAsync(a, content);

            Assert.AreEqual(HttpStatusCode.Redirect, response.StatusCode);
            await validateEntityInRepository(o);
        }
        protected async Task renewTest(Expression <Func <BankAccountController, object> > actionMethod, Func <string> actionName,
                                       Func <string> header, Func <List <string> > stringsToTestInView)
        {
            var id = createDbRecord();
            var a  = GetUrl.ForControllerAction(actionMethod);

            a = a + $"/{id}";
            await testWhenLoggedOut(a, HttpStatusCode.Unauthorized);

            var strings = new List <string> {
                "<h2>Renew</h2>",
                $"<form action=\"/{controller}/{actionName()}/{id}\" method=\"post\">",
                $"<h4>{id}</h4>",
                "<input type=\"submit\" value=Renew &raquo class=\"btn btn-primary btn-sm\" />",
                $"<a href=\"/\">Back to home page</a>"
            };

            strings.AddRange(stringsToTestInView());
            await testWhenLoggedIn(a, strings.ToArray());
        }
Ejemplo n.º 20
0
        protected async Task editTest(Expression <Func <TController, object> > actionMethod, Func <string> actionName,
                                      Func <string> header, Func <List <string> > stringsToTestInView)
        {
            var id = createDbRecord();
            var a  = GetUrl.ForControllerAction(actionMethod);

            a = a + $"/{id}";
            await testWhenLoggedOut(a, HttpStatusCode.Unauthorized);

            var strings = new List <string> {
                "<h2>Edit</h2>",
                $"type=\"hidden\" value=\"{id}\"",
                $"<form action=\"/{controller}/{actionName()}/{id}\" method=\"post\">",
                $"<h4>{header()}</h4>",
                "<input type=\"submit\" value=Save class=\"btn btn-default\" />",
                $"<a href=\"/{controller}\">Back to List</a>"
            };

            strings.AddRange(stringsToTestInView());
            await testWhenLoggedIn(a, strings.ToArray());
        }
        [TestMethod] public async Task IndexTest()
        {
            Assert.Inconclusive();
            var a = GetUrl.ForControllerAction <CountriesController>(x => x.Index(null, null, null, null));

            await testWhenLoggedOut(a, HttpStatusCode.Unauthorized);
            await testWhenLoggedIn(a,
                                   "<h2>Countries</h2>",
                                   "<a asp-action=Create>Create New</a>",
                                   "ISO Three Character Code",
                                   "ISO Two Character Code",
                                   "Name",
                                   "Valid From",
                                   "Valid To",
                                   "<th></th>",
                                   "<td>AFG</td>",
                                   "<td>AF</td>",
                                   "<td>Afghanistan</td>",
                                   "<a href=\"/countries/Edit/AFG\">Edit</a>",
                                   "<a href=\"/countries/Details/AFG\">Details</a>",
                                   "<a href=\"/countries/Delete/AFG\">Delete</a>");
        }
        public async Task DeactivateConfirmedTest()
        {
            var id = createDbRecord();

            await deactivateTest(id);

            var a = GetUrl.ForControllerAction <BankAccountController>(x => x.Deactivate(""));

            a = a + $"/{id}";
            AuthenticationHandlerTest.IsLoggedIn = true;
            var response = await client.GetAsync(a);

            response.EnsureSuccessStatusCode();
            var d = new Dictionary <string, string> {
                { "ID", id }
            };
            var content = new FormUrlEncodedContent(d);

            AuthenticationHandlerTest.IsLoggedIn = true;
            response = await client.PostAsync(a, content);

            Assert.AreEqual(HttpStatusCode.Redirect, response.StatusCode);
            await statusIsInactive(id);
        }
        protected async Task createAllGivenTest <T>(
            Expression <Func <T, object> > action,
            Func <object> createRandom,
            Func <object, IEnumerable <KeyValuePair <string, string> > > createHttpPostContext,
            Func <object, Task> validateEntityInRepository,
            bool login = false
            ) where T : Controller
        {
            var o = createRandom();
            var a = GetUrl.ForControllerAction(action);

            AuthenticationHandlerTest.IsLoggedIn = true;
            var response = await client.GetAsync(a);

            response.EnsureSuccessStatusCode();
            var d       = createHttpPostContext(o);
            var content = new FormUrlEncodedContent(d);

            AuthenticationHandlerTest.IsLoggedIn = login;
            response = await client.PostAsync(a, content);

            Assert.AreEqual(HttpStatusCode.Redirect, response.StatusCode);
            await validateEntityInRepository(o);
        }
Ejemplo n.º 24
0
        [TestMethod] public async Task DeleteConfirmedTest()
        {
            var id = createDbRecord();

            await deleteTest(id);

            var a = GetUrl.ForControllerAction <TController>(x => x.Delete(""));

            a = a + $"/{id}";
            TestAuthenticationHandler.IsLoggedIn = true;
            var response = await client.GetAsync(a);

            response.EnsureSuccessStatusCode();
            var d = new Dictionary <string, string> {
                { "ID", id }
            };
            var content = new FormUrlEncodedContent(d);

            TestAuthenticationHandler.IsLoggedIn = true;
            response = await client.PostAsync(a, content);

            Assert.AreEqual(HttpStatusCode.Redirect, response.StatusCode);
            await isNotInRepository(id);
        }
Ejemplo n.º 25
0
 [TestMethod] public async Task ContactTest() {
     var a = GetUrl.ForControllerAction<HomeController>(x => x.Contact());
     await testControllerAction(a, "<h2>Contact</h2>");
 }
Ejemplo n.º 26
0
        public async Task IndexTest()
        {
            var a = GetUrl.ForControllerAction <TController>(x => x.Index(null, null, null, null));

            await testWhenLoggedOut(a, HttpStatusCode.Redirect);
        }
Ejemplo n.º 27
0
 [TestMethod] public async Task ErrorTest() {
     var a = GetUrl.ForControllerAction<HomeController>(x => x.Error());
     await testControllerAction(a, "<h1 class=\"text-danger\">Error.</h1>");
 }
Ejemplo n.º 28
0
        public async Task ErrorTest()
        {
            var a = GetUrl.ForControllerAction <HomeController>(x => x.Error());

            await testControllerAction(a, "Error.");
        }
Ejemplo n.º 29
0
 public void ForControllerActionTest()
 {
     Assert.AreEqual("/home", GetUrl.ForControllerAction <HomeController>());
     Assert.AreEqual("/home/index",
                     GetUrl.ForControllerAction <HomeController>(x => x.Index()));
 }
Ejemplo n.º 30
0
        public async Task PrivacyTest()
        {
            var a = GetUrl.ForControllerAction <HomeController>(x => x.Privacy());

            await testControllerAction(a, "Privacy");
        }