public async Task ApiSequenceTests() { this.ControllersContext = await ControllersContext.ConstructControllersContext(); var seq1 = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.PostUser201, null, this.DeleteUser204 }; var seq2 = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.PostUser201, this.PostUser409, this.DeleteUser204 }; var seq3 = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.PostUser201, this.DeleteUser204, this.DeleteUser404 }; var seq4 = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.PostUser201, this.PutUser204, this.DeleteUser204 }; var seq5 = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.PostUser201, this.GetUser200, this.DeleteUser204 }; await ApiSequenceTestingFramework.Execute(seq1); await ApiSequenceTestingFramework.Execute(seq2); await ApiSequenceTestingFramework.Execute(seq3); await ApiSequenceTestingFramework.Execute(seq4); await ApiSequenceTestingFramework.Execute(seq5); }
/// <summary> /// Constructs controllers context with proper app, but a user principal whose user handle is null. /// </summary> /// <remarks> /// App principal is using TestConstants.AppKey /// User principal is using a null user handle and an MSA account with a randomly generated id /// </remarks> /// <returns>controllers context</returns> public static async Task <ControllersContext> ConstructControllersContextWithNullUserHandle() { var controllersContext = new ControllersContext(); controllersContext.ManagersContext = new ManagersContext(); controllersContext.PrincipalsContext = await PrincipalsContext.ConstructNullUserHandlePrincipalsContext(controllersContext.ManagersContext, TestConstants.AppKey, IdentityProviderType.Microsoft); controllersContext.UsersController = new UsersController(controllersContext.ManagersContext, controllersContext.PrincipalsContext); controllersContext.SessionsController = new SessionsController(controllersContext.ManagersContext, controllersContext.PrincipalsContext); controllersContext.MyLinkedAccountsController = new MyLinkedAccountsController(controllersContext.ManagersContext, controllersContext.PrincipalsContext); return(controllersContext); }
/// <summary> /// Constructs controllers context with proper app and user principal. /// </summary> /// <remarks> /// App principal is using TestConstants.AppKey /// User principal is using a randomly generated user handle and a Twitter account type with a randomly generated id /// </remarks> /// <returns>controllers context</returns> public static async Task <ControllersContext> ConstructControllersContext() { var controllersContext = new ControllersContext(); controllersContext.ManagersContext = new ManagersContext(); controllersContext.PrincipalsContext = await PrincipalsContext.ConstructPrincipalsContext(controllersContext.ManagersContext, TestConstants.AppKey); controllersContext.UsersController = new UsersController(controllersContext.ManagersContext, controllersContext.PrincipalsContext); controllersContext.SessionsController = new SessionsController(controllersContext.ManagersContext, controllersContext.PrincipalsContext); controllersContext.MyLinkedAccountsController = new MyLinkedAccountsController(controllersContext.ManagersContext, controllersContext.PrincipalsContext); return(controllersContext); }
public async Task ApiSequenceTest() { this.ControllersContext = await ControllersContext.ConstructControllersContext(); this.ControllersContextWithNullUserHandle = await ControllersContext.ConstructControllersContextWithNullUserHandle(); //// Sequence #1: PostUser, PostLinkedAccount, PostLinkedAccount, DeleteUser var result = await ApiSequenceTestingFramework.Execute(this.PostUser201); PostUserResponse postUserResponse = (result as CreatedNegotiatedContentResult <PostUserResponse>).Content; this.SessionToken = postUserResponse.SessionToken; var seq = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.PostLinkedAccount204, this.PostLinkedAccount409, this.DeleteUser204 }; await ApiSequenceTestingFramework.Execute(seq); //// Sequence #2: PostUser, PostLinkedAccount, DeleteLinkedAccount, DeleteUser result = await ApiSequenceTestingFramework.Execute(this.PostUser201); postUserResponse = (result as CreatedNegotiatedContentResult <PostUserResponse>).Content; this.SessionToken = postUserResponse.SessionToken; seq = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.PostLinkedAccount204, this.DeleteLinkedAccount204, this.DeleteUser204 }; await ApiSequenceTestingFramework.Execute(seq); //// Sequence #3: PostUser, PostLinkedAccount, GetLinkedAccount, DeleteUser result = await ApiSequenceTestingFramework.Execute(this.PostUser201); postUserResponse = (result as CreatedNegotiatedContentResult <PostUserResponse>).Content; this.SessionToken = postUserResponse.SessionToken; seq = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.PostLinkedAccount204, this.GetLinkedAccounts200, this.DeleteUser204 }; await ApiSequenceTestingFramework.Execute(seq); //// Sequence #4: PostUser, PostLinkedAccount, DeleteUser, DeleteUser result = await ApiSequenceTestingFramework.Execute(this.PostUser201); postUserResponse = (result as CreatedNegotiatedContentResult <PostUserResponse>).Content; this.SessionToken = postUserResponse.SessionToken; seq = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.PostLinkedAccount204, this.DeleteUser204, this.DeleteUser404 }; await ApiSequenceTestingFramework.Execute(seq); //// Sequence #5: PostUser, DeleteLinkedAccount, PostLinkedAccount, DeleteUser result = await ApiSequenceTestingFramework.Execute(this.PostUser201); postUserResponse = (result as CreatedNegotiatedContentResult <PostUserResponse>).Content; this.SessionToken = postUserResponse.SessionToken; seq = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.DeleteLinkedAccount404, this.PostLinkedAccount204, this.DeleteUser204 }; await ApiSequenceTestingFramework.Execute(seq); //// Sequence #6: PostUser, DeleteLinkedAccount, DeleteLinkedAccount, DeleteUser result = await ApiSequenceTestingFramework.Execute(this.PostUser201); postUserResponse = (result as CreatedNegotiatedContentResult <PostUserResponse>).Content; this.SessionToken = postUserResponse.SessionToken; seq = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.DeleteLinkedAccount404, this.DeleteLinkedAccount404, this.DeleteUser204 }; await ApiSequenceTestingFramework.Execute(seq); //// Sequence #7: PostUser, DeleteLinkedAccount, GetLinkedAccount, DeleteUser result = await ApiSequenceTestingFramework.Execute(this.PostUser201); postUserResponse = (result as CreatedNegotiatedContentResult <PostUserResponse>).Content; this.SessionToken = postUserResponse.SessionToken; seq = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.DeleteLinkedAccount404, this.GetLinkedAccounts200, this.DeleteUser204 }; await ApiSequenceTestingFramework.Execute(seq); //// Sequence #8: PostUser, DeleteLinkedAccount, DeleteUser, DeleteUser result = await ApiSequenceTestingFramework.Execute(this.PostUser201); postUserResponse = (result as CreatedNegotiatedContentResult <PostUserResponse>).Content; this.SessionToken = postUserResponse.SessionToken; seq = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.DeleteLinkedAccount404, this.DeleteUser204, this.DeleteUser404 }; await ApiSequenceTestingFramework.Execute(seq); //// Sequence #9: PostUser, GetLinkedAccount, PostLinkedAccount, DeleteUser result = await ApiSequenceTestingFramework.Execute(this.PostUser201); postUserResponse = (result as CreatedNegotiatedContentResult <PostUserResponse>).Content; this.SessionToken = postUserResponse.SessionToken; seq = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.GetLinkedAccounts200, this.PostLinkedAccount204, this.DeleteUser204 }; await ApiSequenceTestingFramework.Execute(seq); //// Sequence #10: PostUser, GetLinkedAccount, DeleteLinkedAccount, DeleteUser result = await ApiSequenceTestingFramework.Execute(this.PostUser201); postUserResponse = (result as CreatedNegotiatedContentResult <PostUserResponse>).Content; this.SessionToken = postUserResponse.SessionToken; seq = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.GetLinkedAccounts200, this.DeleteLinkedAccount404, this.DeleteUser204 }; await ApiSequenceTestingFramework.Execute(seq); //// Sequence #11: PostUser, GetLinkedAccount, GetLinkedAccount, DeleteUser result = await ApiSequenceTestingFramework.Execute(this.PostUser201); postUserResponse = (result as CreatedNegotiatedContentResult <PostUserResponse>).Content; this.SessionToken = postUserResponse.SessionToken; seq = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.GetLinkedAccounts200, this.GetLinkedAccounts200, this.DeleteUser204 }; await ApiSequenceTestingFramework.Execute(seq); //// Sequence #12: PostUser, GetLinkedAccount, DeleteUser, DeleteUser result = await ApiSequenceTestingFramework.Execute(this.PostUser201); postUserResponse = (result as CreatedNegotiatedContentResult <PostUserResponse>).Content; this.SessionToken = postUserResponse.SessionToken; seq = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.GetLinkedAccounts200, this.DeleteUser204, this.DeleteUser404 }; await ApiSequenceTestingFramework.Execute(seq); //// Sequence #13: PostUser, DeleteUser, PostLinkedAccount, DeleteUser result = await ApiSequenceTestingFramework.Execute(this.PostUser201); postUserResponse = (result as CreatedNegotiatedContentResult <PostUserResponse>).Content; this.SessionToken = postUserResponse.SessionToken; seq = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.DeleteUser204, this.PostLinkedAccount204, this.DeleteUser404 }; await ApiSequenceTestingFramework.Execute(seq); //// Sequence #14: PostUser, DeleteUser, DeleteLinkedAccount, DeleteUser result = await ApiSequenceTestingFramework.Execute(this.PostUser201); postUserResponse = (result as CreatedNegotiatedContentResult <PostUserResponse>).Content; this.SessionToken = postUserResponse.SessionToken; seq = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.DeleteUser204, this.DeleteLinkedAccount404, this.DeleteUser404 }; await ApiSequenceTestingFramework.Execute(seq); //// Sequence #15: PostUser, DeleteUser, GetLinkedAccount, DeleteUser result = await ApiSequenceTestingFramework.Execute(this.PostUser201); postUserResponse = (result as CreatedNegotiatedContentResult <PostUserResponse>).Content; this.SessionToken = postUserResponse.SessionToken; seq = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.DeleteUser204, this.GetLinkedAccounts200, this.DeleteUser404 }; await ApiSequenceTestingFramework.Execute(seq); //// Sequence #16: PostUser, DeleteUser, DeleteUser, DeleteUser seq = new List <Tuple <Func <Task <IHttpActionResult> >, Action <IHttpActionResult> > > { this.PostUser201, this.DeleteUser204, this.DeleteUser404, this.DeleteUser404 }; await ApiSequenceTestingFramework.Execute(seq); }