public void GetAllPlansTest()
        {
            SetupRequestRegistration <IGetAllPlansRequest>(parameters => parameters.ShouldBeEmpty());

            var factory = new PlanRequestBuilderFactory(Container.Object);
            var request = factory.GetAllPlans();

            request.ShouldNotBeNull();

            Container.Verify();
            Container.VerifyNoOtherCalls();
        }
        public void GetLabelsOfPlanTest()
        {
            SetupRequestRegistration <IGetLabelsOfPlanRequest>(
                parameters =>
            {
                parameters.Length.ShouldBe(2);

                ShouldContainInjectionProperty(parameters, RequestPropertyNames.ProjectKey, ProjectKey);
                ShouldContainInjectionProperty(parameters, RequestPropertyNames.PlanKey, PlanKey);
            });

            var factory = new PlanRequestBuilderFactory(Container.Object);
            var request = factory.GetLabelsOfPlan(ProjectKey, PlanKey);

            request.ShouldNotBeNull();

            Container.Verify();
            Container.VerifyNoOtherCalls();
        }
        public void UnfavouritePlanTest()
        {
            SetupRequestRegistration <IFavouritePlanCommand>(
                parameters =>
            {
                parameters.Length.ShouldBe(3);

                ShouldContainInjectionProperty(parameters, RequestPropertyNames.ProjectKey, ProjectKey);
                ShouldContainInjectionProperty(parameters, RequestPropertyNames.PlanKey, PlanKey);
                ShouldContainInjectionProperty(parameters, RequestPropertyNames.SetFavourite, false);
            });

            var factory = new PlanRequestBuilderFactory(Container.Object);
            var request = factory.UnfavouritePlan(ProjectKey, PlanKey);

            request.ShouldNotBeNull();

            Container.Verify();
            Container.VerifyNoOtherCalls();
        }
        public void CreateBranchTest()
        {
            SetupRequestRegistration <ICreatePlanCommand>(
                parameters =>
            {
                parameters.Length.ShouldBe(3);

                ShouldContainInjectionProperty(parameters, RequestPropertyNames.ProjectKey, ProjectKey);
                ShouldContainInjectionProperty(parameters, RequestPropertyNames.PlanKey, PlanKey);
                ShouldContainInjectionProperty(parameters, RequestPropertyNames.Branch, "BranchTest");
            });

            var factory = new PlanRequestBuilderFactory(Container.Object);

            Should.Throw <ArgumentException>(() => factory.CreateBranch(ProjectKey, PlanKey, "BranchTest/Broken"));

            var request = factory.CreateBranch(ProjectKey, PlanKey, "BranchTest");

            request.ShouldNotBeNull();

            Container.Verify();
            Container.VerifyNoOtherCalls();
        }