Exemplo n.º 1
0
 /// <summary>
 /// Adds one metadata to the result
 /// </summary>
 /// <param name="type">The type.</param>
 /// <param name="value">The value.</param>
 public void putMetadata(ResultMetadataType type, Object value)
 {
    if (ResultMetadata == null)
    {
       ResultMetadata = new Dictionary<ResultMetadataType, object>();
    }
    ResultMetadata[type] = value;
 }
Exemplo n.º 2
0
 /// <summary>
 /// Adds one metadata to the result
 /// </summary>
 /// <param name="type">The type.</param>
 /// <param name="value">The value.</param>
 public void putMetadata(ResultMetadataType type, Object value)
 {
     if (ResultMetadata == null)
     {
         ResultMetadata = new Hashtable();
     }
     ResultMetadata[type] = value;
 }
Exemplo n.º 3
0
 public void  putMetadata(ResultMetadataType type, System.Object value_Renamed)
 {
     if (resultMetadata == null)
     {
         resultMetadata = System.Collections.Hashtable.Synchronized(new System.Collections.Hashtable(3));
     }
     resultMetadata[type] = value_Renamed;
 }
        private bool decode(BinaryBitmap source,
                            float rotation,
                            String expectedText,
                            IDictionary <string, string> expectedMetadata,
                            bool tryHarder)
        {
            String suffix = String.Format(" ({0}rotation: {1})", tryHarder ? "try harder, " : "", (int)rotation);

            IDictionary <DecodeHintType, Object> hints = new Dictionary <DecodeHintType, Object>(this.hints);

            if (tryHarder)
            {
                hints[DecodeHintType.TRY_HARDER] = true;
            }

            // Try in 'pure' mode mostly to exercise PURE_BARCODE code paths for exceptions;
            // not expected to pass, generally
            Result result = null;

            try
            {
                var pureHints = new Dictionary <DecodeHintType, object>();
                pureHints[DecodeHintType.PURE_BARCODE] = true;
                result = barcodeReader.decode(source, pureHints);
            }
            catch (ReaderException)
            {
                // continue
            }

            var multiReader = barcodeReader as MultipleBarcodeReader;

            if (multiReader != null)
            {
                var expectedResults = expectedText.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
                var results         = multiReader.decodeMultiple(source, hints);
                if (results == null)
                {
                    throw new ReaderException();
                }

                if (expectedResults.Length != results.Length)
                {
                    Log.InfoFormat("Count mismatch: expected '{0}' results but got '{1}'",
                                   expectedResults.Length, results.Length);
                    throw new ReaderException();
                }
                foreach (var oneResult in results)
                {
                    if (expectedFormat != oneResult.BarcodeFormat)
                    {
                        Log.InfoFormat("Format mismatch: expected '{0}' but got '{1}'{2}",
                                       expectedFormat, oneResult.BarcodeFormat, suffix);
                        return(false);
                    }
                    String resultText = oneResult.Text;
                    bool   found      = false;
                    foreach (var expectedResult in expectedResults)
                    {
                        if (expectedResult.Equals(resultText))
                        {
                            found = true;
                            break;
                        }
                    }
                    if (!found)
                    {
                        Log.InfoFormat("Content was not expected: '{0}'", resultText);
                        return(false);
                    }
                }
                foreach (var expectedResult in expectedResults)
                {
                    bool found = false;
                    foreach (var oneResult in results)
                    {
                        String resultText = oneResult.Text;
                        if (expectedResult.Equals(resultText))
                        {
                            found = true;
                            break;
                        }
                    }
                    if (!found)
                    {
                        Log.InfoFormat("Content was expected but not found: '{0}'", expectedResult);
                        return(false);
                    }
                }
            }
            else
            {
                if (result == null)
                {
                    result = barcodeReader.decode(source, hints);
                }
                if (result == null)
                {
                    throw new ReaderException();
                }

                if (expectedFormat != result.BarcodeFormat)
                {
                    Log.InfoFormat("Format mismatch: expected '{0}' but got '{1}'{2}",
                                   expectedFormat, result.BarcodeFormat, suffix);
                    return(false);
                }

                String resultText = result.Text;
                if (!expectedText.Equals(resultText))
                {
                    Log.InfoFormat("Content mismatch: expected '{0}' but got '{1}'{2}",
                                   expectedText, resultText, suffix);
                    return(false);
                }

                IDictionary <ResultMetadataType, object> resultMetadata = result.ResultMetadata;
                foreach (var metadatum in expectedMetadata)
                {
                    ResultMetadataType key;
                    ResultMetadataType.TryParse(metadatum.Key, out key);
                    Object expectedValue = metadatum.Value;
                    Object actualValue   = resultMetadata == null ? null : resultMetadata[key];
                    if (!expectedValue.Equals(actualValue))
                    {
                        Log.InfoFormat("Metadata mismatch for key '{0}': expected '{1}' but got '{2}'",
                                       key, expectedValue, actualValue);
                        return(false);
                    }
                }
            }

            return(true);
        }
