예제 #1
0
        public async void PlanController_CanDelete()
        {
            //Arrange
            var PlanDto = FixtureData.CreateTestPlanDTO();

            var PlanController = CreatePlanController(_testUserAccount.Id, _testUserAccount.EmailAddress.Address);
            var postResult     = PlanController.Post(PlanDto).Result as OkNegotiatedContentResult <PlanNoChildrenDTO>;

            Assert.NotNull(postResult);

            //Act
            var deleteResult = await PlanController.Delete(postResult.Content.Id) as OkNegotiatedContentResult <int>;

            Assert.NotNull(deleteResult);

            //Assert
            //After delete, if we get the same process template, it should be null
            var afterDeleteAttemptResult =
                await PlanController.Get(new PlansGetParams()
            {
                id = postResult.Content.Id
            }) as OkNegotiatedContentResult <PlanNoChildrenDTO>;

            Assert.IsNull(afterDeleteAttemptResult);
        }
예제 #2
0
        public async void ProcessController_Will_Return_All_When_Get_Invoked_With_Null()
        {
            //Arrange
            var PlanController = CreatePlanController(_testUserAccount.Id, _testUserAccount.EmailAddress.Address);

            for (var i = 0; i < 2; i++)
            {
                var PlanDto = FixtureData.CreateTestPlanDTO();

                // Commented out by yakov.gnusin:
                // Do we really need to provider DockyardAccountDO inside PlanDTO?
                // We do override DockyardAccountDO in PlanController.Post action.
                // switch (i)
                // {
                //     case 0:
                //         processTemplateDto.DockyardAccount = FixtureData.TestDockyardAccount1();
                //         break;
                //     case 1:
                //         processTemplateDto.DockyardAccount = FixtureData.TestDockyardAccount2();
                //         break;
                //     default:
                //         break;
                // }
                PlanController.Post(PlanDto);
            }
            //Act
            var actionResult = await PlanController.Get(new PlansGetParams()) as OkNegotiatedContentResult <IList <PlanNoChildrenDTO> >;

            //Assert
            Assert.NotNull(actionResult);
            Assert.AreEqual(2, actionResult.Content.Count());
        }
예제 #3
0
        public async Task <PlanDTO> CreateNewPlan(string planName = "")
        {
            var newPlan = FixtureData.CreateTestPlanDTO(planName);

            var planDTO = await _baseHubITest.HttpPostAsync <PlanNoChildrenDTO, PlanDTO>(_baseHubITest.GetHubApiBaseUrl() + "plans", newPlan);

            Assert.AreNotEqual(planDTO.Id, Guid.Empty, "New created Plan doesn't have a valid Id. Plan failed to be crated.");
            Assert.True(planDTO.SubPlans.Any(), "New created Plan doesn't have an existing sub plan.");

            return(await Task.FromResult(planDTO));
        }
예제 #4
0
        public async void ProcessController_CanEditProcess()
        {
            //Arrange
            //var processTemplateDto = FixtureData.CreateTestPlanDTO();
            var PlanDto        = FixtureData.CreateTestPlanDTO();
            var PlanController = CreatePlanController(_testUserAccount.Id, _testUserAccount.EmailAddress.Address);

            var tPT = FixtureData.TestPlanWithStartingSubPlans_ID0();

            using (var uow = ObjectFactory.GetInstance <IUnitOfWork>())
            {
                uow.PlanRepository.Add(tPT);
                uow.SaveChanges();
            }

            //Save First
            var postResult = PlanController.Post(PlanDto).Result as OkNegotiatedContentResult <PlanDTO>;

            Assert.NotNull(postResult);

            //Then Get
            var getResult = await PlanController.Get(new PlansGetParams()
            {
                id = postResult.Content.Id
            }) as OkNegotiatedContentResult <PlanNoChildrenDTO>;

            Assert.NotNull(getResult);

            //Then Edit
            var postEditNameValue = "EditedName";

            getResult.Content.Name = postEditNameValue;
            var editResult = PlanController.Post(getResult.Content).Result as OkNegotiatedContentResult <PlanDTO>;

            Assert.NotNull(editResult);

            //Then Get
            var postEditGetResult = await PlanController.Get(new PlansGetParams()
            {
                id = editResult.Content.Id
            }) as OkNegotiatedContentResult <PlanNoChildrenDTO>;

            Assert.NotNull(postEditGetResult);

            //Assert
            Assert.AreEqual(postEditGetResult.Content.Name, postEditNameValue);
            Assert.AreEqual(postEditGetResult.Content.Id, editResult.Content.Id);
            Assert.AreEqual(postEditGetResult.Content.Id, postResult.Content.Id);
        }
