예제 #1
0
        public void CreateTransicionTest2()
        {
            ITramitadorFactory target      = CreateITramitadorFactory(); // TODO: Initialize to an appropriate value
            IFlujograma        flujograma1 = target.CreateFlujograma();

            flujograma1.Nombre  = "Flujograma pruebas 1";
            flujograma1.Entidad = "Entidad pruebas 1";
            IFlujograma flujograma2 = target.CreateFlujograma();

            flujograma2.Nombre  = "Flujograma pruebas 2";
            flujograma2.Entidad = "Entidad pruebas 2";
            IEstado origen = target.CreateEstado(flujograma1); // TODO: Initialize to an appropriate value

            origen.Nombre = "Descorigen";
            origen.Estado = 1;
            IEstado destino = target.CreateEstado(flujograma2); // TODO: Initialize to an appropriate value

            destino.Nombre        = "DesDestino";
            destino.EsEstadoFinal = true;
            destino.Estado        = 2;
            ITransicion expected = null; // TODO: Initialize to an appropriate value
            ITransicion actual;

            try
            {
                actual = target.CreateTransicion(origen, destino);
                Assert.Fail("Debería haber elevado una excepcion Tramitador.NoMismoFlujogramaException");
            }
            catch (Tramitador.NoMismoFlujogramaException)
            {
            }
        }
예제 #2
0
        public void CreateTransicionTest()
        {
            ITramitadorFactory target     = CreateITramitadorFactory(); // TODO: Initialize to an appropriate value
            IFlujograma        flujograma = target.CreateFlujograma();

            flujograma.Nombre  = "Flujograma pruebas";
            flujograma.Entidad = "Entidad pruebas";
            IEstado origen = target.CreateEstado(flujograma); // TODO: Initialize to an appropriate value

            origen.Nombre = "Descorigen";
            origen.Estado = 1;
            IEstado destino = target.CreateEstado(flujograma); // TODO: Initialize to an appropriate value

            destino.Nombre        = "DesDestino";
            destino.EsEstadoFinal = true;
            destino.Estado        = 2;
            ITransicion expected = null; // TODO: Initialize to an appropriate value
            ITransicion actual;

            actual = target.CreateTransicion(origen, destino);
            Assert.IsNotNull(origen);
            Assert.IsNotNull(destino);
            Assert.IsNotNull(actual);
            Assert.IsNotNull(actual.Origen);
            Assert.IsNotNull(actual.Destino);
            Assert.AreEqual <IEstado>(actual.Origen, origen);
            Assert.AreEqual <IEstado>(actual.Destino, destino);
            Assert.AreEqual <int>(actual.Descripcion.Length, 0);
        }
예제 #3
0
        public IProceso ObtenerProcesoActual(IFlujograma iFlujograma, IIdentificable identificable)
        {
            XMLProceso proceso = null;

            string nombreFichero = string.Format("{0} {1}.{2}", identificable.Entidad, iFlujograma.Nombre, "xml");

            if (!File.Exists(nombreFichero))
            {
                proceso = new XMLProceso();

                proceso.EntidadIDentificable = identificable;
                proceso.FlujogramaDef        = iFlujograma;
            }
            else
            {
                XmlSerializer s = new XmlSerializer(typeof(XMLProceso));



                using (TextReader r = new StreamReader(nombreFichero))
                {
                    proceso = s.Deserialize(r) as XMLProceso;

                    r.Close();
                }

                proceso.EntidadIDentificable = identificable;
            }

            return(proceso);
        }
예제 #4
0
 public IEstado CreateEstado(IFlujograma flujograma)
 {
     return(new XMLEstado()
     {
         Flujograma = flujograma
     });
 }
예제 #5
0
        public static XMLFlujograma Transformar(IFlujograma flujograma)
        {
            XMLFlujograma sol = null;

            if (flujograma is XMLFlujograma)
            {
                sol = flujograma as XMLFlujograma;
            }
            else
            {
                sol         = new XMLFlujograma();
                sol.Entidad = flujograma.Entidad;

                XMLEstado[] estados = new XMLEstado[flujograma.Estados.Length];
                for (int i = 0; i < estados.Length; i++)
                {
                    estados[i] = XMLEstado.Tranformar(flujograma.Estados[i]);
                }
                sol.XMLEstados = estados;
                sol.IdEntidad  = flujograma.IdEntidad;
                sol.Nombre     = flujograma.Nombre;
                XMLTransicion[] transiciones = new XMLTransicion[flujograma.Transiciones.Length];
                for (int i = 0; i < transiciones.Length; i++)
                {
                    transiciones[i] = XMLTransicion.Transformar(flujograma.Transiciones[i]);
                }
                sol.XMLTransiciones = transiciones;
            }

            return(sol);
        }
