[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); }
private async Task deleteTest(string id) { var a = GetUrl.ForControllerAction <TController>(x => x.Delete("")); a = a + $"/{id}"; await testWhenLoggedOut(a, HttpStatusCode.Redirect); }
[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>"); }
[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>"); }
[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()); }
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); }
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>" ); }
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>" ); }
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 » class=\"btn btn-primary btn-sm\" />", $"<a href=\"/\">Back to home page</a>" }; strings.AddRange(specificStringsToTestInView); await testWhenLoggedIn(a, strings.ToArray()); }
[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>" ); }
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 » class=\"btn btn-primary btn-sm\" />", $"<a href=\"/\">Back to home page</a>" }; strings.AddRange(stringsToTestInView()); await testWhenLoggedIn(a, strings.ToArray()); }
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); }
[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); }
[TestMethod] public async Task ContactTest() { var a = GetUrl.ForControllerAction<HomeController>(x => x.Contact()); await testControllerAction(a, "<h2>Contact</h2>"); }
public async Task IndexTest() { var a = GetUrl.ForControllerAction <TController>(x => x.Index(null, null, null, null)); await testWhenLoggedOut(a, HttpStatusCode.Redirect); }
[TestMethod] public async Task ErrorTest() { var a = GetUrl.ForControllerAction<HomeController>(x => x.Error()); await testControllerAction(a, "<h1 class=\"text-danger\">Error.</h1>"); }
public async Task ErrorTest() { var a = GetUrl.ForControllerAction <HomeController>(x => x.Error()); await testControllerAction(a, "Error."); }
public void ForControllerActionTest() { Assert.AreEqual("/home", GetUrl.ForControllerAction <HomeController>()); Assert.AreEqual("/home/index", GetUrl.ForControllerAction <HomeController>(x => x.Index())); }
public async Task PrivacyTest() { var a = GetUrl.ForControllerAction <HomeController>(x => x.Privacy()); await testControllerAction(a, "Privacy"); }