Exemplo n.º 1
0
        //[TestMethod]
        public void TestCambioEntidades()
        {
            string ficheroClavePublica = @"C:\Users\abox\Development\TFG-Angela\Claves\publica.key";
            string ficheroClavePrivada = @"C:\Users\abox\Development\TFG-Angela\Claves\privada.key";

            ServicioSeguridad servicioAPI    = new ServicioSeguridad(ficheroClavePrivada, null);
            ServicioSeguridad servicioWorker = new ServicioSeguridad(ficheroClavePublica, null);

            // > ENTIDAD PETICION INCIAL - SIN SEGURIDAD
            EntidadPeticion inicial = new EntidadPeticion()
            {
                Proyecto     = "Matrix",
                EstacionBase = "EB04",
                Sensor       = "SE00"
            };

            List <EntidadDatoBase> datos = new List <EntidadDatoBase>();
            DateTime stampInicial        = DateTime.UtcNow;
            Random   rnd = new Random();

            for (int i = 0; i < 20; i++)
            {
                datos.Add(new EntidadDatoBase()
                {
                    Humedad = rnd.Next(0, 11), Temperatura = rnd.Next(20, 32), Stamp = stampInicial.AddMinutes(i)
                });
            }

            inicial.Datos = datos;

            // > ENTIDAD PETICION CIFRADA - CON SEGURIDAD
            EntidadPeticionSegura cifrada = servicioWorker.ToEntidadPeticionSegura(inicial);

            ServicioSeguridad.LimpiaClaveRSA();
            // > ENTIDAD PETICION DESCIFRADA - DESCIFRADA CON SEGURIDAD
            EntidadPeticion descifrada = servicioAPI.ToEntidadPeticion(cifrada);

            // > ASSERTS
            Assert.AreEqual(inicial.Proyecto, descifrada.Proyecto);
            Assert.AreEqual(inicial.EstacionBase, descifrada.EstacionBase);
            Assert.AreEqual(inicial.Sensor, descifrada.Sensor);
            Assert.AreEqual(inicial.Datos.Count(), descifrada.Datos.Count());

            var datosIniciales   = inicial.Datos.OrderBy(_ => _.Stamp);
            var datosDescifrados = descifrada.Datos.OrderBy(_ => _.Stamp);

            for (int i = 0; i < datosIniciales.Count(); i++)
            {
                Assert.AreEqual(datosIniciales.ElementAt(i).Stamp.Ticks, datosDescifrados.ElementAt(i).Stamp.Ticks);
                Assert.AreEqual(datosIniciales.ElementAt(i).Humedad, datosDescifrados.ElementAt(i).Humedad);
                Assert.AreEqual(datosIniciales.ElementAt(i).Temperatura, datosDescifrados.ElementAt(i).Temperatura);
            }
        }