예제 #6
0
        public void ObtenerEstadoTest()
        {
            ITramitadorFactory target     = CreateITramitadorFactory(); // TODO: Initialize to an appropriate value
            IFlujograma        flujograma = target.CreateFlujograma();  // TODO: Initialize to an appropriate value
            int     estado   = 0;                                       // TODO: Initialize to an appropriate value
            IEstado expected = null;                                    // TODO: Initialize to an appropriate value
            IEstado actual;

            actual = target.ObtenerEstado(flujograma, estado);
            Assert.IsNull(actual);
            //Assert.Inconclusive("Verify the correctness of this test method.");
        }
예제 #7
0
        public IEstado ObtenerEstado(IFlujograma flujograma, int estado)
        {
            IEstado sol = null;

            foreach (var est in flujograma.Estados)
            {
                if (est.Estado == estado)
                {
                    sol = est;
                    break;
                }
            }

            return sol;
        }
예제 #8
0
        public IEstado ObtenerEstado(IFlujograma flujograma, int estado)
        {
            IEstado sol = null;

            foreach (var est in flujograma.Estados)
            {
                if (est.Estado == estado)
                {
                    sol = est;
                    break;
                }
            }

            return(sol);
        }
예제 #9
0
        public void ObtenerEstadoTest2()
        {
            ITramitadorFactory target     = CreateITramitadorFactory(); // TODO: Initialize to an appropriate value
            IFlujograma        flujograma = target.CreateFlujograma();  // TODO: Initialize to an appropriate value
            int     estado   = 3;                                       // TODO: Initialize to an appropriate value
            IEstado expected = target.CreateEstado(flujograma);         // TODO: Initialize to an appropriate value

            expected.Estado = 3;
            flujograma.Add(expected);
            IEstado actual;

            actual = target.ObtenerEstado(flujograma, estado);
            Assert.IsNotNull(actual);
            Assert.AreEqual <IEstado>(expected, actual);
            //Assert.Inconclusive("Verify the correctness of this test method.");
        }
예제 #10
0
        public void CreateEstadoTest()
        {
            ITramitadorFactory target     = CreateITramitadorFactory(); // TODO: Initialize to an appropriate value
            IFlujograma        flujograma = target.CreateFlujograma();  // TODO: Initialize to an appropriate value

            flujograma.Nombre  = "Mi flujo de pruebas";
            flujograma.Entidad = "Mi entidad";
            IEstado expected = null; // TODO: Initialize to an appropriate value
            IEstado actual;

            actual = target.CreateEstado(flujograma);
            Assert.IsNotNull(actual);
            Assert.AreEqual <IFlujograma>(flujograma, actual.Flujograma);
            Assert.AreEqual <int>(actual.Nombre.Length, 0);
            //Assert.Inconclusive("Verify the correctness of this test method.");
        }
예제 #11
0
        public IFlujograma ObtenerFlujograma(string entidad, int idEntidad)
        {
            XmlSerializer s = new XmlSerializer(typeof(XMLFlujograma));

            IFlujograma solucion = null;

            using (TextReader r = new StreamReader(string.Format("{0}.xml", entidad)))
            {
                solucion = (XMLFlujograma)s.Deserialize(r);

                if (solucion.IdEntidad != idEntidad)
                {
                    solucion = null;
                }


                r.Close();
            }

            return(solucion);
        }