예제 #5
0
        public void PlanController_CreatesUntitledPlanIfNameNotSpecified()
        {
            //Arrange
            var PlanDto = FixtureData.CreateTestPlanDTO();

            PlanDto.Name = String.Empty;

            //Act
            var PlanController = CreatePlanController(_testUserAccount.Id, _testUserAccount.EmailAddress.Address);
            var response       = PlanController.Post(PlanDto).Result;

            //Assert
            var okResult = response as OkNegotiatedContentResult <PlanDTO>;

            Assert.IsTrue(okResult.Content.Name.Contains("Untitled Plan"));
        }
예제 #6
0
        public async void ProcessController_Will_Return_One_When_Get_Invoked_With_Id()
        {
            //Arrange
            var PlanController = CreatePlanController(_testUserAccount.Id, _testUserAccount.EmailAddress.Address);
            var PlanDto        = FixtureData.CreateTestPlanDTO();
            var resultPlan     = (PlanController.Post(PlanDto).Result as OkNegotiatedContentResult <PlanDTO>).Content;

            //Act
            var actionResult = await PlanController.Get(new PlansGetParams()
            {
                id = resultPlan.Id
            }) as OkNegotiatedContentResult <PlanNoChildrenDTO>;

            //Assert
            Assert.NotNull(actionResult);
            Assert.NotNull(actionResult.Content);
            Assert.AreEqual(resultPlan.Id, actionResult.Content.Id);
        }
예제 #7
0
        public void PlanController_CanAddNewPlan()
        {
            //Arrange
            var PlanDto = FixtureData.CreateTestPlanDTO();

            //Act
            var ptc      = CreatePlanController(_testUserAccount.Id, _testUserAccount.EmailAddress.Address);
            var response = ptc.Post(PlanDto).Result;


            //Assert
            var okResult = response as OkNegotiatedContentResult <PlanDTO>;

            Assert.NotNull(okResult);
            using (var uow = ObjectFactory.GetInstance <IUnitOfWork>())
            {
                Assert.AreEqual(0, ptc.ModelState.Count()); //must be no errors
                var ptdo = uow.PlanRepository.GetPlanQueryUncached().SingleOrDefault(pt => pt.Fr8Account.Id == _testUserAccount.Id && pt.Name == PlanDto.Name);
                Assert.IsNotNull(ptdo);
                Assert.AreEqual(PlanDto.Description, ptdo.Description);
            }
        }
예제 #8
0
        public void PlanController_Will_Create_Untitled_Plan_Incrementing_Name()
        {
            //Arrange
            var PlanDto = FixtureData.CreateTestPlanDTO();

            PlanDto.Name = String.Empty;

            var PlanDto1 = FixtureData.CreateTestPlanDTO();

            PlanDto1.Name = String.Empty;

            //Act
            var ptc       = CreatePlanController(_testUserAccount.Id, _testUserAccount.EmailAddress.Address);;
            var response  = ptc.Post(PlanDto).Result;
            var response1 = ptc.Post(PlanDto1).Result;

            //Assert
            var okResult  = response as OkNegotiatedContentResult <PlanDTO>;
            var okResult1 = response1 as OkNegotiatedContentResult <PlanDTO>;
            var result    = Int32.Parse(Regex.Match(okResult.Content.Name, @"\d+").Value);
            var result1   = Int32.Parse(Regex.Match(okResult1.Content.Name, @"\d+").Value);

            Assert.IsTrue(result1 - result == 1);
        }