Esempio n. 1
0
        public void InsertProductAndValidHash()
        {
            // arrange
            var hash = new HashEntityAgroSearch();


            var productHash = hash.HashHeader(typeof(Product));


            var productDict = new JsonDictionaryHeaders
            {
                index = 12,
                sug   = new Dictionary <int, string> {
                    { 1, "GENERIC_NAME" }, { 14, "SAG_CODE" }
                },
                str = new Dictionary <int, string> {
                    { 13, "GENERIC_CORRELATIVE" }
                },
                rel = new Dictionary <int, string> {
                    { 7, "INGREDIENT" }, { 32, "BRAND" }
                },
                enm = new Dictionary <int, string> {
                    { 0, "GENERIC_MEASURE_TYPE" }
                },
            };

            var hashTestDict = Mdm.Reflection.Cripto.ComputeSha256Hash(JsonConvert.SerializeObject(productDict));


            Assert.True(productHash.Equals(hashTestDict));
        }
        public void AddProductToSearch()
        {
            // assign
            // hash operaciones para asignar hash de cabecera y modelo
            var hash = new HashEntityAgroSearch();
            var agroSearchOperation = new AgroSearch <GeoPointTs>(MockHelper.BaseSearch(), new SearchQueries(), new ImplementMock(), hash);


            // producto input
            var prd = AgroInputData.Product1;


            // Convierte en objeto
            var mapper      = new MapperConfiguration(cfg => cfg.CreateMap <ProductInput, Product>());
            var mapperLocal = mapper.CreateMapper();
            var prdModel    = mapperLocal.Map <Product>(prd);



            // action
            agroSearchOperation.AddDocument(prdModel);

            // obtiene los elementos a guardar (entitySearchs)
            var jsonElement = JsonConvert.DeserializeObject <EntityMockSearch[]>(agroSearchOperation.Queried.First().Value.First());

            // hash de cabeceras de producto
            var hh = hash.HashHeader(prdModel.GetType());

            // hash del producto
            var hm = hash.HashModel(prdModel);


            // assert
            // Confirma que los hash confirmen el valor.
            Assert.True(jsonElement.FirstOrDefault().hm.Equals(hm) && jsonElement.FirstOrDefault().hh.Equals(hh));
        }