public async Task Get_OneSupportedPlanPresent_SupportedPlanReturned() { //Arrange var fakeMediator = Substitute.For <IMediator>(); fakeMediator .Send(Arg.Any <GetSupportedPlansQuery>()) .Returns(new[] { new Plan( "some-bundle-id", 1337, new Bundle(), Array.Empty <PullDogPlan>()) }); var mapper = AutoMapperFactory.CreateValidMapper(); var controller = new PlansController( mapper, fakeMediator); //Act var responses = await controller.Get(); //Assert var responsesArray = responses.ToArray(); Assert.AreEqual(1, responsesArray.Length); Assert.AreEqual("some-bundle-id", responsesArray.Single().Id); }
public static void ClassInitialize(TestContext context) { Initialize(); InitializePlans(); _controller = new PlansController(ObjectFactory.GetInstance <IPlanService>()); }
public async Task GetDemo_DemoPlanPresent_DemoPlanReturned() { //Arrange var fakeMediator = Substitute.For <IMediator>(); fakeMediator .Send(Arg.Any <GetDemoPlanQuery>()) .Returns(new Plan( "some-bundle-id", 1337, new Bundle(), Array.Empty <PullDogPlan>())); var mapper = AutoMapperFactory.CreateValidMapper(); var controller = new PlansController( mapper, fakeMediator); //Act var demoResponse = await controller.GetDemo(); //Assert Assert.IsNotNull(demoResponse); Assert.AreEqual("some-bundle-id", demoResponse.Id); }
public async Task ProvisionDemo_DemoPlanPresentGiven_DemoInstanceProvisonedWithProperBundleId() { //Arrange var fakeMediator = Substitute.For <IMediator>(); fakeMediator .Send(Arg.Any <GetDemoPlanQuery>()) .Returns(new Plan( "some-bundle-id", 1337, new Bundle(), Array.Empty <PullDogPlan>())); var fakeMapper = Substitute.For <IMapper>(); var controller = new PlansController( fakeMapper, fakeMediator); //Act await controller.ProvisionDemo(); //Assert await fakeMediator .Received(1) .Send(Arg.Any <ProvisionDemoInstanceCommand>()); }
public async Task ProvisionDemo_DemoAlreadyProvisioned_ReturnsValidationError() { //Arrange var fakeMediator = Substitute.For <IMediator>(); fakeMediator .Send(Arg.Any <GetDemoPlanQuery>()) .Returns(new Plan( "some-bundle-id", 1337, new Bundle(), Array.Empty <PullDogPlan>())); fakeMediator .Send(Arg.Any <ProvisionDemoInstanceCommand>()) .Throws(new DemoInstanceAlreadyProvisionedException()); var mapper = AutoMapperFactory.CreateValidMapper(); var controller = new PlansController( mapper, fakeMediator); //Act var result = await controller.ProvisionDemo(); //Assert var validationProblem = result.GetValidationProblemDetails(); Assert.AreEqual("ALREADY_PROVISIONED", validationProblem.Type); }
public void TestInitialize() { _mockRepository = new Mock <IPlanRepository>(); var mockUoW = new Mock <IUnitOfWork>(); mockUoW.SetupGet(u => u.Plans).Returns(_mockRepository.Object); _controller = new PlansController(mockUoW.Object); _controller.MockCurrentUser(_userId, _username); }
public async void PlanController_Will_ReturnEmptyOkResult_If_No_Plan_Found() { //Act PlansController PlanController = CreatePlanController(_testUserAccount.Id, _testUserAccount.EmailAddress.Address); //Assert var postResult = await PlanController.Get(new PlansGetParams() { id = FixtureData.GetTestGuidById(55) }); //FixtureData.GetTestGuidById(55)); Assert.IsNull(postResult as OkNegotiatedContentResult <PlanDO>); }
public void BeforeTest() { var builder = new DbContextOptionsBuilder <PlanContext>(); builder.EnableSensitiveDataLogging(); builder.UseInMemoryDatabase("testplan"); var context = new PlanContext(builder.Options); var repository = new PlanRepository(context); this.controller = new( Mock.Of <ILogger <PlansController> >(), repository); Assert.IsNotNull(this.controller); }
public async Task ProvisionPlan_PlanAndPaymentMethodPresent_InstanceProvisonedWithProperBundleId() { //Arrange var signedInUserId = Guid.NewGuid(); var fakeMediator = Substitute.For <IMediator>(); fakeMediator .Send(Arg.Is <GetPlanByIdQuery>(arg => arg.Id == "some-plan-id")) .Returns(new Plan( "some-bundle-id", 1337, new Bundle(), Array.Empty <PullDogPlan>())); fakeMediator .Send(Arg.Is <GetActivePaymentMethodForUserQuery>(arg => arg.User.Id == signedInUserId)) .Returns(new PaymentMethod()); fakeMediator .Send(Arg.Is <EnsureUserForIdentityCommand>( args => args.IdentityName == "some-identity-name")) .Returns(new User() { Id = signedInUserId }); var fakeMapper = Substitute.For <IMapper>(); var controller = new PlansController( fakeMapper, fakeMediator); controller.FakeAuthentication("some-identity-name"); //Act await controller.ProvisionPlan("some-plan-id"); //Assert await fakeMediator .Received(1) .Send(Arg.Is <ProvisionInstanceForUserCommand>(arg => arg.Plan.Id == "some-bundle-id" && arg.User.Id == signedInUserId)); }
public async Task ProvisionPlan_PlanAndNoPaymentMethodPresent_ReturnsValidationError() { //Arrange var signedInUserId = Guid.NewGuid(); var fakeMediator = Substitute.For <IMediator>(); fakeMediator .Send(Arg.Is <GetPlanByIdQuery>(arg => arg.Id == "some-plan-id")) .Returns(new Plan( "some-bundle-id", 1337, new Bundle(), Array.Empty <PullDogPlan>())); fakeMediator .Send(Arg.Is <EnsureUserForIdentityCommand>( args => args.IdentityName == "some-identity-name")) .Returns(new User() { Id = signedInUserId }); var mapper = AutoMapperFactory.CreateValidMapper(); var controller = new PlansController( mapper, fakeMediator); controller.FakeAuthentication("some-identity-name"); //Act var response = await controller.ProvisionPlan("some-plan-id") as BadRequestObjectResult; //Assert Assert.IsNotNull(response); var value = response.Value as ValidationProblemDetails; Assert.IsNotNull(value); Assert.AreEqual("NO_PAYMENT_METHOD", value.Type); }
public async Task ProvisionDemo_AuthenticatedUser_PassesAuthenticatedUserIdToProvisionDemoInstanceCommand() { //Arrange var fakeMediator = Substitute.For <IMediator>(); fakeMediator .Send(Arg.Any <GetDemoPlanQuery>()) .Returns(new Plan( "some-bundle-id", 1337, new Bundle(), Array.Empty <PullDogPlan>())); var fakeAuthenticatedUserId = Guid.NewGuid(); fakeMediator .Send(Arg.Is <EnsureUserForIdentityCommand>( args => args.IdentityName == "some-identity-name")) .Returns(new User() { Id = fakeAuthenticatedUserId }); var fakeMapper = Substitute.For <IMapper>(); var controller = new PlansController( fakeMapper, fakeMediator); controller.FakeAuthentication("some-identity-name"); //Act var result = await controller.ProvisionDemo(); //Assert result.AssertSuccessfulStatusCode(); await fakeMediator .Received(1) .Send(Arg.Is <ProvisionDemoInstanceCommand>(arg => arg.AuthenticatedUserId == fakeAuthenticatedUserId)); }
public async Task ProvisionPlan_PaymentMethodAndNoPlanPresent_ReturnsValidationError() { //Arrange var signedInUserId = Guid.NewGuid(); var fakeMediator = Substitute.For <IMediator>(); fakeMediator .Send(Arg.Is <GetActivePaymentMethodForUserQuery>(arg => arg.User.Id == signedInUserId)) .Returns(new PaymentMethod()); fakeMediator .Send(Arg.Is <EnsureUserForIdentityCommand>( args => args.IdentityName == "some-identity-name")) .Returns(new User() { Id = signedInUserId }); var mapper = AutoMapperFactory.CreateValidMapper(); var controller = new PlansController( mapper, fakeMediator); controller.FakeAuthentication("some-identity-name"); //Act var response = await controller.ProvisionPlan("some-plan-id") as BadRequestObjectResult; //Assert Assert.IsNotNull(response); var value = response.Value as ValidationProblemDetails; Assert.IsNotNull(value); Assert.AreEqual("PLAN_NOT_FOUND", value.Type); }
public void Initialize() { plans = new GenericRepository <Plan>(new FakeStorageContext <Plan>()); planCourses = new GenericRepository <PlanCourse>(new FakeStorageContext <PlanCourse>()); semesters = new GenericRepository <Semester>(new FakeStorageContext <Semester>()); users = new GenericRepository <User>(new FakeStorageContext <User>()); degreePrograms = new GenericRepository <DegreeProgram>(new FakeStorageContext <DegreeProgram>()); roles = new FakeRoles(); webSecurity = new FakeWebSecurity(roles, users); controller = new PlansController(plans, planCourses, semesters, users, degreePrograms, roles, webSecurity); degreePrograms.Add(new DegreeProgram() { ID = 1, degreeProgramName = "Degree Program 1" }); degreePrograms.Add(new DegreeProgram() { ID = 2, degreeProgramName = "Degree Program 2" }); users.Add(new User() { ID = 1, username = "******", realName = "Test User 1" }); users.Add(new User() { ID = 2, username = "******", realName = "Test User 2" }); users.Add(new User() { ID = 3, username = "******", realName = "Administrator" }); users.Add(new User() { ID = 4, username = "******", realName = "Advisor" }); semesters.Add(new Semester() { ID = 1, semesterTitle = "Fall", semesterYear = 2013, standard = true }); semesters.Add(new Semester() { ID = 2, semesterTitle = "Spring", semesterYear = 2014, standard = true }); plans.Add(new Plan() { ID = 1, planName = "Plan 1", degreeProgramID = 1, degreeProgram = degreePrograms.Find(1), userID = 1, //user = users.Find(1), semesterID = 1, semester = semesters.Find(1), planCourses = new Collection <PlanCourse>() }); plans.Add(new Plan() { ID = 2, planName = "Plan 2", degreeProgramID = 2, degreeProgram = degreePrograms.Find(2), userID = 2, //user = users.Find(2), semesterID = 2, semester = semesters.Find(2), planCourses = new Collection <PlanCourse>() }); }
private void FetchPlanConfigInfo() { var ctr = new PlansController(); var result = ctr.GetPlanConfiguration("Novihmnodnl"); }