Issue 84: implement ImplicitMode.NEVER_IMPLICIT_TYPES
diff --git a/src/main/java/org/yaml/snakeyaml/Yaml.java b/src/main/java/org/yaml/snakeyaml/Yaml.java
index 2a6cc31..252635f 100644
--- a/src/main/java/org/yaml/snakeyaml/Yaml.java
+++ b/src/main/java/org/yaml/snakeyaml/Yaml.java
@@ -41,6 +41,7 @@
 import org.yaml.snakeyaml.reader.UnicodeReader;

 import org.yaml.snakeyaml.representer.Representer;

 import org.yaml.snakeyaml.resolver.Resolver;

+import org.yaml.snakeyaml.resolver.Resolver.Mode;

 import org.yaml.snakeyaml.serializer.Serializer;

 

 /**

@@ -65,7 +66,8 @@
 

     public Yaml(LoaderOptions loaderOptions) {

         this(new Constructor(), loaderOptions, new Representer(), new DumperOptions(),

-                new Resolver());

+                loaderOptions.useImplicitTypes() ? new Resolver(Mode.STANDARD) : new Resolver(

+                        Mode.JAVABEAN));

     }

 

     /**

diff --git a/src/test/java/org/yaml/snakeyaml/LoaderOptionsTest.java b/src/test/java/org/yaml/snakeyaml/LoaderOptionsTest.java
index 4d902a3..4b3ba3c 100644
--- a/src/test/java/org/yaml/snakeyaml/LoaderOptionsTest.java
+++ b/src/test/java/org/yaml/snakeyaml/LoaderOptionsTest.java
@@ -49,7 +49,7 @@
         LoaderOptions options = new LoaderOptions();

         options.setImplicitMode(ImplicitMode.NEVER_IMPLICIT_TYPES);

         Yaml yaml = new Yaml(options);

-        // String number = (String) yaml.load("11");

-        // TODO assertEquals("Integer must not be recognised.", "11", number);

+        String number = (String) yaml.load("11");

+        assertEquals("Integer must not be recognised.", "11", number);

     }

 }

diff --git a/src/test/java/org/yaml/snakeyaml/ParallelTest.java b/src/test/java/org/yaml/snakeyaml/ParallelTest.java
index b6b71ae..a854e55 100644
--- a/src/test/java/org/yaml/snakeyaml/ParallelTest.java
+++ b/src/test/java/org/yaml/snakeyaml/ParallelTest.java
@@ -20,8 +20,6 @@
 

 import junit.framework.TestCase;

 

-import org.yaml.snakeyaml.constructor.Constructor;

-

 /**

  * Test that Yaml instances are independent and can be used in multiple threads.

  */

@@ -56,11 +54,11 @@
 

         public void run() {

             System.out.println("Started: " + id);

-            Yaml yaml = new Yaml(new Constructor(Invoice.class));

+            JavaBeanLoader<Invoice> loader = new JavaBeanLoader<Invoice>(Invoice.class);

             long time1 = System.nanoTime();

             int cycles = 200;

             for (int i = 0; i < cycles; i++) {

-                Invoice invoice = (Invoice) yaml.load(doc);

+                Invoice invoice = loader.load(doc);

                 assertNotNull(invoice);

             }

             long time2 = System.nanoTime();

diff --git a/src/test/java/org/yaml/snakeyaml/StressTest.java b/src/test/java/org/yaml/snakeyaml/StressTest.java
index ecdcc7d..2fdb8e3 100644
--- a/src/test/java/org/yaml/snakeyaml/StressTest.java
+++ b/src/test/java/org/yaml/snakeyaml/StressTest.java
@@ -36,20 +36,20 @@
         float duration = (time2 - time1) / 1000000;

         System.out.println("Init was " + duration + " ms.");

 

-        Yaml yaml = new Yaml(new Constructor(Invoice.class));

+        JavaBeanLoader<Invoice> loader = new JavaBeanLoader<Invoice>(Invoice.class);

         time1 = System.nanoTime();

-        yaml.load(doc);

+        loader.load(doc);

         time2 = System.nanoTime();

         duration = (time2 - time1) / 1000000;

         System.out.println("\nSingle load was " + duration + " ms.");

 

-        yaml = new Yaml(new Constructor(Invoice.class));

+        loader = new JavaBeanLoader<Invoice>(Invoice.class);

         int[] range = new int[] { 1000, 2000 };

         System.out.println("\nOne instance.");

         for (int number : range) {

             time1 = System.nanoTime();

             for (int i = 0; i < number; i++) {

-                yaml.load(doc);

+                loader.load(doc);

             }

             time2 = System.nanoTime();

             duration = ((time2 - time1) / 1000000) / (float) number;

@@ -65,8 +65,8 @@
         for (int number : range) {

             time1 = System.nanoTime();

             for (int i = 0; i < number; i++) {

-                yaml = new Yaml(new Constructor(Invoice.class));

-                yaml.load(doc);

+                loader = new JavaBeanLoader<Invoice>(Invoice.class);

+                loader.load(doc);

             }

             time2 = System.nanoTime();

             duration = ((time2 - time1) / 1000000) / (float) number;

diff --git a/src/test/java/org/yaml/snakeyaml/constructor/BeanConstructorTest.java b/src/test/java/org/yaml/snakeyaml/constructor/BeanConstructorTest.java
index d42539d..e129dbb 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/BeanConstructorTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/BeanConstructorTest.java
@@ -22,6 +22,7 @@
 import junit.framework.TestCase;

 

 import org.yaml.snakeyaml.DumperOptions;

+import org.yaml.snakeyaml.JavaBeanLoader;

 import org.yaml.snakeyaml.Util;

 import org.yaml.snakeyaml.Yaml;

 import org.yaml.snakeyaml.error.YAMLException;

@@ -214,16 +215,16 @@
         }

     }

 

-    public void testScalarContructorExceptionNoRegExpMode() throws IOException {

-        //TODO ???

-        Yaml yaml = new Yaml(new Constructor(ExceptionParent.class));

+    public void testScalarContructorExceptionNoImplicitTypesMode() throws IOException {

+        JavaBeanLoader<ExceptionParent> loader = new JavaBeanLoader<ExceptionParent>(

+                ExceptionParent.class);

         String document = "id: 123\nchild: 25";

         try {

-            yaml.load(document);

+            loader.load(document);

             fail("ExceptionParent should not be created.");

         } catch (Exception e) {

             assertTrue(e.getMessage(), e.getMessage().contains(

-                    "Can't construct a java object for scalar tag:yaml.org,2002:int"));

+                    "Can't construct a java object for scalar tag:yaml.org,2002:str"));

         }

     }