コード例 #1
0
        public void TiposItemController_AgregarTipoDeItemAProyecto()
        {
            HelperTestSistema.LimpiarArchivoBD();
            HelperTestSistema.IniciarServidor();

            //Creamos 1 proyecto1 directamente en la BD con dos tipos de item
            var tiposDeItemProyecto1 = HelperInstanciacionItems.GetTiposDeItem("Proyecto 1", 2);
            var proyecto             = HelperInstanciacionProyectos.GetProyectos(1)[0];

            proyecto.AgregarTipoDeItem(tiposDeItemProyecto1[0]);
            proyecto.AgregarTipoDeItem(tiposDeItemProyecto1[1]);

            //Guardamos los objetos en la BD
            using (IContextoProceso contexto = new ContextoProceso(HelperTestSistema.ObjectFactory))
            {
                contexto.ContenedorObjetos.Store(proyecto);
            }

            HelperTestSistema.ReiniciarConexion();



            //Creamos un tipo de item y lo agregamos al proyecto a traves de la API
            var controller = new TiposItemController(HelperTestSistema.ObjectFactory);

            //Obtenemos el 2 ya que tenemos que simular un nuevo tipo de item
            var nuevoTipoItem = HelperInstanciacionItems.GetTiposDeItem("Proyecto 1", 3)[2];

            controller.Post("P1", nuevoTipoItem);
            HelperTestSistema.ReiniciarConexion();

            //Obtenemos los datos directamente de la base de datos para verificarlos

            var proyectosBD = new List <Proyecto>();

            using (IContextoProceso contexto = new ContextoProceso(HelperTestSistema.ObjectFactory))
            {
                proyectosBD = (from Proyecto p in contexto.ContenedorObjetos select p).ToList();
            }


            HelperTestSistema.ReiniciarConexion();
            HelperTestSistema.FinalizarServidor();

            //Asserts
            Assert.Inconclusive("Refactorizar y terminar este test");
            //Debe haber un solo proyecto en la base de datos
            Assert.AreEqual(1, proyectosBD.ToList().Count);
            //El proyecto debe tener 3 tipos de item
            Assert.AreEqual(3, proyectosBD[0].TiposDeItem.Count());
            //El tercer tipo de item debe ser el que agregamos
            Assert.AreEqual("Proyecto 1-Tipo de item de prueba 3", proyectosBD[0].TiposDeItem.ToList()[2].Descripcion);
        }