예제 #12
0
        static void Main(string[] args)
        {
            ITramitadorFactory fact = new XMLTramitadorFactory();

            IFlujograma flujo = fact.ObtenerFlujograma("Mi entidad", 0);

            List <IEstado> estados = new List <IEstado>(fact.ObtenerEstados(flujo));
            //IEstado estado=fact.ObtenerEstado(
            //IFlujograma flujo = fact.CreateFlujograma();

            //flujo.Nombre = "Mi flujo de pruebas";
            //flujo.Entidad = "Mi entidad";


            IEstado origen = fact.CreateEstado(flujo);


            //origen.Descripcion = "Estado inicial";


            //IEstado destino = fact.CreateEstado(flujo);

            //destino.Estado = 1;

            //destino.Descripcion = "Estado final";

            ITransicion tr = fact.CreateTransicion(flujo.Estados[2], flujo.Estados[3]);

            trami.OnAntesTransicion += new Tramitador.EnventArgs.DAntesTransicion(trami_OnAntesTransicion);

            trami.Realizar(tr, new MiObjeto());
            //flujo.Add(origen);

            //flujo.Add(destino);

            //flujo.Add(tr);

            //fact.Almacenar(flujo);
        }
예제 #13
0
        public bool Almacenar(IFlujograma flujograma)
        {
            bool solucion = false;

            if (flujograma is XMLFlujograma)
            {
                XMLFlujograma flujo = flujograma as XMLFlujograma;

                string nombreFichero = string.Format("{0}.xml", flujo.Entidad);

                // Serialization
                XmlSerializer s = new XmlSerializer(typeof(XMLFlujograma));

                using (TextWriter w = new StreamWriter(nombreFichero))
                {
                    s.Serialize(w, flujo);
                    w.Close();
                    solucion = true;
                }
            }

            return(solucion);
        }
예제 #14
0
        public bool Almacenar(IFlujograma flujograma)
        {
            bool solucion = false;

            if (flujograma is XMLFlujograma)
            {
                XMLFlujograma flujo = flujograma as XMLFlujograma;

                string nombreFichero = string.Format("{0}.xml", flujo.Entidad);

                // Serialization
                XmlSerializer s = new XmlSerializer(typeof(XMLFlujograma));

                using (TextWriter w = new StreamWriter(nombreFichero))
                {

                    s.Serialize(w, flujo);
                    w.Close();
                    solucion = true;
                }
            }

            return solucion;
        }
예제 #15
0
 public IEstado CreateEstado(IFlujograma flujograma)
 {
     return new XMLEstado() { Flujograma = flujograma };
 }
예제 #16
0
        public IProceso ObtenerProcesoActual(IFlujograma iFlujograma, IIdentificable identificable)
        {
            XMLProceso proceso = null;

            string nombreFichero = string.Format("{0} {1}.{2}", identificable.Entidad, iFlujograma.Nombre, "xml");

            if (!File.Exists(nombreFichero))
            {
                proceso = new XMLProceso();

                proceso.EntidadIDentificable = identificable;
                proceso.FlujogramaDef = iFlujograma;

            }
            else
            {
                XmlSerializer s = new XmlSerializer(typeof(XMLProceso));

                using (TextReader r = new StreamReader(nombreFichero))
                {
                    proceso = s.Deserialize(r) as XMLProceso;

                    r.Close();
                }

                proceso.EntidadIDentificable = identificable;
            }

            return proceso;
        }
예제 #17
0
 /// <summary>
 /// Obtiene un enumerado de las posibles transiciones definidas en un flujograma
 /// </summary>
 /// <param name="flujograma">Flujograma</param>
 /// <returns>Transiciones permitidas</returns>
 public IEnumerable <ITransicion> ObtenerTrancisionesPosibles(IFlujograma flujograma)
 {
     return(flujograma.Transiciones);
 }
예제 #18
0
 /// <summary>
 /// Obtiene un enumerado de las posibles transiciones definidas en un flujograma
 /// </summary>
 /// <param name="flujograma">Flujograma</param>
 /// <returns>Transiciones permitidas</returns>
 public IEnumerable<ITransicion> ObtenerTrancisionesPosibles(IFlujograma flujograma)
 {
     return flujograma.Transiciones;
 }
예제 #19
0
 public bool Equals(IFlujograma other)
 {
     return(IdEntidad == other.IdEntidad && Entidad.Equals(other.Entidad) && Nombre.Equals(other.Nombre));
 }
예제 #20
0
        public bool Equals(XMLFlujograma other)
        {
            IFlujograma otro = other;

            return(Equals(otro));
        }