public void AtualizandoSubProjetoInvalido()
        {
            #region Inserindo novo projeto e novo subprojeto
            string subProjectParentName = "AtualizandoSubProjetoIdProjectParentNaoExiste";
            var    subProjectParent     = projectsDBSteps.InseriProjetoDB(subProjectParentName);

            string subProjetoChildName = "AtualizandoSubProjetoIdProjectParentNaoExisteChild";
            var    subProjectChild     = projectsDBSteps.InseriProjetoDB(subProjetoChildName);

            string inheritSubProjectParent = "1";
            projectsDBSteps.InseriSubProjetoDB(subProjectChild.ProjectId, subProjectParent.ProjectId, inheritSubProjectParent);
            #endregion

            #region Parameters
            int inheritParent = 0;

            //Resultado esperado
            string statusCodeExpected          = "BadRequest";
            string messageResponseDataExpected = "Project '" + subProjectParent.ProjectId + "' is not a subproject of '" + subProjectChild.ProjectId + "'";
            #endregion

            var response = UpdateSubProjectSteps.AtualizandoUmSubProjetoSemSucesso(subProjectChild.ProjectId, subProjectParent.ProjectId, subProjetoChildName, inheritParent, statusCodeExpected);

            var consultaSubProjetoDB = projectsDBSteps.ConsultaSubProjetoDB(subProjectChild.ProjectId, subProjectParent.ProjectId);

            Assert.AreEqual(messageResponseDataExpected, response.DataMessage, "O dado da mensagem não é o esperado.");

            projectsDBSteps.DeletaProjetoDB(consultaSubProjetoDB.ParentId);
            projectsDBSteps.DeletaProjetoDB(consultaSubProjetoDB.ChildId);
            projectsDBSteps.DeletaSubProjetoDB(consultaSubProjetoDB.ChildId, consultaSubProjetoDB.ParentId);
        }
        public void AtualizandoSubProjetoIdProjetoPaiNaoExiste()
        {
            #region Inserindo novo projeto e novo subprojeto
            string subProjectParentName = "AtualizandoSubProjetoIdProjectParentNaoExiste";
            var    subProjectParent     = projectsDBSteps.InseriProjetoDB(subProjectParentName);

            string subProjetoChildName = "AtualizandoSubProjetoIdProjectParentNaoExisteChild";
            var    subProjectChild     = projectsDBSteps.InseriProjetoDB(subProjetoChildName);

            string inheritSubProjectParent = "1";

            projectsDBSteps.InseriSubProjetoDB(subProjectChild.ProjectId, subProjectParent.ProjectId, inheritSubProjectParent);
            #endregion

            #region Parameters
            int projectParentId = 9999;
            int inheritParent   = 0;

            //Resultado esperado
            string statusCodeExpected          = "NotFound";
            string messageResponseDataExpected = "Project '" + projectParentId + "' not found";
            #endregion

            var response = UpdateSubProjectSteps.AtualizandoUmSubProjetoSemSucesso(projectParentId, subProjectChild.ProjectId, subProjetoChildName, inheritParent, statusCodeExpected);

            var consultaSubProjetoDB = projectsDBSteps.ConsultaSubProjetoDB(subProjectChild.ProjectId, subProjectParent.ProjectId);

            Assert.Multiple(() =>
            {
                Assert.AreEqual(consultaSubProjetoDB.InheritParent, Convert.ToInt32(inheritSubProjectParent), "Apesar de ter informado o id de um projeto pai que não existe o inherit parent foi atualizado.");
                Assert.AreEqual(messageResponseDataExpected, response.DataMessage, "O dado da mensagem não é o esperado.");
            });

            projectsDBSteps.DeletaProjetoDB(consultaSubProjetoDB.ParentId);
            projectsDBSteps.DeletaProjetoDB(consultaSubProjetoDB.ChildId);
            projectsDBSteps.DeletaSubProjetoDB(consultaSubProjetoDB.ChildId, consultaSubProjetoDB.ParentId);
        }