• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright (c) 2008, http://www.snakeyaml.org
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.yaml.snakeyaml.javabeans;
17 
18 import junit.framework.TestCase;
19 
20 import org.yaml.snakeyaml.DumperOptions;
21 import org.yaml.snakeyaml.Yaml;
22 import org.yaml.snakeyaml.nodes.Tag;
23 import org.yaml.snakeyaml.representer.Representer;
24 
25 public class LongTest extends TestCase {
testLongFail()26     public void testLongFail() {
27         DumperOptions options = new DumperOptions();
28         options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
29         Yaml yaml = new Yaml(options);
30         Foo foo = new Foo();
31         String output = yaml.dump(foo);
32         // System.out.println(output);
33         try {
34             yaml.load(output);
35         } catch (Exception e) {
36             assertTrue(e.getMessage(), e.getMessage().contains("argument type mismatch"));
37         }
38     }
39 
40     public static class Foo {
41         private Long bar = Long.valueOf(42L);
42 
getBar()43         public Long getBar() {
44             return bar;
45         }
46 
setBar(Long bar)47         public void setBar(Long bar) {
48             this.bar = bar;
49         }
50     }
51 
testLongRepresenter()52     public void testLongRepresenter() {
53         DumperOptions options = new DumperOptions();
54         options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
55         Representer repr = new Representer();
56         repr.addClassTag(Long.class, new Tag("!!java.lang.Long"));
57         Yaml yaml = new Yaml(repr, options);
58 
59         Foo foo = new Foo();
60         String output = yaml.dump(foo);
61         // System.out.println(output);
62         Foo foo2 = (Foo) yaml.load(output);
63         assertEquals(new Long(42L), foo2.getBar());
64     }
65 
testLongConstructor()66     public void testLongConstructor() {
67         String doc = "!!org.yaml.snakeyaml.javabeans.LongTest$Foo\n\"bar\": !!int \"42\"";
68         // System.out.println(doc);
69         Yaml yaml = new Yaml();
70         Foo foo2 = (Foo) yaml.load(doc);
71         assertEquals(new Long(42L), foo2.getBar());
72     }
73 }
74