public static async Task <ITestApplication> SessionSuperAdminAsync(this ITestApplicationFactory testAppFactory) { return(await EastFive.Web.Configuration.Settings.GetGuid(EastFive.Api.AppSettings.AuthorizationIdSuperAdmin, async (superAdminAuthorizationId) => { var sessionToRun = testAppFactory.GetUnauthorizedSession(); var sessionRef = Guid.NewGuid().AsRef <EastFive.Azure.Auth.Session>(); var session = new EastFive.Azure.Auth.Session { sessionId = sessionRef, authorization = superAdminAuthorizationId.AsRefOptional <EastFive.Azure.Auth.Authorization>(), }; var token = await sessionToRun.PostAsync( session, onCreatedBody: (sessionCreated, contentType) => { return ((EastFive.Azure.Auth.Session)sessionCreated).token; }); var testApplication = testAppFactory.GetAuthorizedSession(token); return testApplication; }, (why) => { Assert.Fail(why); throw new Exception(why); })); }
public static async Task <TResult> ExecuteLoginRedirect <TRedirect, TResult>(this ITestApplicationFactory sessionFactory, string integrationName, Func <ITestApplication, TRedirect> getRedirect, Func <ITestApplication, Auth.Session, Auth.Authorization, Uri, TResult> onComplete) { var comms = sessionFactory.GetUnauthorizedSession(); var responseResource = getRedirect(comms); //var authentication = await comms.GetAsync<Method, Method>( // onContents: // authentications => // { // var matchingAuthentications = authentications // .Where(auth => auth.name == integrationName); // Assert.IsTrue(matchingAuthentications.Any()); // return matchingAuthentications.First(); // }); return(await await comms.GetAsync(responseResource, onRedirect : async(urlRedirect) => { var authIdStr = urlRedirect.GetQueryParam(EastFive.Api.Azure.AzureApplication.QueryRequestIdentfier); var authId = Guid.Parse(authIdStr); var authIdRef = authId.AsRef <Auth.Authorization>(); // TODO: New comms here? return await await comms.GetAsync( (Auth.Authorization authorizationGet) => authorizationGet.authorizationRef.AssignQueryValue(authIdRef), onContent: (authenticatedAuthorization) => { // Use comms here to avoid losing overides var commsRedirect = sessionFactory.GetUnauthorizedSession(); var session = new Session { sessionId = Guid.NewGuid().AsRef <Session>(), authorization = new RefOptional <Auth.Authorization>(authenticatedAuthorization.authorizationRef), }; return comms.PostAsync(session, // commsRedirect.PostAsync(session, onCreatedBody: (updated, contentType) => { var commsAuth = sessionFactory.GetAuthorizedSession(updated.token); return onComplete(commsAuth, updated, authenticatedAuthorization, urlRedirect); }); }); })); }
public static async Task <ITestApplication> SessionUnauthenticatedAsync(this ITestApplicationFactory testAppFactory) { var sessionToRun = testAppFactory.GetUnauthorizedSession(); var token = await sessionToRun.PostAsync( new EastFive.Azure.Auth.Session { sessionId = Guid.NewGuid().AsRef <EastFive.Azure.Auth.Session>(), }, onCreatedBody : (sessionCreated, contentType) => { return(((EastFive.Azure.Auth.Session)sessionCreated).token); }); var testApplication = testAppFactory.GetAuthorizedSession(token); return(testApplication); }