Exemplo n.º 5
0
        private bool decode(BinaryBitmap source,
                            float rotation,
                            String expectedText,
                            IDictionary <string, string> expectedMetadata,
                            bool tryHarder)
        {
            String suffix = String.Format(" ({0}rotation: {1})", tryHarder ? "try harder, " : "", (int)rotation);

            IDictionary <DecodeHintType, Object> hints = new Dictionary <DecodeHintType, Object>();

            if (tryHarder)
            {
                hints[DecodeHintType.TRY_HARDER] = true;
            }

            var multiReader = barcodeReader as MultipleBarcodeReader;

            if (multiReader != null)
            {
                var expectedResults = expectedText.Split(new [] { Environment.NewLine }, StringSplitOptions.None);
                var results         = multiReader.decodeMultiple(source, hints);
                if (results == null)
                {
                    throw ReaderException.Instance;
                }

                if (expectedResults.Length != results.Length)
                {
                    Console.WriteLine("Count mismatch: expected '{0}' results but got '{1}'\n",
                                      expectedResults.Length, results.Length);
                    throw ReaderException.Instance;
                }
                foreach (var result in results)
                {
                    if (expectedFormat != result.BarcodeFormat)
                    {
                        Console.WriteLine("Format mismatch: expected '{0}' but got '{1}'{2}\n",
                                          expectedFormat, result.BarcodeFormat, suffix);
                        return(false);
                    }
                    String resultText = result.Text;
                    bool   found      = false;
                    foreach (var expectedResult in expectedResults)
                    {
                        if (expectedResult.Equals(resultText))
                        {
                            found = true;
                            break;
                        }
                    }
                    if (!found)
                    {
                        Console.WriteLine("Content was not expected: '{0}'\n", resultText);
                        return(false);
                    }
                }
                foreach (var expectedResult in expectedResults)
                {
                    bool found = false;
                    foreach (var result in results)
                    {
                        String resultText = result.Text;
                        if (expectedResult.Equals(resultText))
                        {
                            found = true;
                            break;
                        }
                    }
                    if (!found)
                    {
                        Console.WriteLine("Content was expected but not found: '{0}'\n", expectedResult);
                        return(false);
                    }
                }
            }
            else
            {
                Result result = barcodeReader.decode(source, hints);
                if (result == null)
                {
                    throw ReaderException.Instance;
                }

                if (expectedFormat != result.BarcodeFormat)
                {
                    Console.WriteLine("Format mismatch: expected '{0}' but got '{1}'{2}\n",
                                      expectedFormat, result.BarcodeFormat, suffix);
                    return(false);
                }

                String resultText = result.Text;
                if (!expectedText.Equals(resultText))
                {
                    Console.WriteLine("Content mismatch: expected '{0}' but got '{1}'{2}\n",
                                      expectedText, resultText, suffix);
                    return(false);
                }

                IDictionary <ResultMetadataType, object> resultMetadata = result.ResultMetadata;
                foreach (var metadatum in expectedMetadata)
                {
                    ResultMetadataType key;
                    ResultMetadataType.TryParse(metadatum.Key, out key);
                    Object expectedValue = metadatum.Value;
                    Object actualValue   = resultMetadata == null ? null : resultMetadata[key];
                    if (!expectedValue.Equals(actualValue))
                    {
                        Console.WriteLine("Metadata mismatch for key '{0}': expected '{1}' but got '{2}'\n",
                                          key, expectedValue, actualValue);
                        return(false);
                    }
                }
            }

            return(true);
        }
Exemplo n.º 6
0
		public void  putMetadata(ResultMetadataType type, System.Object value_Renamed)
		{
			if (resultMetadata == null)
			{
				resultMetadata = System.Collections.Hashtable.Synchronized(new System.Collections.Hashtable(3));
			}
			resultMetadata[type] = value_Renamed;
		}