aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/yaml
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/org/yaml')
-rw-r--r--src/test/java/org/yaml/snakeyaml/Address.java29
-rw-r--r--src/test/java/org/yaml/snakeyaml/BinaryBean.java49
-rw-r--r--src/test/java/org/yaml/snakeyaml/BinaryJavaBeanTest.java47
-rw-r--r--src/test/java/org/yaml/snakeyaml/Chapter2_1Test.java165
-rw-r--r--src/test/java/org/yaml/snakeyaml/Chapter2_2Test.java173
-rw-r--r--src/test/java/org/yaml/snakeyaml/Chapter2_3Test.java226
-rw-r--r--src/test/java/org/yaml/snakeyaml/Chapter2_4Test.java274
-rw-r--r--src/test/java/org/yaml/snakeyaml/Chapter2_5Test.java85
-rw-r--r--src/test/java/org/yaml/snakeyaml/CollectionWithBeanYamlTest.java114
-rw-r--r--src/test/java/org/yaml/snakeyaml/DumperOptionsTest.java947
-rw-r--r--src/test/java/org/yaml/snakeyaml/EnumBean.java61
-rw-r--r--src/test/java/org/yaml/snakeyaml/EnumBeanGen.java47
-rw-r--r--src/test/java/org/yaml/snakeyaml/EnumBeanGenTest.java100
-rw-r--r--src/test/java/org/yaml/snakeyaml/EnumTest.java353
-rw-r--r--src/test/java/org/yaml/snakeyaml/Example2_24Test.java439
-rw-r--r--src/test/java/org/yaml/snakeyaml/Example2_27Test.java44
-rw-r--r--src/test/java/org/yaml/snakeyaml/ExclamationTagTest.java40
-rw-r--r--src/test/java/org/yaml/snakeyaml/InputOutputExceptionTest.java107
-rw-r--r--src/test/java/org/yaml/snakeyaml/Invoice.java37
-rw-r--r--src/test/java/org/yaml/snakeyaml/JavaBeanTimeStampTest.java89
-rw-r--r--src/test/java/org/yaml/snakeyaml/JavaBeanWithNullValues.java186
-rw-r--r--src/test/java/org/yaml/snakeyaml/JavaBeanWithNullValuesTest.java313
-rw-r--r--src/test/java/org/yaml/snakeyaml/JavaBeanWithSqlTimestamp.java49
-rw-r--r--src/test/java/org/yaml/snakeyaml/Person.java27
-rw-r--r--src/test/java/org/yaml/snakeyaml/Product.java37
-rw-r--r--src/test/java/org/yaml/snakeyaml/PropertyUtilsSharingTest.java91
-rw-r--r--src/test/java/org/yaml/snakeyaml/Suit.java22
-rw-r--r--src/test/java/org/yaml/snakeyaml/TypeDescriptionTest.java45
-rw-r--r--src/test/java/org/yaml/snakeyaml/Util.java83
-rw-r--r--src/test/java/org/yaml/snakeyaml/YamlComposeTest.java86
-rw-r--r--src/test/java/org/yaml/snakeyaml/YamlDocument.java108
-rw-r--r--src/test/java/org/yaml/snakeyaml/YamlParseTest.java119
-rw-r--r--src/test/java/org/yaml/snakeyaml/YamlStream.java139
-rw-r--r--src/test/java/org/yaml/snakeyaml/YamlTest.java107
-rw-r--r--src/test/java/org/yaml/snakeyaml/array/BooleanArr.java48
-rw-r--r--src/test/java/org/yaml/snakeyaml/array/ByteArr.java47
-rw-r--r--src/test/java/org/yaml/snakeyaml/array/CharArr.java48
-rw-r--r--src/test/java/org/yaml/snakeyaml/array/DoubleArr.java48
-rw-r--r--src/test/java/org/yaml/snakeyaml/array/FloatArr.java48
-rw-r--r--src/test/java/org/yaml/snakeyaml/array/IntArr.java48
-rw-r--r--src/test/java/org/yaml/snakeyaml/array/LongArr.java48
-rw-r--r--src/test/java/org/yaml/snakeyaml/array/PrimitiveArrayTest.java428
-rw-r--r--src/test/java/org/yaml/snakeyaml/array/ShortArr.java48
-rw-r--r--src/test/java/org/yaml/snakeyaml/comment/ComposerWithCommentEnabledTest.java592
-rw-r--r--src/test/java/org/yaml/snakeyaml/comment/EmitterWithCommentEnabledTest.java498
-rw-r--r--src/test/java/org/yaml/snakeyaml/comment/ParserWithCommentEnabledTest.java404
-rw-r--r--src/test/java/org/yaml/snakeyaml/comment/ProblematicYamlTest.java231
-rw-r--r--src/test/java/org/yaml/snakeyaml/comment/ScannerWithCommentEnabledTest.java301
-rw-r--r--src/test/java/org/yaml/snakeyaml/comment/SerializerWithCommentEnabledTest.java419
-rw-r--r--src/test/java/org/yaml/snakeyaml/composer/ComposerImplTest.java108
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/AbstractConstructTest.java81
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/ArrayTagsTest.java158
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/AtomicJavaBean.java67
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/BeanConstructorTest.java459
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/BigDecimalBeanConstructorTest.java77
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/BigDecimalJavaBean.java49
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/Car.java47
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/Child1.java35
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/ClassTagsTest.java148
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/ConstructorMappingTest.java81
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/ConstructorSequenceTest.java113
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/ConstructorTest.java185
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/CustomClassLoaderConstructorTest.java118
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/FilterClassesConstructorTest.java100
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/ImplicitTagsTest.java243
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/IncompleteBeanConstructorTest.java79
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/IncompleteJavaBean.java55
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/MockDateBeanConstructorTest.java93
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/MyCar.java61
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/MyWheel.java91
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/Parent1.java49
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/Person.java98
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/PrefixConstructorTest.java200
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/SafeConstructorTest.java63
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/TestBean.java115
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/TestBean1.java355
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/TypeSafeCollectionsTest.java184
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/VectorTest.java60
-rw-r--r--src/test/java/org/yaml/snakeyaml/constructor/Wheel.java77
-rw-r--r--src/test/java/org/yaml/snakeyaml/emitter/EmitterMultiLineTest.java171
-rw-r--r--src/test/java/org/yaml/snakeyaml/emitter/EmitterTest.java447
-rw-r--r--src/test/java/org/yaml/snakeyaml/emitter/EmptyStringOutputTest.java50
-rw-r--r--src/test/java/org/yaml/snakeyaml/emitter/EventConstructor.java178
-rw-r--r--src/test/java/org/yaml/snakeyaml/emitter/template/MyBean.java129
-rw-r--r--src/test/java/org/yaml/snakeyaml/emitter/template/VelocityTest.java105
-rw-r--r--src/test/java/org/yaml/snakeyaml/env/ApplicationProperties.java31
-rw-r--r--src/test/java/org/yaml/snakeyaml/env/EnvFormatTest.java117
-rw-r--r--src/test/java/org/yaml/snakeyaml/env/EnvLombokTest.java40
-rw-r--r--src/test/java/org/yaml/snakeyaml/env/EnvScalarConstructorTest.java37
-rw-r--r--src/test/java/org/yaml/snakeyaml/env/EnvTagTest.java34
-rw-r--r--src/test/java/org/yaml/snakeyaml/env/EnvVariableTest.java101
-rw-r--r--src/test/java/org/yaml/snakeyaml/error/MarkTest.java74
-rw-r--r--src/test/java/org/yaml/snakeyaml/error/MarkedYAMLExceptionTest.java88
-rw-r--r--src/test/java/org/yaml/snakeyaml/error/WrappedExceptionsTest.java47
-rw-r--r--src/test/java/org/yaml/snakeyaml/events/ScalarEventTest.java45
-rw-r--r--src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Box.java87
-rw-r--r--src/test/java/org/yaml/snakeyaml/extensions/compactnotation/CompactConstructorErrorsTest.java241
-rw-r--r--src/test/java/org/yaml/snakeyaml/extensions/compactnotation/CompactConstructorExampleTest.java316
-rw-r--r--src/test/java/org/yaml/snakeyaml/extensions/compactnotation/CompactConstructorTest.java180
-rw-r--r--src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Container.java111
-rw-r--r--src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Item.java61
-rw-r--r--src/test/java/org/yaml/snakeyaml/extensions/compactnotation/ManyListsTable.java61
-rw-r--r--src/test/java/org/yaml/snakeyaml/extensions/compactnotation/PackageCompactConstructorTest.java64
-rw-r--r--src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Row.java115
-rw-r--r--src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Table.java69
-rw-r--r--src/test/java/org/yaml/snakeyaml/extensions/compactnotation/TableCompactConstructor.java24
-rw-r--r--src/test/java/org/yaml/snakeyaml/generics/AbstractAnimal.java37
-rw-r--r--src/test/java/org/yaml/snakeyaml/generics/Bird.java33
-rw-r--r--src/test/java/org/yaml/snakeyaml/generics/BirdTest.java70
-rw-r--r--src/test/java/org/yaml/snakeyaml/generics/GenericArrayTypeTest.java160
-rw-r--r--src/test/java/org/yaml/snakeyaml/generics/Nest.java33
-rw-r--r--src/test/java/org/yaml/snakeyaml/generics/ObjectValues.java60
-rw-r--r--src/test/java/org/yaml/snakeyaml/generics/ObjectValuesTest.java136
-rw-r--r--src/test/java/org/yaml/snakeyaml/generics/ObjectValuesWithParam.java60
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/Animal.java21
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/Code.java65
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/Code2.java71
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/Code3.java69
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/Code4.java74
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/Color.java65
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/Dog.java41
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/DogImmutableTest.java41
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/HouseBean.java47
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/ImmutablesRepresenter.java93
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/MoreImmutablesTest.java107
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/Point.java73
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/Point2.java59
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/Point3d.java51
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/Shape.java91
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/ShapeImmutableTest.java259
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/SuperColor.java71
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/primitives/BunchOfPrimitives.java97
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/primitives/ImmutablePrimitivesRepresenter.java45
-rw-r--r--src/test/java/org/yaml/snakeyaml/immutable/primitives/ImmutablePrimitivesTest.java72
-rw-r--r--src/test/java/org/yaml/snakeyaml/introspector/PropertyTest.java156
-rw-r--r--src/test/java/org/yaml/snakeyaml/introspector/TestAnnotation.java26
-rw-r--r--src/test/java/org/yaml/snakeyaml/introspector/TestBean.java45
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue10/BasicDumpTest.java162
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue10/DataSource.java33
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue10/DataSources.java33
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue10/JDBCDataSource.java75
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue100/Data.java91
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue100/DataBean.java61
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue100/DataMore.java57
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue100/MergeJavaBeanTest.java353
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue100/MergeMapsTest.java46
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue102/BigDataLoadTest.java110
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue102/DataBean.java61
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue103/FakeMap.java180
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue103/MergingTest.java202
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue11/YamlMapTest.java196
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue111/LongUriTest.java62
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue112/MyClass.java41
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue112/MyCompositeObject.java33
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue112/ParameterisedTypeLoadingTestCase.java83
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue114/PreserveTypeTest.java118
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue115/IssueBean.java35
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue115/ParameterizedBean.java49
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue115/ParameterizedJavaBeanTest.java80
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue115/ParameterizedTest.java77
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue116/HiddenSpecial.java35
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue116/NoFieldsTest.java92
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue124/Bean124.java85
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue124/DumpTest.java128
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue127/Bean.java49
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue127/NullAliasTest.java68
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue132/ScalarEventTagTest.java69
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue133/StackOverflowTest.java102
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue136/TabInScalarTest.java73
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue137/SupplementaryCharactersTest.java141
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue138/ReaderExceptionTest.java37
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue139/MergeValueTest.java100
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue139/UniqueKeyTest.java76
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue141/ConfigurableTimezoneTest.java52
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue142/DerivedMapTest.java70
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue143/GenericMapTest.java57
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue144/BeanData.java61
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue144/FloatPropertyTest.java50
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue145/AbstractThing.java33
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue145/CompleteThing.java26
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue145/LineNumberInExceptionTest.java77
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue147/PrintableTest.java34
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue148/PrintableUnicodeTest.java293
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue149/ComponentBean.java47
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue149/GlobalDirectivesTest.java119
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue150/Car.java56
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue150/Wheel.java38
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue150/YamlLoadAsIssueTest.java191
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue151/EscapedUnicodeTest.java41
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue154/MissingPropertyTest.java121
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue154/TestBean.java21
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue155/BinaryTest.java40
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue163/LinearScalaTralingTest.java52
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue171/ClassWithGenericMap.java24
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue171/CustomRepresenter.java39
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue171/GenericExtendsObjectTest.java38
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue173/RecursiveAnchorTest.java70
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue176/SingleQuoteTest.java78
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue177/PointBean.java31
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue177/PointBeanTest.java51
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue177/Points.java29
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue182/InfinityFloatBean.java23
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue182/InfinityFloatBeanTest.java39
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue183/NumberBean.java21
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue183/NumberBeanTest.java171
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue188/ErrorMessageTest.java37
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue192/EqualsSignTest.java30
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue193/AbstractBeanTest.java55
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue193/BeanA.java20
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue193/BeanA1.java46
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue193/TestYaml.java77
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue203/ContentIdentifier.java22
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue203/ContentIdentifierImpl.java36
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue203/DataBean.java47
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue203/GenericTest.java34
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue203/Identifiable.java23
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue205/AppleSmileTest.java43
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue207/OctalNumberTest.java53
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue24/LineNumberTest.java42
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue29/BigJavaBean.java213
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue29/FlexibleScalarStyleTest.java166
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue29/FlexibleScalarStylesInJavaBeanTest.java219
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue306/BeanWithId.java47
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue306/UuidSupportTest.java129
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue307/Blocks.java26
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue307/CustomerBean.java28
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue307/OrderAnnotation.java26
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue307/OrderBean.java60
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue307/OrderTest.java104
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue310/Option.java38
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue310/Person.java58
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue310/PropertyWithPrivateCostructorTest.java83
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue311/BeanWithEnum.java76
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue311/BooleanEnum.java59
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue311/BooleanEnumTest.java163
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue318/ContextClassLoaderTest.java189
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue322_382/PropertyWithoutGetterTest.java111
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue322_382/PublicFooWithPublicFields.java34
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue332/Data.java92
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue332/DataTest.java51
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue335/JavaLangObjectTest.java40
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue337/DuplicateKeyTest.java176
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue341/MultiBean.java41
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue341/MultiRepresenter.java31
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue341/MultiRepresenterTest.java28
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue348/MultiLevelImmutableTest.java52
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue348/model/Bar.java29
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue348/model/Baz.java30
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue348/model/Foo.java29
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue349/YamlBase64BinaryTest.java40
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue351/MergedOrderTest.java45
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue354/PunctuationInTheBeginningTest.java38
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue358/UnexpectedIndentTest.java74
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue373/ModelMapIntegerBigdecimal.java32
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue373/UnknownRepresenterTest.java45
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue374/NumberAsJavaBeanPropertyTest.java86
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue375/EmptyDocumentTest.java43
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue377/BillionLaughsAttackTest.java89
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue377/ReferencesTest.java131
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue377/ReferencesWithListsTest.java73
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue38/Bean.java82
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue38/BigNumberIdTest.java56
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue383/RepresenterConfigurationTest.java197
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue386/DuplicateKeysOrderTest.java42
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue387/YamlExecuteProcessContextTest.java72
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue395/ReportPositionForDuplicateKeyTest.java42
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue397/ColonInFlowContextInListTest.java39
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue397/ColonInFlowContextInMapTest.java43
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue397/ColonInFlowContextInSetTest.java39
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue40/DogFoodBean.java39
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue40/DogFoodBeanTest.java103
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue409/DumpEnumAsJavabeanPropertyTest.java48
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue416/IndentWithIndicatorTest.java95
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue423/DaylightSavingsTest.java53
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue426/NullDuplicateKeyTest.java41
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue431/FlexSimleKeyTest.java79
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue437/BinaryRoundTripTest.java89
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue440/LiteralWithTrailingSpacesTest.java53
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue449/LeadingZeroStringTest.java40
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue46/FileTest.java73
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue467/MergeTest.java33
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue468/NonAsciiAnchorTest.java65
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue47/IncompleteBean.java49
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue47/ReadOnlyPropertiesTest.java83
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue474/ByteParseTest.java44
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue478/Location.java45
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue478/PropertyOrderTest.java48
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue479/CredentialAppConfig.java36
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue479/DemoProperty.java29
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue479/MergeKeyDeepMergeTest.java78
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue479/Mysql.java63
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue48/Bean.java92
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue48/SkipJavaBeanPropertyTest.java73
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue480/AnchorUnicodeTest.java92
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue481/DumpAnchorTest.java44
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue484/Base60FloatTest.java26
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue485/RestrictAliasNamesTest.java30
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue49/CalendarBean.java49
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue49/CalendarTest.java197
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue50/SnakeyamlTest.java95
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue500/FailIteratorOnlyWhenErrorFoundTest.java40
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue506/ParseStringsThatAlmostLookLikeInts.java106
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue51/UnicodeStyleTest.java51
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue512/ListWithCommentTest.java32
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue517/TrailingTabTest.java33
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue52/LineBreakDooubleQuotedTest.java77
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue520/ChompingTest.java31
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue522/JavaBeanWithPropertiesLikeBooleanValuesTest.java51
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue525/FuzzyStackOverflowTest.java52
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue526/Fuzzy47027Test.java53
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue527/Fuzzy47047Test.java41
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue529/Fuzzy47028Test.java52
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue530/Fuzzy47039Test.java34
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue531/Fuzzy47081Test.java84
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue543/Fuzzer50355Test.java42
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue544/DoubleQuoteTest.java97
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue547/ByteLimitTest.java37
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue55/Blog.java44
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue55/FieldListTest.java67
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue55/JavaBeanListTest.java67
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue55/Post.java59
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue55/YamlFieldAccessCollectionTest.java135
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue56/CodeBean.java95
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue56/PerlTest.java180
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue58/NullValueDumperTest.java79
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue60/CustomOrderTest.java105
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue60/SkipBean.java144
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue60/SkipBeanTest.java133
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue61/GenericListBeanTest.java179
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue61/GenericMapBeanTest.java180
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue64/MethodDesc.java58
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue64/ParameterizedTypeTest.java105
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue67/NonAsciiCharsInClassNameTest.java160
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue68/NonAsciiCharacterTest.java92
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue72/CollectionTest.java116
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue73/ArrayListTest.java87
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue73/Blog.java106
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue73/DumpSetAsSequenceExampleTest.java130
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue73/Post.java85
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue73/RecursiveSetTest.java185
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue73/RecursiveSortedSetTest.java197
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue73/SetAsSequenceTest.java209
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue73/TreeSetTest.java93
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue74/ArrayBeanTest.java264
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue8/Person.java100
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue8/PrattleRepresenterTest.java88
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue82/PropOrderInfluenceWhenAliasedInGenericCollectionTest.java543
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue94/ChangeRuntimeClassTest.java160
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue94/Entity.java47
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue94/EntityLoadingProxy.java29
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue95/ArrayInGenericCollectionTest.java248
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue97/Blog.java35
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue97/Post.java42
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue97/YamlSortedSetTest.java147
-rw-r--r--src/test/java/org/yaml/snakeyaml/issues/issue99/YamlBase64Test.java214
-rw-r--r--src/test/java/org/yaml/snakeyaml/javabeans/ConstructEmptyBeanTest.java208
-rw-r--r--src/test/java/org/yaml/snakeyaml/javabeans/Door.java93
-rw-r--r--src/test/java/org/yaml/snakeyaml/javabeans/FrontDoor.java45
-rw-r--r--src/test/java/org/yaml/snakeyaml/javabeans/House.java89
-rw-r--r--src/test/java/org/yaml/snakeyaml/javabeans/HouseTest.java239
-rw-r--r--src/test/java/org/yaml/snakeyaml/javabeans/LongTest.java99
-rw-r--r--src/test/java/org/yaml/snakeyaml/javabeans/Room.java77
-rw-r--r--src/test/java/org/yaml/snakeyaml/javabeans/Shape.java20
-rw-r--r--src/test/java/org/yaml/snakeyaml/javabeans/StringArrayTest.java97
-rw-r--r--src/test/java/org/yaml/snakeyaml/javabeans/Triangle.java39
-rw-r--r--src/test/java/org/yaml/snakeyaml/javabeans/TriangleBean.java55
-rw-r--r--src/test/java/org/yaml/snakeyaml/javabeans/TriangleBeanTest.java101
-rw-r--r--src/test/java/org/yaml/snakeyaml/json/JsonTest.java137
-rw-r--r--src/test/java/org/yaml/snakeyaml/lowlevel/LowLevelApiTest.java81
-rw-r--r--src/test/java/org/yaml/snakeyaml/nodes/MappingNodeTest.java33
-rw-r--r--src/test/java/org/yaml/snakeyaml/nodes/NodeTest.java66
-rw-r--r--src/test/java/org/yaml/snakeyaml/nodes/NodeTupleTest.java69
-rw-r--r--src/test/java/org/yaml/snakeyaml/nodes/ScalarNodeTest.java47
-rw-r--r--src/test/java/org/yaml/snakeyaml/nodes/SequenceNodeTest.java44
-rw-r--r--src/test/java/org/yaml/snakeyaml/nodes/TagTest.java148
-rw-r--r--src/test/java/org/yaml/snakeyaml/nodes/TagsTest.java77
-rw-r--r--src/test/java/org/yaml/snakeyaml/parser/ParserImplTest.java136
-rw-r--r--src/test/java/org/yaml/snakeyaml/parser/VersionTagsTupleTest.java28
-rw-r--r--src/test/java/org/yaml/snakeyaml/partialconstruct/DeveloperBean.java49
-rw-r--r--src/test/java/org/yaml/snakeyaml/partialconstruct/FragmentComposer.java63
-rw-r--r--src/test/java/org/yaml/snakeyaml/partialconstruct/FragmentComposerTest.java44
-rw-r--r--src/test/java/org/yaml/snakeyaml/reader/IoReaderTest.java58
-rw-r--r--src/test/java/org/yaml/snakeyaml/reader/ReaderBomTest.java185
-rw-r--r--src/test/java/org/yaml/snakeyaml/reader/ReaderStringTest.java159
-rw-r--r--src/test/java/org/yaml/snakeyaml/reader/WindowsTest.java53
-rw-r--r--src/test/java/org/yaml/snakeyaml/recursive/AbstractHuman.java135
-rw-r--r--src/test/java/org/yaml/snakeyaml/recursive/Human.java94
-rw-r--r--src/test/java/org/yaml/snakeyaml/recursive/Human2.java94
-rw-r--r--src/test/java/org/yaml/snakeyaml/recursive/Human3.java94
-rw-r--r--src/test/java/org/yaml/snakeyaml/recursive/HumanTest.java1241
-rw-r--r--src/test/java/org/yaml/snakeyaml/recursive/Human_WithArrayOfChildrenTest.java290
-rw-r--r--src/test/java/org/yaml/snakeyaml/recursive/generics/AbstractHumanGen.java163
-rw-r--r--src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGen.java25
-rw-r--r--src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGen2.java24
-rw-r--r--src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGen3.java24
-rw-r--r--src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGenericsTest.java903
-rw-r--r--src/test/java/org/yaml/snakeyaml/representer/DumpStackTraceTest.java91
-rw-r--r--src/test/java/org/yaml/snakeyaml/representer/FilterPropertyToDumpTest.java184
-rw-r--r--src/test/java/org/yaml/snakeyaml/representer/RepresentFieldTest.java102
-rw-r--r--src/test/java/org/yaml/snakeyaml/representer/RepresentIterableTest.java90
-rw-r--r--src/test/java/org/yaml/snakeyaml/representer/RepresentTest.java124
-rw-r--r--src/test/java/org/yaml/snakeyaml/representer/RepresenterTest.java353
-rw-r--r--src/test/java/org/yaml/snakeyaml/representer/SafeRepresenterTest.java209
-rw-r--r--src/test/java/org/yaml/snakeyaml/representer/WrongJavaBean.java49
-rw-r--r--src/test/java/org/yaml/snakeyaml/resolver/ImplicitResolverTest.java116
-rw-r--r--src/test/java/org/yaml/snakeyaml/resolver/ResolverTest.java227
-rw-r--r--src/test/java/org/yaml/snakeyaml/resolver/ResolverTupleTest.java28
-rw-r--r--src/test/java/org/yaml/snakeyaml/ruby/RubyTest.java174
-rw-r--r--src/test/java/org/yaml/snakeyaml/ruby/Sub1.java61
-rw-r--r--src/test/java/org/yaml/snakeyaml/ruby/Sub2.java61
-rw-r--r--src/test/java/org/yaml/snakeyaml/ruby/TestObject.java47
-rw-r--r--src/test/java/org/yaml/snakeyaml/scanner/ConstantTest.java40
-rw-r--r--src/test/java/org/yaml/snakeyaml/scanner/ScannerImplTest.java81
-rw-r--r--src/test/java/org/yaml/snakeyaml/scanner/SimpleKeyTest.java26
-rw-r--r--src/test/java/org/yaml/snakeyaml/serialization/TransientValuesTest.java83
-rw-r--r--src/test/java/org/yaml/snakeyaml/serializer/AnchorGeneratorTest.java91
-rw-r--r--src/test/java/org/yaml/snakeyaml/serializer/SerializerTest.java139
-rw-r--r--src/test/java/org/yaml/snakeyaml/stress/ParallelTest.java95
-rw-r--r--src/test/java/org/yaml/snakeyaml/stress/StressEmitterTest.java115
-rw-r--r--src/test/java/org/yaml/snakeyaml/stress/StressTest.java130
-rw-r--r--src/test/java/org/yaml/snakeyaml/tokens/AliasTokenTest.java47
-rw-r--r--src/test/java/org/yaml/snakeyaml/tokens/AnchorTokenTest.java35
-rw-r--r--src/test/java/org/yaml/snakeyaml/tokens/BlockEndTokenTest.java35
-rw-r--r--src/test/java/org/yaml/snakeyaml/tokens/BlockEntryTokenTest.java29
-rw-r--r--src/test/java/org/yaml/snakeyaml/tokens/BlockSequenceStartTokenTest.java29
-rw-r--r--src/test/java/org/yaml/snakeyaml/tokens/DirectiveTokenTest.java74
-rw-r--r--src/test/java/org/yaml/snakeyaml/tokens/DocumentEndTokenTest.java29
-rw-r--r--src/test/java/org/yaml/snakeyaml/tokens/DocumentStartTokenTest.java29
-rw-r--r--src/test/java/org/yaml/snakeyaml/tokens/FlowEntryTokenTest.java29
-rw-r--r--src/test/java/org/yaml/snakeyaml/tokens/FlowMappingStartTokenTest.java29
-rw-r--r--src/test/java/org/yaml/snakeyaml/tokens/FlowSequenceStartTokenTest.java29
-rw-r--r--src/test/java/org/yaml/snakeyaml/tokens/StreamStartTokenTest.java29
-rw-r--r--src/test/java/org/yaml/snakeyaml/tokens/TagTokenTest.java77
-rw-r--r--src/test/java/org/yaml/snakeyaml/tokens/TokenTest.java46
-rw-r--r--src/test/java/org/yaml/snakeyaml/types/AbstractTest.java59
-rw-r--r--src/test/java/org/yaml/snakeyaml/types/BinaryTagTest.java110
-rw-r--r--src/test/java/org/yaml/snakeyaml/types/BoolTagTest.java199
-rw-r--r--src/test/java/org/yaml/snakeyaml/types/FloatTagTest.java108
-rw-r--r--src/test/java/org/yaml/snakeyaml/types/IntTagTest.java88
-rw-r--r--src/test/java/org/yaml/snakeyaml/types/MapTagTest.java103
-rw-r--r--src/test/java/org/yaml/snakeyaml/types/MergeTagTest.java105
-rw-r--r--src/test/java/org/yaml/snakeyaml/types/NullTagTest.java231
-rw-r--r--src/test/java/org/yaml/snakeyaml/types/OmapTagTest.java57
-rw-r--r--src/test/java/org/yaml/snakeyaml/types/PairsTagTest.java99
-rw-r--r--src/test/java/org/yaml/snakeyaml/types/SeqTagTest.java139
-rw-r--r--src/test/java/org/yaml/snakeyaml/types/SetTagTest.java65
-rw-r--r--src/test/java/org/yaml/snakeyaml/types/StrTagTest.java299
-rw-r--r--src/test/java/org/yaml/snakeyaml/types/TimestampTagTest.java241
-rw-r--r--src/test/java/org/yaml/snakeyaml/types/ValueTagTest.java78
-rw-r--r--src/test/java/org/yaml/snakeyaml/util/ArrayStackTest.java36
-rw-r--r--src/test/java/org/yaml/snakeyaml/util/ArrayUtilsTest.java69
-rw-r--r--src/test/java/org/yaml/snakeyaml/util/UriEncoderTest.java65
452 files changed, 26485 insertions, 19339 deletions
diff --git a/src/test/java/org/yaml/snakeyaml/Address.java b/src/test/java/org/yaml/snakeyaml/Address.java
index 0413a174..cb8a9c00 100644
--- a/src/test/java/org/yaml/snakeyaml/Address.java
+++ b/src/test/java/org/yaml/snakeyaml/Address.java
@@ -1,23 +1,22 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
public class Address {
- public String lines;
- public String city;
- public String state;
- public String postal;
-} \ No newline at end of file
+
+ public String lines;
+ public String city;
+ public String state;
+ public String postal;
+}
diff --git a/src/test/java/org/yaml/snakeyaml/BinaryBean.java b/src/test/java/org/yaml/snakeyaml/BinaryBean.java
index 589e800e..23fdc19d 100644
--- a/src/test/java/org/yaml/snakeyaml/BinaryBean.java
+++ b/src/test/java/org/yaml/snakeyaml/BinaryBean.java
@@ -1,38 +1,37 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
public class BinaryBean {
- byte[] data;
- int id;
- public byte[] getData() {
- return data;
- }
+ byte[] data;
+ int id;
- public void setData(byte[] data) {
- this.data = data;
- }
+ public byte[] getData() {
+ return data;
+ }
- public int getId() {
- return id;
- }
+ public void setData(byte[] data) {
+ this.data = data;
+ }
- public void setId(int id) {
- this.id = id;
- }
+ public int getId() {
+ return id;
+ }
-} \ No newline at end of file
+ public void setId(int id) {
+ this.id = id;
+ }
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/BinaryJavaBeanTest.java b/src/test/java/org/yaml/snakeyaml/BinaryJavaBeanTest.java
index 77815fb0..7d873a03 100644
--- a/src/test/java/org/yaml/snakeyaml/BinaryJavaBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/BinaryJavaBeanTest.java
@@ -1,35 +1,34 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import junit.framework.TestCase;
public class BinaryJavaBeanTest extends TestCase {
- public void testBeanTest() {
- BinaryBean bean = new BinaryBean();
- bean.setId(1);
- byte[] bytes = new byte[] { 1, 7, 9, 31, 65 };
- bean.setData(bytes);
- Yaml yaml = new Yaml();
- String output = yaml.dump(bean);
- String etalon = "!!org.yaml.snakeyaml.BinaryBean\ndata: !!binary |-\n AQcJH0E=\nid: 1\n";
- assertEquals(etalon, output);
- // load
- BinaryBean bean2 = (BinaryBean) yaml.load(output);
- assertEquals(1, bean2.getId());
- assertEquals(new String(bytes), new String(bean2.getData()));
- }
+
+ public void testBeanTest() {
+ BinaryBean bean = new BinaryBean();
+ bean.setId(1);
+ byte[] bytes = new byte[] {1, 7, 9, 31, 65};
+ bean.setData(bytes);
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(bean);
+ String etalon = "!!org.yaml.snakeyaml.BinaryBean\ndata: !!binary |-\n AQcJH0E=\nid: 1\n";
+ assertEquals(etalon, output);
+ // load
+ BinaryBean bean2 = yaml.load(output);
+ assertEquals(1, bean2.getId());
+ assertEquals(new String(bytes), new String(bean2.getData()));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/Chapter2_1Test.java b/src/test/java/org/yaml/snakeyaml/Chapter2_1Test.java
index 6bc4d1c9..0575bb62 100644
--- a/src/test/java/org/yaml/snakeyaml/Chapter2_1Test.java
+++ b/src/test/java/org/yaml/snakeyaml/Chapter2_1Test.java
@@ -1,107 +1,102 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import java.util.List;
import java.util.Map;
-
import junit.framework.TestCase;
/**
* Test Chapter 2.1 from the YAML specification
- *
- * @see <a href="http://yaml.org/spec/1.1/"></a>
*/
public class Chapter2_1Test extends TestCase {
- @SuppressWarnings("unchecked")
- public void testExample_2_1() {
- YamlDocument document = new YamlDocument("example2_1.yaml");
- List<String> list = (List<String>) document.getNativeData();
- assertEquals(3, list.size());
- assertEquals("Mark McGwire", list.get(0));
- assertEquals("Sammy Sosa", list.get(1));
- assertEquals("Ken Griffey", list.get(2));
- assertEquals("[Mark McGwire, Sammy Sosa, Ken Griffey]\n", document.getPresentation());
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_1() {
+ YamlDocument document = new YamlDocument("example2_1.yaml");
+ List<String> list = (List<String>) document.getNativeData();
+ assertEquals(3, list.size());
+ assertEquals("Mark McGwire", list.get(0));
+ assertEquals("Sammy Sosa", list.get(1));
+ assertEquals("Ken Griffey", list.get(2));
+ assertEquals("[Mark McGwire, Sammy Sosa, Ken Griffey]\n", document.getPresentation());
+ }
- @SuppressWarnings("unchecked")
- public void testExample_2_2() {
- YamlDocument document = new YamlDocument("example2_2.yaml");
- Map<String, Object> map = (Map<String, Object>) document.getNativeData();
- assertEquals(3, map.size());
- assertEquals("Expect 65 to be a Integer", Integer.class, map.get("hr").getClass());
- assertEquals(new Integer(65), map.get("hr"));
- assertEquals(new Float(0.278), new Float("0.278"));
- assertEquals("Expect 0.278 to be a Float", Double.class, map.get("avg").getClass());
- assertEquals(new Double(0.278), map.get("avg"));
- assertEquals("Expect 147 to be an Integer", Integer.class, map.get("rbi").getClass());
- assertEquals(new Integer(147), map.get("rbi"));
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_2() {
+ YamlDocument document = new YamlDocument("example2_2.yaml");
+ Map<String, Object> map = (Map<String, Object>) document.getNativeData();
+ assertEquals(3, map.size());
+ assertEquals("Expect 65 to be a Integer", Integer.class, map.get("hr").getClass());
+ assertEquals(Integer.valueOf(65), map.get("hr"));
+ assertEquals(Float.valueOf(0.278f), Float.valueOf("0.278"));
+ assertEquals("Expect 0.278 to be a Float", Double.class, map.get("avg").getClass());
+ assertEquals(Double.valueOf(0.278), map.get("avg"));
+ assertEquals("Expect 147 to be an Integer", Integer.class, map.get("rbi").getClass());
+ assertEquals(Integer.valueOf(147), map.get("rbi"));
+ }
- @SuppressWarnings("unchecked")
- public void testExample_2_3() {
- YamlDocument document = new YamlDocument("example2_3.yaml");
- Map<String, List<String>> map = (Map<String, List<String>>) document.getNativeData();
- assertEquals(2, map.size());
- List<String> list1 = map.get("american");
- assertEquals(3, list1.size());
- assertEquals("Boston Red Sox", list1.get(0));
- assertEquals("Detroit Tigers", list1.get(1));
- assertEquals("New York Yankees", list1.get(2));
- List<String> list2 = map.get("national");
- assertEquals(3, list2.size());
- assertEquals("New York Mets", list2.get(0));
- assertEquals("Chicago Cubs", list2.get(1));
- assertEquals("Atlanta Braves", list2.get(2));
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_3() {
+ YamlDocument document = new YamlDocument("example2_3.yaml");
+ Map<String, List<String>> map = (Map<String, List<String>>) document.getNativeData();
+ assertEquals(2, map.size());
+ List<String> list1 = map.get("american");
+ assertEquals(3, list1.size());
+ assertEquals("Boston Red Sox", list1.get(0));
+ assertEquals("Detroit Tigers", list1.get(1));
+ assertEquals("New York Yankees", list1.get(2));
+ List<String> list2 = map.get("national");
+ assertEquals(3, list2.size());
+ assertEquals("New York Mets", list2.get(0));
+ assertEquals("Chicago Cubs", list2.get(1));
+ assertEquals("Atlanta Braves", list2.get(2));
+ }
- @SuppressWarnings("unchecked")
- public void testExample_2_4() {
- YamlDocument document = new YamlDocument("example2_4.yaml");
- List<Map<String, Object>> list = (List<Map<String, Object>>) document.getNativeData();
- assertEquals(2, list.size());
- Map<String, Object> map1 = list.get(0);
- assertEquals(3, map1.size());
- assertEquals("Mark McGwire", map1.get("name"));
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_4() {
+ YamlDocument document = new YamlDocument("example2_4.yaml");
+ List<Map<String, Object>> list = (List<Map<String, Object>>) document.getNativeData();
+ assertEquals(2, list.size());
+ Map<String, Object> map1 = list.get(0);
+ assertEquals(3, map1.size());
+ assertEquals("Mark McGwire", map1.get("name"));
+ }
- @SuppressWarnings("unchecked")
- public void testExample_2_5() {
- YamlDocument document = new YamlDocument("example2_5.yaml");
- List<List<Object>> list = (List<List<Object>>) document.getNativeData();
- assertEquals(3, list.size());
- List<Object> list1 = list.get(0);
- assertEquals(3, list1.size());
- assertEquals("name", list1.get(0));
- assertEquals("hr", list1.get(1));
- assertEquals("avg", list1.get(2));
- assertEquals(3, list.get(1).size());
- assertEquals(3, list.get(2).size());
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_5() {
+ YamlDocument document = new YamlDocument("example2_5.yaml");
+ List<List<Object>> list = (List<List<Object>>) document.getNativeData();
+ assertEquals(3, list.size());
+ List<Object> list1 = list.get(0);
+ assertEquals(3, list1.size());
+ assertEquals("name", list1.get(0));
+ assertEquals("hr", list1.get(1));
+ assertEquals("avg", list1.get(2));
+ assertEquals(3, list.get(1).size());
+ assertEquals(3, list.get(2).size());
+ }
- @SuppressWarnings("unchecked")
- public void testExample_2_6() {
- YamlDocument document = new YamlDocument("example2_6.yaml");
- Map<String, Map<String, Object>> map = (Map<String, Map<String, Object>>) document
- .getNativeData();
- assertEquals(2, map.size());
- Map<String, Object> map1 = map.get("Mark McGwire");
- assertEquals(2, map1.size());
- Map<String, Object> map2 = map.get("Sammy Sosa");
- assertEquals(2, map2.size());
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_6() {
+ YamlDocument document = new YamlDocument("example2_6.yaml");
+ Map<String, Map<String, Object>> map =
+ (Map<String, Map<String, Object>>) document.getNativeData();
+ assertEquals(2, map.size());
+ Map<String, Object> map1 = map.get("Mark McGwire");
+ assertEquals(2, map1.size());
+ Map<String, Object> map2 = map.get("Sammy Sosa");
+ assertEquals(2, map2.size());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/Chapter2_2Test.java b/src/test/java/org/yaml/snakeyaml/Chapter2_2Test.java
index 88b7ec9d..3c56ca74 100644
--- a/src/test/java/org/yaml/snakeyaml/Chapter2_2Test.java
+++ b/src/test/java/org/yaml/snakeyaml/Chapter2_2Test.java
@@ -1,112 +1,107 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import java.util.List;
import java.util.Map;
-
import junit.framework.TestCase;
/**
* Test Chapter 2.2 from the YAML specification
- *
- * @see <a href="http://yaml.org/spec/1.1/"></a>
*/
public class Chapter2_2Test extends TestCase {
- @SuppressWarnings("unchecked")
- public void testExample_2_7() {
- YamlStream resource = new YamlStream("example2_7.yaml");
- List<Object> list = (List<Object>) resource.getNativeData();
- assertEquals(2, list.size());
- List<String> list1 = (List<String>) list.get(0);
- assertEquals(3, list1.size());
- assertEquals("Mark McGwire", list1.get(0));
- assertEquals("Sammy Sosa", list1.get(1));
- assertEquals("Ken Griffey", list1.get(2));
- List<String> list2 = (List<String>) list.get(1);
- assertEquals(2, list2.size());
- assertEquals("Chicago Cubs", list2.get(0));
- assertEquals("St Louis Cardinals", list2.get(1));
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_7() {
+ YamlStream resource = new YamlStream("example2_7.yaml");
+ List<Object> list = resource.getNativeData();
+ assertEquals(2, list.size());
+ List<String> list1 = (List<String>) list.get(0);
+ assertEquals(3, list1.size());
+ assertEquals("Mark McGwire", list1.get(0));
+ assertEquals("Sammy Sosa", list1.get(1));
+ assertEquals("Ken Griffey", list1.get(2));
+ List<String> list2 = (List<String>) list.get(1);
+ assertEquals(2, list2.size());
+ assertEquals("Chicago Cubs", list2.get(0));
+ assertEquals("St Louis Cardinals", list2.get(1));
+ }
- @SuppressWarnings("unchecked")
- public void testExample_2_8() {
- YamlStream resource = new YamlStream("example2_8.yaml");
- List<Object> list = (List<Object>) resource.getNativeData();
- assertEquals(2, list.size());
- Map<String, String> map1 = (Map<String, String>) list.get(0);
- assertEquals(3, map1.size());
- assertEquals(new Integer(72200), map1.get("time"));
- assertEquals("Sammy Sosa", map1.get("player"));
- assertEquals("strike (miss)", map1.get("action"));
- Map<String, String> map2 = (Map<String, String>) list.get(1);
- assertEquals(3, map2.size());
- assertEquals(new Integer(72227), map2.get("time"));
- assertEquals("Sammy Sosa", map2.get("player"));
- assertEquals("grand slam", map2.get("action"));
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_8() {
+ YamlStream resource = new YamlStream("example2_8.yaml");
+ List<Object> list = resource.getNativeData();
+ assertEquals(2, list.size());
+ Map<String, String> map1 = (Map<String, String>) list.get(0);
+ assertEquals(3, map1.size());
+ assertEquals(Integer.valueOf(72200), map1.get("time"));
+ assertEquals("Sammy Sosa", map1.get("player"));
+ assertEquals("strike (miss)", map1.get("action"));
+ Map<String, String> map2 = (Map<String, String>) list.get(1);
+ assertEquals(3, map2.size());
+ assertEquals(Integer.valueOf(72227), map2.get("time"));
+ assertEquals("Sammy Sosa", map2.get("player"));
+ assertEquals("grand slam", map2.get("action"));
+ }
- @SuppressWarnings("unchecked")
- public void testExample_2_9() {
- YamlDocument document = new YamlDocument("example2_9.yaml");
- Map<String, Object> map = (Map<String, Object>) document.getNativeData();
- assertEquals(map.toString(), 2, map.size());
- List<String> list1 = (List<String>) map.get("hr");
- assertEquals(2, list1.size());
- assertEquals("Mark McGwire", list1.get(0));
- assertEquals("Sammy Sosa", list1.get(1));
- List<String> list2 = (List<String>) map.get("rbi");
- assertEquals(2, list2.size());
- assertEquals("Sammy Sosa", list2.get(0));
- assertEquals("Ken Griffey", list2.get(1));
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_9() {
+ YamlDocument document = new YamlDocument("example2_9.yaml");
+ Map<String, Object> map = (Map<String, Object>) document.getNativeData();
+ assertEquals(map.toString(), 2, map.size());
+ List<String> list1 = (List<String>) map.get("hr");
+ assertEquals(2, list1.size());
+ assertEquals("Mark McGwire", list1.get(0));
+ assertEquals("Sammy Sosa", list1.get(1));
+ List<String> list2 = (List<String>) map.get("rbi");
+ assertEquals(2, list2.size());
+ assertEquals("Sammy Sosa", list2.get(0));
+ assertEquals("Ken Griffey", list2.get(1));
+ }
- @SuppressWarnings("unchecked")
- public void testExample_2_10() {
- YamlDocument document = new YamlDocument("example2_10.yaml");
- Map<String, Object> map = (Map<String, Object>) document.getNativeData();
- assertEquals("Examples 2.9 and 2.10 must be identical.",
- new YamlDocument("example2_9.yaml").getNativeData(), map);
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_10() {
+ YamlDocument document = new YamlDocument("example2_10.yaml");
+ Map<String, Object> map = (Map<String, Object>) document.getNativeData();
+ assertEquals("Examples 2.9 and 2.10 must be identical.",
+ new YamlDocument("example2_9.yaml").getNativeData(), map);
+ }
- @SuppressWarnings("unchecked")
- public void testExample_2_11() {
- YamlDocument document = new YamlDocument("example2_11.yaml");
- Map<Object, Object> map = (Map<Object, Object>) document.getNativeData();
- assertEquals(2, map.size());
- for (Object key : map.keySet()) {
- List<String> list = (List<String>) key;
- assertEquals(2, list.size());
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_11() {
+ YamlDocument document = new YamlDocument("example2_11.yaml");
+ Map<Object, Object> map = (Map<Object, Object>) document.getNativeData();
+ assertEquals(2, map.size());
+ for (Object key : map.keySet()) {
+ List<String> list = (List<String>) key;
+ assertEquals(2, list.size());
}
+ }
- public void testExample_2_12() {
- YamlDocument document = new YamlDocument("example2_12.yaml");
- @SuppressWarnings("unchecked")
- List<Map<Object, Object>> list = (List<Map<Object, Object>>) document.getNativeData();
- assertEquals(3, list.size());
- Map<Object, Object> map1 = (Map<Object, Object>) list.get(0);
- assertEquals(2, map1.size());
- assertEquals("Super Hoop", map1.get("item"));
- Map<Object, Object> map2 = (Map<Object, Object>) list.get(1);
- assertEquals(2, map2.size());
- assertEquals("Basketball", map2.get("item"));
- Map<Object, Object> map3 = (Map<Object, Object>) list.get(2);
- assertEquals(2, map3.size());
- assertEquals("Big Shoes", map3.get("item"));
- }
+ public void testExample_2_12() {
+ YamlDocument document = new YamlDocument("example2_12.yaml");
+ @SuppressWarnings("unchecked")
+ List<Map<Object, Object>> list = (List<Map<Object, Object>>) document.getNativeData();
+ assertEquals(3, list.size());
+ Map<Object, Object> map1 = list.get(0);
+ assertEquals(2, map1.size());
+ assertEquals("Super Hoop", map1.get("item"));
+ Map<Object, Object> map2 = list.get(1);
+ assertEquals(2, map2.size());
+ assertEquals("Basketball", map2.get("item"));
+ Map<Object, Object> map3 = list.get(2);
+ assertEquals(2, map3.size());
+ assertEquals("Big Shoes", map3.get("item"));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/Chapter2_3Test.java b/src/test/java/org/yaml/snakeyaml/Chapter2_3Test.java
index b4e671d3..5ea2e09c 100644
--- a/src/test/java/org/yaml/snakeyaml/Chapter2_3Test.java
+++ b/src/test/java/org/yaml/snakeyaml/Chapter2_3Test.java
@@ -1,134 +1,128 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import java.io.InputStream;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions.ScalarStyle;
/**
* Test Chapter 2.3 from the YAML specification
- *
- * @see <a href="http://yaml.org/spec/1.1/"></a>
*/
public class Chapter2_3Test extends TestCase {
- public void testExample_2_13() {
- YamlDocument document = new YamlDocument("example2_13.yaml");
- String data = (String) document.getNativeData();
- assertEquals("\\//||\\/||\n// || ||__\n", data);
- }
-
- public void testExample_2_14() {
- YamlDocument document = new YamlDocument("example2_14.yaml");
- String data = (String) document.getNativeData();
- assertEquals("Mark McGwire's year was crippled by a knee injury.", data);
- }
-
- public void testExample_2_15() {
- String etalon = "Sammy Sosa completed another fine season with great stats.\n\n 63 Home Runs\n 0.288 Batting Average\n\nWhat a year!\n";
- InputStream input = YamlDocument.class.getClassLoader().getResourceAsStream(
- YamlDocument.ROOT + "example2_15.yaml");
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(ScalarStyle.FOLDED);
- Yaml yaml = new Yaml(options);
- String data = (String) yaml.load(input);
- assertEquals(etalon, data);
- //
- String dumped = yaml.dump(data);
- String etalonDumped = Util.getLocalResource("specification/example2_15_dumped.yaml");
- assertEquals(etalonDumped, dumped);
- }
-
- @SuppressWarnings("unchecked")
- public void testExample_2_16() {
- YamlDocument document = new YamlDocument("example2_16.yaml");
- Map<String, String> map = (Map<String, String>) document.getNativeData();
- assertEquals(map.toString(), 3, map.size());
- assertEquals("Mark McGwire", map.get("name"));
- assertEquals("Mark set a major league home run record in 1998.\n",
- map.get("accomplishment"));
- assertEquals("65 Home Runs\n0.278 Batting Average\n", map.get("stats"));
-
- }
-
- @SuppressWarnings("unchecked")
- public void testExample_2_17() {
- YamlDocument document = new YamlDocument("example2_17.yaml", false);
- Map<String, String> map = (Map<String, String>) document.getNativeData();
- assertEquals(map.toString(), 6, map.size());
- assertEquals("Sosa did fine.\u263A", map.get("unicode"));
- assertEquals("\b1998\t1999\t2000\n", map.get("control"));
- assertEquals("\r\n is \r\n", map.get("hexesc"));
- assertEquals("\"Howdy!\" he cried.", map.get("single"));
- assertEquals(" # not a 'comment'.", map.get("quoted"));
- assertEquals("|\\-*-/|", map.get("tie-fighter"));
- }
-
- @SuppressWarnings("unchecked")
- public void testExample_2_17_unicode() {
- YamlDocument document = new YamlDocument("example2_17_unicode.yaml");
- Map<String, String> map = (Map<String, String>) document.getNativeData();
- assertEquals("Sosa did fine.\u263A", map.get("unicode"));
- }
-
- @SuppressWarnings("unchecked")
- public void testExample_2_17_control() {
- YamlDocument document = new YamlDocument("example2_17_control.yaml", false);
- Map<String, String> map = (Map<String, String>) document.getNativeData();
- assertEquals("\b1998\t1999\t2000\n", map.get("control"));
- }
-
- @SuppressWarnings("unchecked")
- public void testExample_2_17_hexesc() {
- YamlDocument document = new YamlDocument("example2_17_hexesc.yaml");
- Map<String, String> map = (Map<String, String>) document.getNativeData();
- assertEquals("\r\n is \r\n", map.get("hexesc"));
- }
-
- @SuppressWarnings("unchecked")
- public void testExample_2_17_single() {
- YamlDocument document = new YamlDocument("example2_17_single.yaml");
- Map<String, String> map = (Map<String, String>) document.getNativeData();
- assertEquals("\"Howdy!\" he cried.", map.get("single"));
- }
-
- @SuppressWarnings("unchecked")
- public void testExample_2_17_quoted() {
- YamlDocument document = new YamlDocument("example2_17_quoted.yaml");
- Map<String, String> map = (Map<String, String>) document.getNativeData();
- assertEquals(" # not a 'comment'.", map.get("quoted"));
- }
-
- @SuppressWarnings("unchecked")
- public void testExample_2_17_tie_fighter() {
- YamlDocument document = new YamlDocument("example2_17_tie_fighter.yaml");
- Map<String, String> map = (Map<String, String>) document.getNativeData();
- assertEquals("|\\-*-/|", map.get("tie-fighter"));
- }
-
- @SuppressWarnings("unchecked")
- public void testExample_2_18() {
- YamlDocument document = new YamlDocument("example2_18.yaml");
- Map<String, String> map = (Map<String, String>) document.getNativeData();
- assertEquals(map.toString(), 2, map.size());
- assertEquals("This unquoted scalar spans many lines.", map.get("plain"));
- assertEquals("So does this quoted scalar.\n", map.get("quoted"));
- }
+ public void testExample_2_13() {
+ YamlDocument document = new YamlDocument("example2_13.yaml");
+ String data = (String) document.getNativeData();
+ assertEquals("\\//||\\/||\n// || ||__\n", data);
+ }
+
+ public void testExample_2_14() {
+ YamlDocument document = new YamlDocument("example2_14.yaml");
+ String data = (String) document.getNativeData();
+ assertEquals("Mark McGwire's year was crippled by a knee injury.", data);
+ }
+
+ public void testExample_2_15() {
+ String etalon =
+ "Sammy Sosa completed another fine season with great stats.\n\n 63 Home Runs\n 0.288 Batting Average\n\nWhat a year!\n";
+ InputStream input = YamlDocument.class.getClassLoader()
+ .getResourceAsStream(YamlDocument.ROOT + "example2_15.yaml");
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(ScalarStyle.FOLDED);
+ Yaml yaml = new Yaml(options);
+ String data = yaml.load(input);
+ assertEquals(etalon, data);
+ //
+ String dumped = yaml.dump(data);
+ String etalonDumped = Util.getLocalResource("specification/example2_15_dumped.yaml");
+ assertEquals(etalonDumped, dumped);
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testExample_2_16() {
+ YamlDocument document = new YamlDocument("example2_16.yaml");
+ Map<String, String> map = (Map<String, String>) document.getNativeData();
+ assertEquals(map.toString(), 3, map.size());
+ assertEquals("Mark McGwire", map.get("name"));
+ assertEquals("Mark set a major league home run record in 1998.\n", map.get("accomplishment"));
+ assertEquals("65 Home Runs\n0.278 Batting Average\n", map.get("stats"));
+
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testExample_2_17() {
+ YamlDocument document = new YamlDocument("example2_17.yaml", false);
+ Map<String, String> map = (Map<String, String>) document.getNativeData();
+ assertEquals(map.toString(), 6, map.size());
+ assertEquals("Sosa did fine.\u263A", map.get("unicode"));
+ assertEquals("\b1998\t1999\t2000\n", map.get("control"));
+ assertEquals("\r\n is \r\n", map.get("hexesc"));
+ assertEquals("\"Howdy!\" he cried.", map.get("single"));
+ assertEquals(" # not a 'comment'.", map.get("quoted"));
+ assertEquals("|\\-*-/|", map.get("tie-fighter"));
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testExample_2_17_unicode() {
+ YamlDocument document = new YamlDocument("example2_17_unicode.yaml");
+ Map<String, String> map = (Map<String, String>) document.getNativeData();
+ assertEquals("Sosa did fine.\u263A", map.get("unicode"));
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testExample_2_17_control() {
+ YamlDocument document = new YamlDocument("example2_17_control.yaml", false);
+ Map<String, String> map = (Map<String, String>) document.getNativeData();
+ assertEquals("\b1998\t1999\t2000\n", map.get("control"));
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testExample_2_17_hexesc() {
+ YamlDocument document = new YamlDocument("example2_17_hexesc.yaml");
+ Map<String, String> map = (Map<String, String>) document.getNativeData();
+ assertEquals("\r\n is \r\n", map.get("hexesc"));
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testExample_2_17_single() {
+ YamlDocument document = new YamlDocument("example2_17_single.yaml");
+ Map<String, String> map = (Map<String, String>) document.getNativeData();
+ assertEquals("\"Howdy!\" he cried.", map.get("single"));
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testExample_2_17_quoted() {
+ YamlDocument document = new YamlDocument("example2_17_quoted.yaml");
+ Map<String, String> map = (Map<String, String>) document.getNativeData();
+ assertEquals(" # not a 'comment'.", map.get("quoted"));
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testExample_2_17_tie_fighter() {
+ YamlDocument document = new YamlDocument("example2_17_tie_fighter.yaml");
+ Map<String, String> map = (Map<String, String>) document.getNativeData();
+ assertEquals("|\\-*-/|", map.get("tie-fighter"));
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testExample_2_18() {
+ YamlDocument document = new YamlDocument("example2_18.yaml");
+ Map<String, String> map = (Map<String, String>) document.getNativeData();
+ assertEquals(map.toString(), 2, map.size());
+ assertEquals("This unquoted scalar spans many lines.", map.get("plain"));
+ assertEquals("So does this quoted scalar.\n", map.get("quoted"));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/Chapter2_4Test.java b/src/test/java/org/yaml/snakeyaml/Chapter2_4Test.java
index 3d36caa8..61540c5a 100644
--- a/src/test/java/org/yaml/snakeyaml/Chapter2_4Test.java
+++ b/src/test/java/org/yaml/snakeyaml/Chapter2_4Test.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
@@ -23,9 +21,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TimeZone;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.constructor.AbstractConstruct;
import org.yaml.snakeyaml.constructor.Constructor;
import org.yaml.snakeyaml.nodes.Node;
@@ -34,149 +30,147 @@ import org.yaml.snakeyaml.nodes.Tag;
/**
* Test Chapter 2.4 from the YAML specification
- *
- * @see <a href="http://yaml.org/spec/1.1/"></a>
*/
public class Chapter2_4Test extends TestCase {
- @SuppressWarnings("unchecked")
- public void testExample_2_19() {
- YamlDocument document = new YamlDocument("example2_19.yaml");
- Map<String, Object> map = (Map<String, Object>) document.getNativeData();
- assertEquals(5, map.size());
- assertEquals("Expect 12345 to be an Integer.", Integer.class, map.get("canonical")
- .getClass());
- assertEquals(new Integer(12345), map.get("canonical"));
- assertEquals(new Integer(12345), map.get("decimal"));
- assertEquals(new Integer(3 * 3600 + 25 * 60 + 45), map.get("sexagesimal"));
- assertEquals(new Integer(014), map.get("octal"));
- assertEquals(new Integer(0xC), map.get("hexadecimal"));
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_19() {
+ YamlDocument document = new YamlDocument("example2_19.yaml");
+ Map<String, Object> map = (Map<String, Object>) document.getNativeData();
+ assertEquals(5, map.size());
+ assertEquals("Expect 12345 to be an Integer.", Integer.class, map.get("canonical").getClass());
+ assertEquals(Integer.valueOf(12345), map.get("canonical"));
+ assertEquals(Integer.valueOf(12345), map.get("decimal"));
+ assertEquals(Integer.valueOf(3 * 3600 + 25 * 60 + 45), map.get("sexagesimal"));
+ assertEquals(Integer.valueOf(014), map.get("octal"));
+ assertEquals(Integer.valueOf(0xC), map.get("hexadecimal"));
+ }
- @SuppressWarnings("unchecked")
- public void testExample_2_20() {
- YamlDocument document = new YamlDocument("example2_20.yaml");
- Map<String, Object> map = (Map<String, Object>) document.getNativeData();
- assertEquals(6, map.size());
- assertEquals("Expect '1.23015e+3' to be a Double.", Double.class, map.get("canonical")
- .getClass());
- assertEquals(new Double(1230.15), map.get("canonical"));
- assertEquals(new Double(12.3015e+02), map.get("exponential"));
- assertEquals(new Double(20 * 60 + 30.15), map.get("sexagesimal"));
- assertEquals(new Double(1230.15), map.get("fixed"));
- assertEquals(Double.NEGATIVE_INFINITY, map.get("negative infinity"));
- assertEquals(Double.NaN, map.get("not a number"));
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_20() {
+ YamlDocument document = new YamlDocument("example2_20.yaml");
+ Map<String, Object> map = (Map<String, Object>) document.getNativeData();
+ assertEquals(6, map.size());
+ assertEquals("Expect '1.23015e+3' to be a Double.", Double.class,
+ map.get("canonical").getClass());
+ assertEquals(Double.valueOf(1230.15), map.get("canonical"));
+ assertEquals(Double.valueOf(12.3015e+02), map.get("exponential"));
+ assertEquals(Double.valueOf(20 * 60 + 30.15), map.get("sexagesimal"));
+ assertEquals(Double.valueOf(1230.15), map.get("fixed"));
+ assertEquals(Double.NEGATIVE_INFINITY, map.get("negative infinity"));
+ assertEquals(Double.NaN, map.get("not a number"));
+ }
- @SuppressWarnings("unchecked")
- public void testExample_2_21() {
- YamlDocument document = new YamlDocument("example2_21.yaml");
- Map<String, Object> map = (Map<String, Object>) document.getNativeData();
- assertEquals(4, map.size());
- assertNull("'~' must be parsed as 'null': " + map.get(null), map.get(null));
- assertTrue((Boolean) map.get(Boolean.TRUE));
- assertFalse((Boolean) map.get(Boolean.FALSE));
- assertEquals("12345", map.get("string"));
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_21() {
+ YamlDocument document = new YamlDocument("example2_21.yaml");
+ Map<String, Object> map = (Map<String, Object>) document.getNativeData();
+ assertEquals(4, map.size());
+ assertNull("'~' must be parsed as 'null': " + map.get(null), map.get(null));
+ assertTrue((Boolean) map.get(Boolean.TRUE));
+ assertFalse((Boolean) map.get(Boolean.FALSE));
+ assertEquals("12345", map.get("string"));
+ }
- @SuppressWarnings("unchecked")
- public void testExample_2_22() {
- YamlDocument document = new YamlDocument("example2_22.yaml");
- Map<String, Object> map = (Map<String, Object>) document.getNativeData();
- assertEquals(4, map.size());
- assertEquals("Expect '2001-12-15T02:59:43.1Z' to be a Date.", Date.class,
- map.get("canonical").getClass());
- Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
- cal.clear();
- cal.set(Calendar.YEAR, 2001);
- cal.set(Calendar.MONTH, 11); // Java's months are zero-based...
- cal.set(Calendar.DAY_OF_MONTH, 15);
- cal.set(Calendar.HOUR_OF_DAY, 2);
- cal.set(Calendar.MINUTE, 59);
- cal.set(Calendar.SECOND, 43);
- cal.set(Calendar.MILLISECOND, 100);
- Date date = cal.getTime();
- assertEquals(date, map.get("canonical"));
- assertEquals("Expect '2001-12-14t21:59:43.10-05:00' to be a Date.", Date.class,
- map.get("iso8601").getClass());
- assertEquals("Expect '2001-12-14 21:59:43.10 -5' to be a Date.", Date.class,
- map.get("spaced").getClass());
- assertEquals("Expect '2002-12-14' to be a Date.", Date.class, map.get("date").getClass());
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_22() {
+ YamlDocument document = new YamlDocument("example2_22.yaml");
+ Map<String, Object> map = (Map<String, Object>) document.getNativeData();
+ assertEquals(4, map.size());
+ assertEquals("Expect '2001-12-15T02:59:43.1Z' to be a Date.", Date.class,
+ map.get("canonical").getClass());
+ Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
+ cal.clear();
+ cal.set(Calendar.YEAR, 2001);
+ cal.set(Calendar.MONTH, 11); // Java's months are zero-based...
+ cal.set(Calendar.DAY_OF_MONTH, 15);
+ cal.set(Calendar.HOUR_OF_DAY, 2);
+ cal.set(Calendar.MINUTE, 59);
+ cal.set(Calendar.SECOND, 43);
+ cal.set(Calendar.MILLISECOND, 100);
+ Date date = cal.getTime();
+ assertEquals(date, map.get("canonical"));
+ assertEquals("Expect '2001-12-14t21:59:43.10-05:00' to be a Date.", Date.class,
+ map.get("iso8601").getClass());
+ assertEquals("Expect '2001-12-14 21:59:43.10 -5' to be a Date.", Date.class,
+ map.get("spaced").getClass());
+ assertEquals("Expect '2002-12-14' to be a Date.", Date.class, map.get("date").getClass());
+ }
- @SuppressWarnings("unchecked")
- public void testExample_2_23_non_date() {
- try {
- YamlDocument document = new YamlDocument("example2_23_non_date.yaml");
- Map<String, Object> map = (Map<String, Object>) document.getNativeData();
- assertEquals(1, map.size());
- assertEquals("2002-04-28", map.get("not-date"));
- } catch (RuntimeException e) {
- fail("Cannot parse '!!str': 'not-date: !!str 2002-04-28'");
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_23_non_date() {
+ try {
+ YamlDocument document = new YamlDocument("example2_23_non_date.yaml");
+ Map<String, Object> map = (Map<String, Object>) document.getNativeData();
+ assertEquals(1, map.size());
+ assertEquals("2002-04-28", map.get("not-date"));
+ } catch (RuntimeException e) {
+ fail("Cannot parse '!!str': 'not-date: !!str 2002-04-28'");
}
+ }
- @SuppressWarnings("unchecked")
- public void testExample_2_23_picture() {
- YamlDocument document = new YamlDocument("example2_23_picture.yaml", false);
- Map<String, Object> map = (Map<String, Object>) document.getNativeData();
- assertEquals(1, map.size());
- byte[] picture = (byte[]) map.get("picture");
- assertEquals((byte) 'G', picture[0]);
- assertEquals((byte) 'I', picture[1]);
- assertEquals((byte) 'F', picture[2]);
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_23_picture() {
+ YamlDocument document = new YamlDocument("example2_23_picture.yaml", false);
+ Map<String, Object> map = (Map<String, Object>) document.getNativeData();
+ assertEquals(1, map.size());
+ byte[] picture = (byte[]) map.get("picture");
+ assertEquals((byte) 'G', picture[0]);
+ assertEquals((byte) 'I', picture[1]);
+ assertEquals((byte) 'F', picture[2]);
+ }
- class SomethingConstructor extends Constructor {
- public SomethingConstructor() {
- this.yamlConstructors.put(new Tag("!something"), new ConstructSomething());
- }
+ class SomethingConstructor extends Constructor {
- private class ConstructSomething extends AbstractConstruct {
- public Object construct(Node node) {
- // convert to upper case
- String val = (String) constructScalar((ScalarNode) node);
- return val.toUpperCase().replace('\n', ' ').trim();
- }
- }
+ public SomethingConstructor() {
+ this.yamlConstructors.put(new Tag("!something"), new ConstructSomething());
}
- @SuppressWarnings("unchecked")
- public void testExample_2_23() {
- YamlDocument document = new YamlDocument("example2_23.yaml", false,
- new SomethingConstructor());
- Map<String, Object> map = (Map<String, Object>) document.getNativeData();
- assertEquals(3, map.size());
- String special = (String) map.get("application specific tag");
- assertEquals("THE SEMANTICS OF THE TAG ABOVE MAY BE DIFFERENT FOR DIFFERENT DOCUMENTS.",
- special);
- }
+ private class ConstructSomething extends AbstractConstruct {
- @SuppressWarnings("unchecked")
- public void testExample_2_25() {
- YamlDocument document = new YamlDocument("example2_25.yaml");
- Set<String> set = (Set<String>) document.getNativeData();
- assertEquals(3, set.size());
- assertTrue(set.contains("Mark McGwire"));
- assertTrue(set.contains("Sammy Sosa"));
- assertTrue(set.contains("Ken Griff"));
+ public Object construct(Node node) {
+ // convert to upper case
+ String val = constructScalar((ScalarNode) node);
+ return val.toUpperCase().replace('\n', ' ').trim();
+ }
}
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testExample_2_23() {
+ YamlDocument document = new YamlDocument("example2_23.yaml", false, new SomethingConstructor());
+ Map<String, Object> map = (Map<String, Object>) document.getNativeData();
+ assertEquals(3, map.size());
+ String special = (String) map.get("application specific tag");
+ assertEquals("THE SEMANTICS OF THE TAG ABOVE MAY BE DIFFERENT FOR DIFFERENT DOCUMENTS.",
+ special);
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testExample_2_25() {
+ YamlDocument document = new YamlDocument("example2_25.yaml");
+ Set<String> set = (Set<String>) document.getNativeData();
+ assertEquals(3, set.size());
+ assertTrue(set.contains("Mark McGwire"));
+ assertTrue(set.contains("Sammy Sosa"));
+ assertTrue(set.contains("Ken Griff"));
+ }
- @SuppressWarnings("unchecked")
- public void testExample_2_26() {
- YamlDocument document = new YamlDocument("example2_26.yaml");
- Map<String, String> map = (Map<String, String>) document.getNativeData();
- assertEquals(3, map.size());
- assertTrue(map instanceof LinkedHashMap);
- assertEquals(new Integer(65), map.get("Mark McGwire"));
- assertEquals(new Integer(63), map.get("Sammy Sosa"));
- assertEquals(new Integer(58), map.get("Ken Griffy"));
- List<String> list = new ArrayList<String>();
- for (String key : map.keySet()) {
- list.add(key);
- }
- assertEquals("Mark McGwire", list.get(0));
- assertEquals("Sammy Sosa", list.get(1));
- assertEquals("Ken Griffy", list.get(2));
+ @SuppressWarnings("unchecked")
+ public void testExample_2_26() {
+ YamlDocument document = new YamlDocument("example2_26.yaml");
+ Map<String, String> map = (Map<String, String>) document.getNativeData();
+ assertEquals(3, map.size());
+ assertTrue(map instanceof LinkedHashMap);
+ assertEquals(Integer.valueOf(65), map.get("Mark McGwire"));
+ assertEquals(Integer.valueOf(63), map.get("Sammy Sosa"));
+ assertEquals(Integer.valueOf(58), map.get("Ken Griffy"));
+ List<String> list = new ArrayList<String>();
+ for (String key : map.keySet()) {
+ list.add(key);
}
+ assertEquals("Mark McGwire", list.get(0));
+ assertEquals("Sammy Sosa", list.get(1));
+ assertEquals("Ken Griffy", list.get(2));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/Chapter2_5Test.java b/src/test/java/org/yaml/snakeyaml/Chapter2_5Test.java
index bfe55517..fb4951bb 100644
--- a/src/test/java/org/yaml/snakeyaml/Chapter2_5Test.java
+++ b/src/test/java/org/yaml/snakeyaml/Chapter2_5Test.java
@@ -1,63 +1,58 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import java.util.Date;
import java.util.List;
import java.util.Map;
-
import junit.framework.TestCase;
/**
* Test Chapter 2.5 from the YAML specification
- *
- * @see <a href="http://yaml.org/spec/1.1/"></a>
*/
public class Chapter2_5Test extends TestCase {
- @SuppressWarnings("unchecked")
- public void testExample_2_28() {
- YamlStream resource = new YamlStream("example2_28.yaml");
- List<Object> list = (List<Object>) resource.getNativeData();
- assertEquals(3, list.size());
- Map<String, Object> data0 = (Map<String, Object>) list.get(0);
- Date date = (Date) data0.get("Time");
- assertEquals("Date: " + date, 1006545702000L, date.getTime());
- assertEquals("ed", data0.get("User"));
- assertEquals("This is an error message for the log file", data0.get("Warning"));
- //
- Map<String, Object> data1 = (Map<String, Object>) list.get(1);
- Date date1 = (Date) data1.get("Time");
- assertTrue("Date: " + date1, date1.after(date));
- assertEquals("ed", data1.get("User"));
- assertEquals("A slightly different error message.", data1.get("Warning"));
- //
- Map<String, Object> data3 = (Map<String, Object>) list.get(2);
- Date date3 = (Date) data3.get("Date");
- assertTrue("Date: " + date3, date3.after(date1));
- assertEquals("ed", data3.get("User"));
- assertEquals("Unknown variable \"bar\"", data3.get("Fatal"));
- List<Map<String, String>> list3 = (List<Map<String, String>>) data3.get("Stack");
- Map<String, String> map1 = list3.get(0);
- assertEquals("TopClass.py", map1.get("file"));
- assertEquals(new Integer(23), map1.get("line"));
- assertEquals("x = MoreObject(\"345\\n\")\n", map1.get("code"));
- Map<String, String> map2 = list3.get(1);
- assertEquals("MoreClass.py", map2.get("file"));
- assertEquals(new Integer(58), map2.get("line"));
- assertEquals("foo = bar", map2.get("code"));
- }
+ @SuppressWarnings("unchecked")
+ public void testExample_2_28() {
+ YamlStream resource = new YamlStream("example2_28.yaml");
+ List<Object> list = resource.getNativeData();
+ assertEquals(3, list.size());
+ Map<String, Object> data0 = (Map<String, Object>) list.get(0);
+ Date date = (Date) data0.get("Time");
+ assertEquals("Date: " + date, 1006545702000L, date.getTime());
+ assertEquals("ed", data0.get("User"));
+ assertEquals("This is an error message for the log file", data0.get("Warning"));
+ //
+ Map<String, Object> data1 = (Map<String, Object>) list.get(1);
+ Date date1 = (Date) data1.get("Time");
+ assertTrue("Date: " + date1, date1.after(date));
+ assertEquals("ed", data1.get("User"));
+ assertEquals("A slightly different error message.", data1.get("Warning"));
+ //
+ Map<String, Object> data3 = (Map<String, Object>) list.get(2);
+ Date date3 = (Date) data3.get("Date");
+ assertTrue("Date: " + date3, date3.after(date1));
+ assertEquals("ed", data3.get("User"));
+ assertEquals("Unknown variable \"bar\"", data3.get("Fatal"));
+ List<Map<String, String>> list3 = (List<Map<String, String>>) data3.get("Stack");
+ Map<String, String> map1 = list3.get(0);
+ assertEquals("TopClass.py", map1.get("file"));
+ assertEquals(Integer.valueOf(23), map1.get("line"));
+ assertEquals("x = MoreObject(\"345\\n\")\n", map1.get("code"));
+ Map<String, String> map2 = list3.get(1);
+ assertEquals("MoreClass.py", map2.get("file"));
+ assertEquals(Integer.valueOf(58), map2.get("line"));
+ assertEquals("foo = bar", map2.get("code"));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/CollectionWithBeanYamlTest.java b/src/test/java/org/yaml/snakeyaml/CollectionWithBeanYamlTest.java
index 7b30d7b6..e2b73435 100644
--- a/src/test/java/org/yaml/snakeyaml/CollectionWithBeanYamlTest.java
+++ b/src/test/java/org/yaml/snakeyaml/CollectionWithBeanYamlTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
@@ -19,67 +17,67 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
-
import junit.framework.TestCase;
public class CollectionWithBeanYamlTest extends TestCase {
- @SuppressWarnings("unchecked")
- public void testYamlMap() {
- Map<String, Bean> data = new TreeMap<String, Bean>();
- data.put("gold1", new Bean());
- data.put("gold2", new Bean());
+ @SuppressWarnings("unchecked")
+ public void testYamlMap() {
+ Map<String, Bean> data = new TreeMap<String, Bean>();
+ data.put("gold1", new Bean());
+ data.put("gold2", new Bean());
- Yaml yaml = new Yaml();
- String output = yaml.dump(data);
- assertEquals(
- "gold1: !!org.yaml.snakeyaml.CollectionWithBeanYamlTest$Bean {a: ''}\ngold2: !!org.yaml.snakeyaml.CollectionWithBeanYamlTest$Bean {a: ''}\n",
- output);
- Object o = yaml.load(output);
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(data);
+ assertEquals(
+ "gold1: !!org.yaml.snakeyaml.CollectionWithBeanYamlTest$Bean {a: ''}\ngold2: !!org.yaml.snakeyaml.CollectionWithBeanYamlTest$Bean {a: ''}\n",
+ output);
+ Object o = yaml.load(output);
- assertTrue(o instanceof Map);
- Map<String, Bean> m = (Map<String, Bean>) o;
- assertTrue(m.get("gold1") instanceof Bean);
- assertTrue("" + m.get("gold2").getClass(), m.get("gold2") instanceof Bean);
- }
+ assertTrue(o instanceof Map);
+ Map<String, Bean> m = (Map<String, Bean>) o;
+ assertTrue(m.get("gold1") instanceof Bean);
+ assertTrue("" + m.get("gold2").getClass(), m.get("gold2") instanceof Bean);
+ }
- @SuppressWarnings("unchecked")
- public void testYamlList() {
- List<Bean> data = new ArrayList<Bean>();
- data.add(new Bean("1"));
- data.add(new Bean("2"));
+ @SuppressWarnings("unchecked")
+ public void testYamlList() {
+ List<Bean> data = new ArrayList<Bean>();
+ data.add(new Bean("1"));
+ data.add(new Bean("2"));
- Yaml yaml = new Yaml();
- String output = yaml.dump(data);
- assertEquals(
- "- !!org.yaml.snakeyaml.CollectionWithBeanYamlTest$Bean {a: '1'}\n- !!org.yaml.snakeyaml.CollectionWithBeanYamlTest$Bean {a: '2'}\n",
- output);
- Object o = yaml.load(output);
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(data);
+ assertEquals(
+ "- !!org.yaml.snakeyaml.CollectionWithBeanYamlTest$Bean {a: '1'}\n- !!org.yaml.snakeyaml.CollectionWithBeanYamlTest$Bean {a: '2'}\n",
+ output);
+ Object o = yaml.load(output);
- assertTrue(o instanceof List);
- List<Bean> m = (List<Bean>) o;
- assertEquals(2, m.size());
- assertTrue(m.get(0) instanceof Bean);
- assertTrue(m.get(1) instanceof Bean);
- }
+ assertTrue(o instanceof List);
+ List<Bean> m = (List<Bean>) o;
+ assertEquals(2, m.size());
+ assertTrue(m.get(0) instanceof Bean);
+ assertTrue(m.get(1) instanceof Bean);
+ }
- public static class Bean {
- private String a;
+ public static class Bean {
- public Bean() {
- a = "";
- }
+ private String a;
- public Bean(String value) {
- a = value;
- }
+ public Bean() {
+ a = "";
+ }
- public String getA() {
- return a;
- }
+ public Bean(String value) {
+ a = value;
+ }
+
+ public String getA() {
+ return a;
+ }
- public void setA(String s) {
- a = s;
- }
+ public void setA(String s) {
+ a = s;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/DumperOptionsTest.java b/src/test/java/org/yaml/snakeyaml/DumperOptionsTest.java
index f36fb7ba..a4dab06d 100644
--- a/src/test/java/org/yaml/snakeyaml/DumperOptionsTest.java
+++ b/src/test/java/org/yaml/snakeyaml/DumperOptionsTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
@@ -19,9 +17,7 @@ import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.emitter.Emitter;
import org.yaml.snakeyaml.error.YAMLException;
import org.yaml.snakeyaml.nodes.Tag;
@@ -29,445 +25,508 @@ import org.yaml.snakeyaml.representer.Representer;
public class DumperOptionsTest extends TestCase {
- public void testDefaultStyle() {
- DumperOptions options = new DumperOptions();
- Yaml yaml = new Yaml(options);
- assertEquals("abc\n", yaml.dump("abc"));
- // string which looks like integer
- assertEquals("'123'\n", yaml.dump("123"));
- //
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
- yaml = new Yaml(options);
- assertEquals("\"123\"\n", yaml.dump("123"));
- //
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.SINGLE_QUOTED);
- yaml = new Yaml(options);
- assertEquals("'123'\n", yaml.dump("123"));
- //
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.PLAIN);
- yaml = new Yaml(options);
- assertEquals("'123'\n", yaml.dump("123"));
- assertEquals("abc\n", yaml.dump("abc"));
- // null check
- try {
- options.setDefaultScalarStyle(null);
- fail("Null must not be accepted.");
- } catch (NullPointerException e) {
- assertEquals("Use ScalarStyle enum.", e.getMessage());
- }
- }
-
- public void testDefaultFlowStyle() {
- Yaml yaml = new Yaml();
- List<Integer> list = new ArrayList<Integer>();
- list.add(1);
- list.add(2);
- list.add(3);
- assertEquals("[1, 2, 3]\n", yaml.dump(list));
- //
- DumperOptions options = new DumperOptions();
- options = new DumperOptions();
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
- yaml = new Yaml(options);
- assertEquals("[1, 2, 3]\n", yaml.dump(list));
- //
- options = new DumperOptions();
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
- options.setPrettyFlow(true);
- yaml = new Yaml(options);
- assertEquals("[\n 1,\n 2,\n 3]\n", yaml.dump(list));
- //
- options = new DumperOptions();
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- yaml = new Yaml(options);
- assertEquals("- 1\n- 2\n- 3\n", yaml.dump(list));
- // null check
- try {
- options.setDefaultFlowStyle(null);
- fail("Null must not be accepted.");
- } catch (NullPointerException e) {
- assertEquals("Use FlowStyle enum.", e.getMessage());
- }
- }
-
- public void testDefaultFlowStyleNested() {
- Yaml yaml = new Yaml();
- List<Integer> list = new ArrayList<Integer>();
- list.add(1);
- list.add(2);
- list.add(3);
- Map<String, Object> map = new LinkedHashMap<String, Object>();
- map.put("a", "b");
- map.put("c", list);
- String result = yaml.dump(map);
- assertEquals("a: b\nc: [1, 2, 3]\n", result);
- //
- DumperOptions options = new DumperOptions();
- options = new DumperOptions();
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
- yaml = new Yaml(options);
- assertEquals("{a: b, c: [1, 2, 3]}\n", yaml.dump(map));
- //
- options = new DumperOptions();
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
- options.setPrettyFlow(true);
- yaml = new Yaml(options);
- result = yaml.dump(map);
- assertEquals("{\n a: b,\n c: [\n 1,\n 2,\n 3]\n \n}\n", result);
- //
- options = new DumperOptions();
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- yaml = new Yaml(options);
- assertEquals("a: b\nc:\n- 1\n- 2\n- 3\n", yaml.dump(map));
- }
-
- public void testCanonical() {
- Yaml yaml = new Yaml();
- assertEquals("123\n", yaml.dump(123));
- //
- DumperOptions options = new DumperOptions();
- options = new DumperOptions();
- options.setCanonical(true);
- yaml = new Yaml(options);
- assertEquals("---\n!!int \"123\"\n", yaml.dump(123));
- //
- options = new DumperOptions();
- options.setCanonical(false);
- yaml = new Yaml(options);
- assertEquals("123\n", yaml.dump(123));
- }
-
- public void testIndent() {
- Yaml yaml = new Yaml();
- List<Integer> list = new ArrayList<Integer>();
- list.add(1);
- list.add(2);
- DumperOptions options = new DumperOptions();
- options.setCanonical(true);
- yaml = new Yaml(options);
- assertEquals("---\n!!seq [\n !!int \"1\",\n !!int \"2\",\n]\n", yaml.dump(list));
- //
- options.setIndent(4);
- yaml = new Yaml(options);
- assertEquals("---\n!!seq [\n !!int \"1\",\n !!int \"2\",\n]\n", yaml.dump(list));
- //
- try {
- options.setIndent(0);
- fail();
- } catch (YAMLException e) {
- assertTrue(true);
- }
- try {
- options.setIndent(-2);
- fail();
- } catch (YAMLException e) {
- assertTrue(true);
- }
- try {
- options.setIndent(11);
- fail();
- } catch (YAMLException e) {
- assertTrue(true);
- }
- //
- assertTrue(Emitter.MIN_INDENT > 0);
- assertTrue(Emitter.MIN_INDENT < Emitter.MAX_INDENT);
- assertTrue(Emitter.MAX_INDENT < 20);
- }
-
- public void testLineBreak() {
- Yaml yaml = new Yaml();
- List<Integer> list = new ArrayList<Integer>();
- list.add(1);
- list.add(2);
- DumperOptions options = new DumperOptions();
- options.setCanonical(true);
- yaml = new Yaml(options);
- assertEquals("---\n!!seq [\n !!int \"1\",\n !!int \"2\",\n]\n", yaml.dump(list));
- //
- options.setLineBreak(DumperOptions.LineBreak.WIN);
- yaml = new Yaml(options);
- String output = yaml.dump(list);
- assertEquals("---\r\n!!seq [\r\n !!int \"1\",\r\n !!int \"2\",\r\n]\r\n", output);
- // null check
- try {
- options.setLineBreak(null);
- fail("Null must not be accepted.");
- } catch (NullPointerException e) {
- assertEquals("Specify line break.", e.getMessage());
- }
- }
-
- public void testLineBreakForPlatform() {
- DumperOptions.LineBreak lineBreak = DumperOptions.LineBreak.getPlatformLineBreak();
- assertEquals("Line break must match platform's default.",
- System.getProperty("line.separator"), lineBreak.getString());
- //
- Yaml yaml = new Yaml();
- List<Integer> list = new ArrayList<Integer>();
- list.add(1);
- list.add(2);
- DumperOptions options = new DumperOptions();
- options.setLineBreak(DumperOptions.LineBreak.getPlatformLineBreak());
- yaml = new Yaml(options);
- assertEquals("[1, 2]", yaml.dump(list).trim());
- }
-
- public void testLineBreakForPlatformUnix() {
- System.setProperty("line.separator", "\n");
- assertEquals("\n", System.getProperty("line.separator"));
- DumperOptions.LineBreak lineBreak = DumperOptions.LineBreak.getPlatformLineBreak();
- assertEquals("Line break must match platform's default.",
- System.getProperty("line.separator"), lineBreak.getString());
- assertEquals("Unknown Line break must match UNIX line break.", "\n", lineBreak.getString());
- }
-
- public void testLineBreakForPlatformMac() {
- System.setProperty("line.separator", "\r");
- assertEquals("\r", System.getProperty("line.separator"));
- DumperOptions.LineBreak lineBreak = DumperOptions.LineBreak.getPlatformLineBreak();
- assertEquals("Line break must match platform's default.",
- System.getProperty("line.separator"), lineBreak.getString());
- assertEquals("Unknown Line break must match UNIX line break.", "\r", lineBreak.getString());
- }
-
- public void testLineBreakForPlatformWin() {
- System.setProperty("line.separator", "\r\n");
- assertEquals("\r\n", System.getProperty("line.separator"));
- DumperOptions.LineBreak lineBreak = DumperOptions.LineBreak.getPlatformLineBreak();
- assertEquals("Line break must match platform's default.",
- System.getProperty("line.separator"), lineBreak.getString());
- assertEquals("Unknown Line break must match UNIX line break.", "\r\n",
- lineBreak.getString());
- }
-
- public void testLineBreakForPlatformUnknown() {
- System.setProperty("line.separator", "\n\r");
- assertEquals("\n\r", System.getProperty("line.separator"));
- DumperOptions.LineBreak lineBreak = DumperOptions.LineBreak.getPlatformLineBreak();
- assertEquals("Unknown Line break must match UNIX line break.", "\n", lineBreak.getString());
+ public void testDefaultStyle() {
+ DumperOptions options = new DumperOptions();
+ Yaml yaml = new Yaml(options);
+ assertEquals("abc\n", yaml.dump("abc"));
+ // string which looks like integer
+ assertEquals("'123'\n", yaml.dump("123"));
+ //
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ yaml = new Yaml(options);
+ assertEquals("\"123\"\n", yaml.dump("123"));
+ //
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.SINGLE_QUOTED);
+ yaml = new Yaml(options);
+ assertEquals("'123'\n", yaml.dump("123"));
+ //
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.PLAIN);
+ yaml = new Yaml(options);
+ assertEquals("'123'\n", yaml.dump("123"));
+ assertEquals("abc\n", yaml.dump("abc"));
+ // null check
+ try {
+ options.setDefaultScalarStyle(null);
+ fail("Null must not be accepted.");
+ } catch (NullPointerException e) {
+ assertEquals("Use ScalarStyle enum.", e.getMessage());
}
-
- public void testExplicitStart() {
- Yaml yaml = new Yaml();
- List<Integer> list = new ArrayList<Integer>();
- list.add(1);
- list.add(2);
- list.add(3);
- assertEquals("[1, 2, 3]\n", yaml.dump(list));
- //
- DumperOptions options = new DumperOptions();
- options = new DumperOptions();
- options.setExplicitStart(true);
- yaml = new Yaml(options);
- assertEquals("--- [1, 2, 3]\n", yaml.dump(list));
- //
- options.setExplicitEnd(true);
- yaml = new Yaml(options);
- assertEquals("--- [1, 2, 3]\n...\n", yaml.dump(list));
- }
-
- public void testVersion() {
- Yaml yaml = new Yaml();
- List<Integer> list = new ArrayList<Integer>();
- list.add(1);
- list.add(2);
- list.add(3);
- assertEquals("[1, 2, 3]\n", yaml.dump(list));
- //
- DumperOptions options = new DumperOptions();
- options = new DumperOptions();
- options.setVersion(DumperOptions.Version.V1_1);
- yaml = new Yaml(options);
- assertEquals("%YAML 1.1\n--- [1, 2, 3]\n", yaml.dump(list));
- //
- options.setVersion(DumperOptions.Version.V1_0);
- yaml = new Yaml(options);
- assertEquals("%YAML 1.0\n--- [1, 2, 3]\n", yaml.dump(list));
- //
- assertEquals("Version: 1.1", DumperOptions.Version.V1_1.toString());
- }
-
- public void testTags() {
- Yaml yaml = new Yaml();
- List<Integer> list = new ArrayList<Integer>();
- list.add(1);
- list.add(2);
- list.add(3);
- assertEquals("[1, 2, 3]\n", yaml.dump(list));
- //
- DumperOptions options = new DumperOptions();
- options = new DumperOptions();
- Map<String, String> tags = new LinkedHashMap<String, String>();
- tags.put("!foo!", "bar");
- options.setTags(tags);
- yaml = new Yaml(options);
- assertEquals("%TAG !foo! bar\n--- [1, 2, 3]\n", yaml.dump(list));
- //
- options = new DumperOptions();
- tags.put("!yaml!", Tag.PREFIX);
- yaml = new Yaml(options);
- assertEquals("foo\n", yaml.dump("foo"));
- }
-
- public void testAllowUnicode() {
- Yaml yaml = new Yaml();
- assertEquals("out: " + yaml.dump("\u00DCber"), "\u00DCber\n", yaml.dump("\u00DCber"));
- //
- DumperOptions options = new DumperOptions();
- options = new DumperOptions();
- options.setAllowUnicode(false);
- yaml = new Yaml(options);
- assertEquals("\"\\xdcber\"\n", yaml.dump("\u00DCber"));
- }
-
- public void testToString() {
- DumperOptions.ScalarStyle scalarStyle = DumperOptions.ScalarStyle.LITERAL;
- assertEquals("Scalar style: '|'", scalarStyle.toString());
- //
- DumperOptions.FlowStyle flowStyle = DumperOptions.FlowStyle.BLOCK;
- assertEquals("Flow style: 'false'", flowStyle.toString());
- //
- DumperOptions.LineBreak lb = DumperOptions.LineBreak.UNIX;
- assertEquals("Line break: UNIX", lb.toString());
- }
-
- public void testWithRepresenter() {
- Representer representer = new Representer();
- DumperOptions options = new DumperOptions();
- options.setIndent(4);
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- Yaml yaml = new Yaml(representer, options);
- List<Integer> list = new ArrayList<Integer>();
- list.add(1);
- list.add(2);
- list.add(3);
- Map<String, Object> map = new LinkedHashMap<String, Object>();
- map.put("a", "b");
- map.put("c", list);
- assertEquals("a: b\nc:\n- 1\n- 2\n- 3\n", yaml.dump(map));
+ }
+
+ public void testDefaultFlowStyle() {
+ Yaml yaml = new Yaml();
+ List<Integer> list = new ArrayList<Integer>();
+ list.add(1);
+ list.add(2);
+ list.add(3);
+ assertEquals("[1, 2, 3]\n", yaml.dump(list));
+ //
+ DumperOptions options = new DumperOptions();
+ options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
+ yaml = new Yaml(options);
+ assertEquals("[1, 2, 3]\n", yaml.dump(list));
+ //
+ options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
+ options.setPrettyFlow(true);
+ yaml = new Yaml(options);
+ assertEquals("[\n 1,\n 2,\n 3\n]\n", yaml.dump(list));
+ //
+ options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ yaml = new Yaml(options);
+ assertEquals("- 1\n- 2\n- 3\n", yaml.dump(list));
+ // null check
+ try {
+ options.setDefaultFlowStyle(null);
+ fail("Null must not be accepted.");
+ } catch (NullPointerException e) {
+ assertEquals("Use FlowStyle enum.", e.getMessage());
}
-
- public void testSplitLinesDoubleQuoted() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
- Yaml yaml;
- String output;
-
- // Split lines enabled (default)
- assertTrue(options.getSplitLines());
- yaml = new Yaml(options);
- output = yaml.dump("1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
- assertEquals("\"1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888\\\n \\ 9999999999 0000000000\"\n", output);
-
- // Split lines disabled
- options.setSplitLines(false);
- assertFalse(options.getSplitLines());
- yaml = new Yaml(options);
- output = yaml.dump("1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
- assertEquals("\"1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000\"\n", output);
+ }
+
+ public void testDefaultFlowStyleNested() {
+ Yaml yaml = new Yaml();
+ List<Integer> list = new ArrayList<Integer>();
+ list.add(1);
+ list.add(2);
+ list.add(3);
+ Map<String, Object> map = new LinkedHashMap<String, Object>();
+ map.put("a", "b");
+ map.put("c", list);
+ String result = yaml.dump(map);
+ assertEquals("a: b\nc: [1, 2, 3]\n", result);
+ //
+ DumperOptions options = new DumperOptions();
+ options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
+ yaml = new Yaml(options);
+ assertEquals("{a: b, c: [1, 2, 3]}\n", yaml.dump(map));
+ //
+ options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
+ options.setPrettyFlow(true);
+ yaml = new Yaml(options);
+ result = yaml.dump(map);
+ assertEquals("{\n a: b,\n c: [\n 1,\n 2,\n 3\n ]\n \n}\n", result);
+ //
+ options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ yaml = new Yaml(options);
+ assertEquals("a: b\nc:\n- 1\n- 2\n- 3\n", yaml.dump(map));
+ }
+
+ public void testCanonical() {
+ Yaml yaml = new Yaml();
+ assertEquals("123\n", yaml.dump(123));
+ //
+ DumperOptions options = new DumperOptions();
+ options = new DumperOptions();
+ options.setCanonical(true);
+ yaml = new Yaml(options);
+ assertEquals("---\n!!int \"123\"\n", yaml.dump(123));
+ //
+ options = new DumperOptions();
+ options.setCanonical(false);
+ yaml = new Yaml(options);
+ assertEquals("123\n", yaml.dump(123));
+ }
+
+ public void testIndent() {
+ Yaml yaml = new Yaml();
+ List<Integer> list = new ArrayList<Integer>();
+ list.add(1);
+ list.add(2);
+ DumperOptions options = new DumperOptions();
+ options.setCanonical(true);
+ yaml = new Yaml(options);
+ assertEquals("---\n!!seq [\n !!int \"1\",\n !!int \"2\",\n]\n", yaml.dump(list));
+ //
+ options.setIndent(4);
+ yaml = new Yaml(options);
+ assertEquals("---\n!!seq [\n !!int \"1\",\n !!int \"2\",\n]\n", yaml.dump(list));
+ //
+ try {
+ options.setIndent(0);
+ fail();
+ } catch (YAMLException e) {
+ assertTrue(true);
}
-
- public void testSplitLinesSingleQuoted() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.SINGLE_QUOTED);
- Yaml yaml;
- String output;
-
- // Split lines enabled (default)
- assertTrue(options.getSplitLines());
- yaml = new Yaml(options);
- output = yaml.dump("1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
- assertEquals("'1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888\n 9999999999 0000000000'\n", output);
-
- // Split lines disabled
- options.setSplitLines(false);
- assertFalse(options.getSplitLines());
- yaml = new Yaml(options);
- output = yaml.dump("1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
- assertEquals("'1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000'\n", output);
+ try {
+ options.setIndent(-2);
+ fail();
+ } catch (YAMLException e) {
+ assertTrue(true);
}
-
- public void testSplitLinesFolded() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.FOLDED);
- Yaml yaml;
- String output;
-
- // Split lines enabled (default)
- assertTrue(options.getSplitLines());
- yaml = new Yaml(options);
- output = yaml.dump("1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
- assertEquals(">-\n 1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888\n 9999999999 0000000000\n", output);
-
- // Split lines disabled
- options.setSplitLines(false);
- assertFalse(options.getSplitLines());
- yaml = new Yaml(options);
- output = yaml.dump("1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
- assertEquals(">-\n 1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000\n", output);
+ try {
+ options.setIndent(11);
+ fail();
+ } catch (YAMLException e) {
+ assertTrue(true);
}
-
- public void testSplitLinesLiteral() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.LITERAL);
- Yaml yaml;
- String output;
-
- // Split lines enabled (default) -- split lines does not apply to literal style
- assertTrue(options.getSplitLines());
- yaml = new Yaml(options);
- output = yaml.dump("1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
- assertEquals("|-\n 1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000\n", output);
+ //
+ assertTrue(Emitter.MIN_INDENT > 0);
+ assertTrue(Emitter.MIN_INDENT < Emitter.MAX_INDENT);
+ assertTrue(Emitter.MAX_INDENT < 20);
+ }
+
+ public void testLineBreak() {
+ Yaml yaml = new Yaml();
+ List<Integer> list = new ArrayList<Integer>();
+ list.add(1);
+ list.add(2);
+ DumperOptions options = new DumperOptions();
+ options.setCanonical(true);
+ yaml = new Yaml(options);
+ assertEquals("---\n!!seq [\n !!int \"1\",\n !!int \"2\",\n]\n", yaml.dump(list));
+ //
+ options.setLineBreak(DumperOptions.LineBreak.WIN);
+ yaml = new Yaml(options);
+ String output = yaml.dump(list);
+ assertEquals("---\r\n!!seq [\r\n !!int \"1\",\r\n !!int \"2\",\r\n]\r\n", output);
+ // null check
+ try {
+ options.setLineBreak(null);
+ fail("Null must not be accepted.");
+ } catch (NullPointerException e) {
+ assertEquals("Specify line break.", e.getMessage());
}
-
- public void testSplitLinesPlain() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.PLAIN);
- Yaml yaml;
- String output;
-
- // Split lines enabled (default) -- split lines does not apply to plain style
- assertTrue(options.getSplitLines());
- yaml = new Yaml(options);
- output = yaml.dump("1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
- assertEquals("1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000\n", output);
+ }
+
+ public void testLineBreakForPlatform() {
+ DumperOptions.LineBreak lineBreak = DumperOptions.LineBreak.getPlatformLineBreak();
+ assertEquals("Line break must match platform's default.", System.getProperty("line.separator"),
+ lineBreak.getString());
+ //
+ Yaml yaml = new Yaml();
+ List<Integer> list = new ArrayList<Integer>();
+ list.add(1);
+ list.add(2);
+ DumperOptions options = new DumperOptions();
+ options.setLineBreak(DumperOptions.LineBreak.getPlatformLineBreak());
+ yaml = new Yaml(options);
+ assertEquals("[1, 2]", yaml.dump(list).trim());
+ }
+
+ public void testLineBreakForPlatformUnix() {
+ System.setProperty("line.separator", "\n");
+ assertEquals("\n", System.getProperty("line.separator"));
+ DumperOptions.LineBreak lineBreak = DumperOptions.LineBreak.getPlatformLineBreak();
+ assertEquals("Line break must match platform's default.", System.getProperty("line.separator"),
+ lineBreak.getString());
+ assertEquals("Unknown Line break must match UNIX line break.", "\n", lineBreak.getString());
+ }
+
+ public void testLineBreakForPlatformMac() {
+ System.setProperty("line.separator", "\r");
+ assertEquals("\r", System.getProperty("line.separator"));
+ DumperOptions.LineBreak lineBreak = DumperOptions.LineBreak.getPlatformLineBreak();
+ assertEquals("Line break must match platform's default.", System.getProperty("line.separator"),
+ lineBreak.getString());
+ assertEquals("Unknown Line break must match UNIX line break.", "\r", lineBreak.getString());
+ }
+
+ public void testLineBreakForPlatformWin() {
+ System.setProperty("line.separator", "\r\n");
+ assertEquals("\r\n", System.getProperty("line.separator"));
+ DumperOptions.LineBreak lineBreak = DumperOptions.LineBreak.getPlatformLineBreak();
+ assertEquals("Line break must match platform's default.", System.getProperty("line.separator"),
+ lineBreak.getString());
+ assertEquals("Unknown Line break must match UNIX line break.", "\r\n", lineBreak.getString());
+ }
+
+ public void testLineBreakForPlatformUnknown() {
+ System.setProperty("line.separator", "\n\r");
+ assertEquals("\n\r", System.getProperty("line.separator"));
+ DumperOptions.LineBreak lineBreak = DumperOptions.LineBreak.getPlatformLineBreak();
+ assertEquals("Unknown Line break must match UNIX line break.", "\n", lineBreak.getString());
+ }
+
+ public void testExplicitStart() {
+ Yaml yaml = new Yaml();
+ List<Integer> list = new ArrayList<Integer>();
+ list.add(1);
+ list.add(2);
+ list.add(3);
+ assertEquals("[1, 2, 3]\n", yaml.dump(list));
+ //
+ DumperOptions options = new DumperOptions();
+ options = new DumperOptions();
+ options.setExplicitStart(true);
+ yaml = new Yaml(options);
+ assertEquals("--- [1, 2, 3]\n", yaml.dump(list));
+ //
+ options.setExplicitEnd(true);
+ yaml = new Yaml(options);
+ assertEquals("--- [1, 2, 3]\n...\n", yaml.dump(list));
+ }
+
+ public void testVersion() {
+ Yaml yaml = new Yaml();
+ List<Integer> list = new ArrayList<Integer>();
+ list.add(1);
+ list.add(2);
+ list.add(3);
+ assertEquals("[1, 2, 3]\n", yaml.dump(list));
+ //
+ DumperOptions options = new DumperOptions();
+ options = new DumperOptions();
+ options.setVersion(DumperOptions.Version.V1_1);
+ yaml = new Yaml(options);
+ assertEquals("%YAML 1.1\n--- [1, 2, 3]\n", yaml.dump(list));
+ //
+ options.setVersion(DumperOptions.Version.V1_0);
+ yaml = new Yaml(options);
+ assertEquals("%YAML 1.0\n--- [1, 2, 3]\n", yaml.dump(list));
+ //
+ assertEquals("Version: 1.1", DumperOptions.Version.V1_1.toString());
+ }
+
+ public void testTags() {
+ Yaml yaml = new Yaml();
+ List<Integer> list = new ArrayList<Integer>();
+ list.add(1);
+ list.add(2);
+ list.add(3);
+ assertEquals("[1, 2, 3]\n", yaml.dump(list));
+ //
+ DumperOptions options = new DumperOptions();
+ options = new DumperOptions();
+ Map<String, String> tags = new LinkedHashMap<String, String>();
+ tags.put("!foo!", "bar");
+ options.setTags(tags);
+ yaml = new Yaml(options);
+ assertEquals("%TAG !foo! bar\n--- [1, 2, 3]\n", yaml.dump(list));
+ //
+ options = new DumperOptions();
+ tags.put("!yaml!", Tag.PREFIX);
+ yaml = new Yaml(options);
+ assertEquals("foo\n", yaml.dump("foo"));
+ }
+
+ public void testAllowUnicode() {
+ Yaml yaml = new Yaml();
+ assertEquals("out: " + yaml.dump("\u00DCber"), "\u00DCber\n", yaml.dump("\u00DCber"));
+ //
+ DumperOptions options = new DumperOptions();
+ options = new DumperOptions();
+ options.setAllowUnicode(false);
+ yaml = new Yaml(options);
+ assertEquals("\"\\xdcber\"\n", yaml.dump("\u00DCber"));
+ }
+
+ public void testToString() {
+ DumperOptions.ScalarStyle scalarStyle = DumperOptions.ScalarStyle.LITERAL;
+ assertEquals("Scalar style: '|'", scalarStyle.toString());
+ //
+ DumperOptions.FlowStyle flowStyle = DumperOptions.FlowStyle.BLOCK;
+ assertEquals("Flow style: 'false'", flowStyle.toString());
+ //
+ DumperOptions.LineBreak lb = DumperOptions.LineBreak.UNIX;
+ assertEquals("Line break: UNIX", lb.toString());
+ }
+
+ public void testWithRepresenter() {
+ Representer representer = new Representer();
+ DumperOptions options = new DumperOptions();
+ options.setIndent(4);
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(representer, options);
+ List<Integer> list = new ArrayList<Integer>();
+ list.add(1);
+ list.add(2);
+ list.add(3);
+ Map<String, Object> map = new LinkedHashMap<String, Object>();
+ map.put("a", "b");
+ map.put("c", list);
+ assertEquals("a: b\nc:\n- 1\n- 2\n- 3\n", yaml.dump(map));
+ }
+
+ public void testSplitLinesDoubleQuoted() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ Yaml yaml;
+ String output;
+
+ // Split lines enabled (default)
+ assertTrue(options.getSplitLines());
+ yaml = new Yaml(options);
+ output = yaml.dump(
+ "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
+ assertEquals(
+ "\"1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888\\\n \\ 9999999999 0000000000\"\n",
+ output);
+
+ // Lines with double spaces can be split too as whitespace can be preserved
+ output = yaml.dump(
+ "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
+ assertEquals(
+ "\"1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777\\\n \\ 8888888888 9999999999 0000000000\"\n",
+ output);
+
+ // Split lines disabled
+ options.setSplitLines(false);
+ assertFalse(options.getSplitLines());
+ yaml = new Yaml(options);
+ output = yaml.dump(
+ "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
+ assertEquals(
+ "\"1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000\"\n",
+ output);
+ }
+
+ public void testSplitLinesSingleQuoted() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.SINGLE_QUOTED);
+ Yaml yaml;
+ String output;
+
+ // Split lines enabled (default)
+ assertTrue(options.getSplitLines());
+ yaml = new Yaml(options);
+ output = yaml.dump(
+ "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
+ assertEquals(
+ "'1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888\n 9999999999 0000000000'\n",
+ output);
+
+ // Do not split on double space as whitespace cannot be preserved in single quoted style
+ output = yaml.dump(
+ "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
+ assertEquals(
+ "'1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000'\n",
+ output);
+
+ // Split lines disabled
+ options.setSplitLines(false);
+ assertFalse(options.getSplitLines());
+ yaml = new Yaml(options);
+ output = yaml.dump(
+ "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
+ assertEquals(
+ "'1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000'\n",
+ output);
+ }
+
+ public void testSplitLinesFolded() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.FOLDED);
+ Yaml yaml;
+ String output;
+
+ // Split lines enabled (default)
+ assertTrue(options.getSplitLines());
+ yaml = new Yaml(options);
+ output = yaml.dump(
+ "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
+ assertEquals(
+ ">-\n 1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888\n 9999999999 0000000000\n",
+ output);
+
+ // Do not split on double space as whitespace cannot be preserved in folded style
+ output = yaml.dump(
+ "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
+ assertEquals(
+ ">-\n 1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000\n",
+ output);
+
+ // Split lines disabled
+ options.setSplitLines(false);
+ assertFalse(options.getSplitLines());
+ yaml = new Yaml(options);
+ output = yaml.dump(
+ "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
+ assertEquals(
+ ">-\n 1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000\n",
+ output);
+ }
+
+ public void testSplitLinesLiteral() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.LITERAL);
+ Yaml yaml;
+ String output;
+
+ // Split lines enabled (default) -- split lines does not apply to literal style
+ assertTrue(options.getSplitLines());
+ yaml = new Yaml(options);
+ output = yaml.dump(
+ "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
+ assertEquals(
+ "|-\n 1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000\n",
+ output);
+ }
+
+ public void testSplitLinesPlain() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.PLAIN);
+ Yaml yaml;
+ String output;
+
+ // Split lines enabled (default)
+ assertTrue(options.getSplitLines());
+ yaml = new Yaml(options);
+ output = yaml.dump(
+ "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
+ assertEquals(
+ "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888\n 9999999999 0000000000\n",
+ output);
+
+ // Do not split on double space as whitespace cannot be preserved in plain style
+ output = yaml.dump(
+ "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
+ assertEquals(
+ "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000\n",
+ output);
+
+ // Split lines disabled
+ options.setSplitLines(false);
+ assertFalse(options.getSplitLines());
+ yaml = new Yaml(options);
+ output = yaml.dump(
+ "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
+ assertEquals(
+ "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000\n",
+ output);
+ }
+
+ public void testSetIndicatorIndentNegative() {
+ DumperOptions options = new DumperOptions();
+ try {
+ options.setIndicatorIndent(-1);
+ fail("Negative indent must not be accepted.");
+ } catch (YAMLException e) {
+ assertEquals("Indicator indent must be non-negative.", e.getMessage());
}
-
- public void testSetIndicatorIndentNegative() {
- DumperOptions options = new DumperOptions();
- try {
- options.setIndicatorIndent(-1);
- fail("Negative indent must not be accepted.");
- } catch (YAMLException e) {
- assertEquals("Indicator indent must be non-negative.", e.getMessage());
- }
+ }
+
+ public void testSetIndicatorIndentTooBig() {
+ DumperOptions options = new DumperOptions();
+ try {
+ options.setIndicatorIndent(100);
+ fail("Negative indent must not be accepted.");
+ } catch (YAMLException e) {
+ assertEquals("Indicator indent must be at most Emitter.MAX_INDENT-1: 9", e.getMessage());
}
-
- public void testSetIndicatorIndentTooBig() {
- DumperOptions options = new DumperOptions();
- try {
- options.setIndicatorIndent(100);
- fail("Negative indent must not be accepted.");
- } catch (YAMLException e) {
- assertEquals("Indicator indent must be at most Emitter.MAX_INDENT-1: 9", e.getMessage());
- }
- }
-
- public void testCreateUnknownStyle() {
- try {
- DumperOptions.ScalarStyle.createStyle(' ');
- fail("Negative indent must not be accepted.");
- } catch (YAMLException e) {
- assertEquals("Unknown scalar style character: ", e.getMessage());
- }
- }
-
- public void testCreateStyle() {
- assertEquals(DumperOptions.ScalarStyle.DOUBLE_QUOTED, DumperOptions.ScalarStyle.createStyle('"'));
- assertEquals(DumperOptions.ScalarStyle.SINGLE_QUOTED, DumperOptions.ScalarStyle.createStyle('\''));
- assertEquals(DumperOptions.ScalarStyle.LITERAL, DumperOptions.ScalarStyle.createStyle('|'));
- assertEquals(DumperOptions.ScalarStyle.FOLDED, DumperOptions.ScalarStyle.createStyle('>'));
- assertEquals(DumperOptions.ScalarStyle.PLAIN, DumperOptions.ScalarStyle.createStyle(null));
+ }
+
+ public void testCreateUnknownStyle() {
+ try {
+ DumperOptions.ScalarStyle.createStyle(' ');
+ fail("Negative indent must not be accepted.");
+ } catch (YAMLException e) {
+ assertEquals("Unknown scalar style character: ", e.getMessage());
}
+ }
+
+ public void testCreateStyle() {
+ assertEquals(DumperOptions.ScalarStyle.DOUBLE_QUOTED,
+ DumperOptions.ScalarStyle.createStyle('"'));
+ assertEquals(DumperOptions.ScalarStyle.SINGLE_QUOTED,
+ DumperOptions.ScalarStyle.createStyle('\''));
+ assertEquals(DumperOptions.ScalarStyle.LITERAL, DumperOptions.ScalarStyle.createStyle('|'));
+ assertEquals(DumperOptions.ScalarStyle.FOLDED, DumperOptions.ScalarStyle.createStyle('>'));
+ assertEquals(DumperOptions.ScalarStyle.PLAIN, DumperOptions.ScalarStyle.createStyle(null));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/EnumBean.java b/src/test/java/org/yaml/snakeyaml/EnumBean.java
index 63653719..9bd96bd4 100644
--- a/src/test/java/org/yaml/snakeyaml/EnumBean.java
+++ b/src/test/java/org/yaml/snakeyaml/EnumBean.java
@@ -1,48 +1,47 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import java.util.LinkedHashMap;
public class EnumBean {
- private int id;
- private Suit suit;
- private LinkedHashMap<Suit, Integer> map = new LinkedHashMap<Suit, Integer>();
- public LinkedHashMap<Suit, Integer> getMap() {
- return map;
- }
+ private int id;
+ private Suit suit;
+ private LinkedHashMap<Suit, Integer> map = new LinkedHashMap<Suit, Integer>();
- public void setMap(LinkedHashMap<Suit, Integer> map) {
- this.map = map;
- }
+ public LinkedHashMap<Suit, Integer> getMap() {
+ return map;
+ }
- public int getId() {
- return id;
- }
+ public void setMap(LinkedHashMap<Suit, Integer> map) {
+ this.map = map;
+ }
- public void setId(int id) {
- this.id = id;
- }
+ public int getId() {
+ return id;
+ }
- public Suit getSuit() {
- return suit;
- }
+ public void setId(int id) {
+ this.id = id;
+ }
- public void setSuit(Suit suit) {
- this.suit = suit;
- }
+ public Suit getSuit() {
+ return suit;
+ }
+
+ public void setSuit(Suit suit) {
+ this.suit = suit;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/EnumBeanGen.java b/src/test/java/org/yaml/snakeyaml/EnumBeanGen.java
new file mode 100644
index 00000000..a819e19e
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/EnumBeanGen.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml;
+
+import java.util.LinkedHashMap;
+
+public class EnumBeanGen<T extends Enum<T>> {
+
+ private int id;
+ private Enum<T> suit;
+ private LinkedHashMap<T, Integer> map = new LinkedHashMap<T, Integer>();
+
+ public LinkedHashMap<T, Integer> getMap() {
+ return map;
+ }
+
+ public void setMap(LinkedHashMap<T, Integer> map) {
+ this.map = map;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public Enum<T> getSuit() {
+ return suit;
+ }
+
+ public void setSuit(T suit) {
+ this.suit = suit;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/EnumBeanGenTest.java b/src/test/java/org/yaml/snakeyaml/EnumBeanGenTest.java
new file mode 100644
index 00000000..6388bfa6
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/EnumBeanGenTest.java
@@ -0,0 +1,100 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml;
+
+import java.util.LinkedHashMap;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.constructor.Constructor;
+import org.yaml.snakeyaml.introspector.PropertySubstitute;
+
+public class EnumBeanGenTest extends TestCase {
+
+ // Dumping
+ public void testDumpEnumBean() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(options);
+ EnumBeanGen<Suit> bean = new EnumBeanGen<Suit>();
+ bean.setId(17);
+ bean.setSuit(Suit.SPADES);
+ LinkedHashMap<Suit, Integer> map = new LinkedHashMap<Suit, Integer>();
+ map.put(Suit.CLUBS, 1);
+ map.put(Suit.DIAMONDS, 2);
+ bean.setMap(map);
+ String output = yaml.dump(bean);
+ assertEquals(
+ "!!org.yaml.snakeyaml.EnumBeanGen\nid: 17\nmap:\n !!org.yaml.snakeyaml.Suit 'CLUBS': 1\n !!org.yaml.snakeyaml.Suit 'DIAMONDS': 2\nsuit: !!org.yaml.snakeyaml.Suit 'SPADES'\n",
+ output);
+ yaml.load(output);// load back
+ }
+
+ // Loading
+ public void testLoadEnumBeanExplicitTags() {
+ Yaml yaml = new Yaml();
+ @SuppressWarnings("unchecked")
+ EnumBeanGen<Suit> bean = yaml.load(
+ "!!org.yaml.snakeyaml.EnumBeanGen\nid: 174\nmap:\n !!org.yaml.snakeyaml.Suit 'CLUBS': 1\n !!org.yaml.snakeyaml.Suit 'DIAMONDS': 2\nsuit: !!org.yaml.snakeyaml.Suit 'CLUBS'");
+
+ LinkedHashMap<Suit, Integer> map = new LinkedHashMap<Suit, Integer>();
+ map.put(Suit.CLUBS, 1);
+ map.put(Suit.DIAMONDS, 2);
+
+ assertEquals(Suit.CLUBS, bean.getSuit());
+ assertEquals(174, bean.getId());
+ assertEquals(map, bean.getMap());
+ }
+
+ public void testLoadNoTag4GenEnumProperty() {
+ TypeDescription td = new TypeDescription(EnumBeanGen.class);
+ td.substituteProperty("suit", Suit.class, null, null);
+
+ Constructor constructor = new Constructor();
+ constructor.addTypeDescription(td);
+ Yaml yaml = new Yaml(constructor);
+
+ @SuppressWarnings("unchecked")
+ EnumBeanGen<Suit> bean = yaml.load(
+ "!!org.yaml.snakeyaml.EnumBeanGen\nid: 174\nmap:\n !!org.yaml.snakeyaml.Suit 'CLUBS': 1\n !!org.yaml.snakeyaml.Suit 'DIAMONDS': 2\nsuit: CLUBS");
+
+ LinkedHashMap<Suit, Integer> map = new LinkedHashMap<Suit, Integer>();
+ map.put(Suit.CLUBS, 1);
+ map.put(Suit.DIAMONDS, 2);
+
+ assertEquals(Suit.CLUBS, bean.getSuit());
+ assertEquals(174, bean.getId());
+ assertEquals(map, bean.getMap());
+ }
+
+ public void testLoadNoTags() {
+ Constructor c = new Constructor();
+ TypeDescription td = new TypeDescription(EnumBeanGen.class);
+ td.substituteProperty("suit", Suit.class, null, null);
+ td.substituteProperty(new PropertySubstitute("map", null, Suit.class, Object.class));
+
+ c.addTypeDescription(td);
+ Yaml yaml = new Yaml(c);
+ @SuppressWarnings("unchecked")
+ EnumBeanGen<Suit> bean = yaml.load(
+ "!!org.yaml.snakeyaml.EnumBeanGen\nid: 174\nmap:\n CLUBS: 1\n DIAMONDS: 2\nsuit: CLUBS");
+
+ LinkedHashMap<Suit, Integer> map = new LinkedHashMap<Suit, Integer>();
+ map.put(Suit.CLUBS, 1);
+ map.put(Suit.DIAMONDS, 2);
+
+ assertEquals(Suit.CLUBS, bean.getSuit());
+ assertEquals(174, bean.getId());
+ assertEquals(map, bean.getMap());
+ }
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/EnumTest.java b/src/test/java/org/yaml/snakeyaml/EnumTest.java
index 3587facc..280b86b5 100644
--- a/src/test/java/org/yaml/snakeyaml/EnumTest.java
+++ b/src/test/java/org/yaml/snakeyaml/EnumTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
@@ -21,179 +19,176 @@ import java.util.EnumMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.constructor.Constructor;
public class EnumTest extends TestCase {
- // Dumping
- public void testDumpEnum() {
- Yaml yaml = new Yaml();
- String output = yaml.dump(Suit.CLUBS);
- assertEquals("!!org.yaml.snakeyaml.Suit 'CLUBS'\n", output);
- }
-
- public void testDumpOverriddenToString() {
- Yaml yaml = new Yaml();
- String output = yaml.dump(DumperOptions.FlowStyle.BLOCK);
- assertEquals("!!org.yaml.snakeyaml.DumperOptions$FlowStyle 'BLOCK'\n", output);
- }
-
- public void testDumpEnumArray() {
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(Suit.values());
- assertEquals(
- "- !!org.yaml.snakeyaml.Suit 'CLUBS'\n- !!org.yaml.snakeyaml.Suit 'DIAMONDS'\n- !!org.yaml.snakeyaml.Suit 'HEARTS'\n- !!org.yaml.snakeyaml.Suit 'SPADES'\n",
- output);
- }
-
- public void testDumpEnumList() {
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- Yaml yaml = new Yaml(options);
- List<Suit> list = Arrays.asList(Suit.values());
- String output = yaml.dump(list);
- assertEquals(
- "- !!org.yaml.snakeyaml.Suit 'CLUBS'\n- !!org.yaml.snakeyaml.Suit 'DIAMONDS'\n- !!org.yaml.snakeyaml.Suit 'HEARTS'\n- !!org.yaml.snakeyaml.Suit 'SPADES'\n",
- output);
- }
-
- public void testDumpEnumListNoAnchor() {
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- Yaml yaml = new Yaml(options);
- List<Suit> list = new ArrayList<Suit>(3);
- list.add(Suit.CLUBS);
- list.add(Suit.DIAMONDS);
- list.add(Suit.CLUBS);
- String output = yaml.dump(list);
- assertEquals(
- "- !!org.yaml.snakeyaml.Suit 'CLUBS'\n- !!org.yaml.snakeyaml.Suit 'DIAMONDS'\n- !!org.yaml.snakeyaml.Suit 'CLUBS'\n",
- output);
- }
-
- public void testDumpEnumMap() {
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- Yaml yaml = new Yaml(options);
- Map<String, Suit> map = new LinkedHashMap<String, Suit>();
- map.put("c", Suit.CLUBS);
- map.put("d", Suit.DIAMONDS);
- String output = yaml.dump(map);
- assertEquals(
- "c: !!org.yaml.snakeyaml.Suit 'CLUBS'\nd: !!org.yaml.snakeyaml.Suit 'DIAMONDS'\n",
- output);
- }
-
- public void testDumpEnumMap2() {
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- Yaml yaml = new Yaml(options);
- Map<Suit, Integer> map = new EnumMap<Suit, Integer>(Suit.class);
- map.put(Suit.CLUBS, 0);
- map.put(Suit.DIAMONDS, 123);
- String output = yaml.dump(map);
- assertEquals(
- "!!org.yaml.snakeyaml.Suit 'CLUBS': 0\n!!org.yaml.snakeyaml.Suit 'DIAMONDS': 123\n",
- output);
- }
-
- public void testDumpEnumBean() {
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- Yaml yaml = new Yaml(options);
- EnumBean bean = new EnumBean();
- bean.setId(17);
- bean.setSuit(Suit.SPADES);
- LinkedHashMap<Suit, Integer> map = new LinkedHashMap<Suit, Integer>();
- map.put(Suit.CLUBS, 1);
- map.put(Suit.DIAMONDS, 2);
- bean.setMap(map);
- String output = yaml.dump(bean);
- assertEquals(
- "!!org.yaml.snakeyaml.EnumBean\nid: 17\nmap:\n CLUBS: 1\n DIAMONDS: 2\nsuit: SPADES\n",
- output);
- }
-
- // Loading
- public void testLoadEnum() {
- Yaml yaml = new Yaml();
- Suit suit = (Suit) yaml.load("!!org.yaml.snakeyaml.Suit 'CLUBS'\n");
- assertEquals(Suit.CLUBS, suit);
- }
-
- public void testLoadOverridenToString() {
- Yaml yaml = new Yaml();
- assertEquals(DumperOptions.FlowStyle.BLOCK,
- yaml.load("!!org.yaml.snakeyaml.DumperOptions$FlowStyle 'BLOCK'\n"));
- }
-
- @SuppressWarnings("unchecked")
- public void testLoadEnumList() {
- Yaml yaml = new Yaml();
- List<Suit> list = (List<Suit>) yaml
- .load("- !!org.yaml.snakeyaml.Suit 'CLUBS'\n- !!org.yaml.snakeyaml.Suit 'DIAMONDS'\n- !!org.yaml.snakeyaml.Suit 'HEARTS'\n- !!org.yaml.snakeyaml.Suit 'SPADES'");
- assertEquals(4, list.size());
- assertEquals(Suit.CLUBS, list.get(0));
- assertEquals(Suit.DIAMONDS, list.get(1));
- assertEquals(Suit.HEARTS, list.get(2));
- assertEquals(Suit.SPADES, list.get(3));
- }
-
- @SuppressWarnings("unchecked")
- public void testLoadEnumMap() {
- Yaml yaml = new Yaml();
- Map<Integer, Suit> map = (Map<Integer, Suit>) yaml
- .load("1: !!org.yaml.snakeyaml.Suit 'HEARTS'\n2: !!org.yaml.snakeyaml.Suit 'DIAMONDS'");
- assertEquals(2, map.size());
- assertEquals(Suit.HEARTS, map.get(1));
- assertEquals(Suit.DIAMONDS, map.get(2));
- }
-
- public void testLoadEnumBean() {
- Yaml yaml = new Yaml();
- EnumBean bean = (EnumBean) yaml
- .load("!!org.yaml.snakeyaml.EnumBean\nid: 174\nmap:\n !!org.yaml.snakeyaml.Suit 'CLUBS': 1\n !!org.yaml.snakeyaml.Suit 'DIAMONDS': 2\nsuit: CLUBS");
-
- LinkedHashMap<Suit, Integer> map = new LinkedHashMap<Suit, Integer>();
- map.put(Suit.CLUBS, 1);
- map.put(Suit.DIAMONDS, 2);
-
- assertEquals(Suit.CLUBS, bean.getSuit());
- assertEquals(174, bean.getId());
- assertEquals(map, bean.getMap());
- }
-
- public void testLoadEnumBean2() {
- Constructor c = new Constructor();
- TypeDescription td = new TypeDescription(EnumBean.class);
- td.putMapPropertyType("map", Suit.class, Object.class);
- c.addTypeDescription(td);
- Yaml yaml = new Yaml(c);
- EnumBean bean = (EnumBean) yaml
- .load("!!org.yaml.snakeyaml.EnumBean\nid: 174\nmap:\n CLUBS: 1\n DIAMONDS: 2\nsuit: CLUBS");
-
- LinkedHashMap<Suit, Integer> map = new LinkedHashMap<Suit, Integer>();
- map.put(Suit.CLUBS, 1);
- map.put(Suit.DIAMONDS, 2);
-
- assertEquals(Suit.CLUBS, bean.getSuit());
- assertEquals(174, bean.getId());
- assertEquals(map, bean.getMap());
- }
-
- public void testLoadWrongEnum() {
- Yaml yaml = new Yaml();
- try {
- yaml.load("1: !!org.yaml.snakeyaml.Suit 'HEARTS'\n2: !!org.yaml.snakeyaml.Suit 'KOSYR'");
- fail("KOSYR is not Suit");
- } catch (Exception e) {
- assertTrue("KOSYR must be reported",
- e.getMessage().contains("Unable to find enum value 'KOSYR' for enum"));
- }
+ // Dumping
+ public void testDumpEnum() {
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(Suit.CLUBS);
+ assertEquals("!!org.yaml.snakeyaml.Suit 'CLUBS'\n", output);
+ }
+
+ public void testDumpOverriddenToString() {
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(DumperOptions.FlowStyle.BLOCK);
+ assertEquals("!!org.yaml.snakeyaml.DumperOptions$FlowStyle 'BLOCK'\n", output);
+ }
+
+ public void testDumpEnumArray() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(Suit.values());
+ assertEquals(
+ "- !!org.yaml.snakeyaml.Suit 'CLUBS'\n- !!org.yaml.snakeyaml.Suit 'DIAMONDS'\n- !!org.yaml.snakeyaml.Suit 'HEARTS'\n- !!org.yaml.snakeyaml.Suit 'SPADES'\n",
+ output);
+ }
+
+ public void testDumpEnumList() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(options);
+ List<Suit> list = Arrays.asList(Suit.values());
+ String output = yaml.dump(list);
+ assertEquals(
+ "- !!org.yaml.snakeyaml.Suit 'CLUBS'\n- !!org.yaml.snakeyaml.Suit 'DIAMONDS'\n- !!org.yaml.snakeyaml.Suit 'HEARTS'\n- !!org.yaml.snakeyaml.Suit 'SPADES'\n",
+ output);
+ }
+
+ public void testDumpEnumListNoAnchor() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(options);
+ List<Suit> list = new ArrayList<Suit>(3);
+ list.add(Suit.CLUBS);
+ list.add(Suit.DIAMONDS);
+ list.add(Suit.CLUBS);
+ String output = yaml.dump(list);
+ assertEquals(
+ "- !!org.yaml.snakeyaml.Suit 'CLUBS'\n- !!org.yaml.snakeyaml.Suit 'DIAMONDS'\n- !!org.yaml.snakeyaml.Suit 'CLUBS'\n",
+ output);
+ }
+
+ public void testDumpEnumMap() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(options);
+ Map<String, Suit> map = new LinkedHashMap<String, Suit>();
+ map.put("c", Suit.CLUBS);
+ map.put("d", Suit.DIAMONDS);
+ String output = yaml.dump(map);
+ assertEquals("c: !!org.yaml.snakeyaml.Suit 'CLUBS'\nd: !!org.yaml.snakeyaml.Suit 'DIAMONDS'\n",
+ output);
+ }
+
+ public void testDumpEnumMap2() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(options);
+ Map<Suit, Integer> map = new EnumMap<Suit, Integer>(Suit.class);
+ map.put(Suit.CLUBS, 0);
+ map.put(Suit.DIAMONDS, 123);
+ String output = yaml.dump(map);
+ assertEquals(
+ "!!org.yaml.snakeyaml.Suit 'CLUBS': 0\n!!org.yaml.snakeyaml.Suit 'DIAMONDS': 123\n",
+ output);
+ }
+
+ public void testDumpEnumBean() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(options);
+ EnumBean bean = new EnumBean();
+ bean.setId(17);
+ bean.setSuit(Suit.SPADES);
+ LinkedHashMap<Suit, Integer> map = new LinkedHashMap<Suit, Integer>();
+ map.put(Suit.CLUBS, 1);
+ map.put(Suit.DIAMONDS, 2);
+ bean.setMap(map);
+ String output = yaml.dump(bean);
+ assertEquals(
+ "!!org.yaml.snakeyaml.EnumBean\nid: 17\nmap:\n CLUBS: 1\n DIAMONDS: 2\nsuit: SPADES\n",
+ output);
+ }
+
+ // Loading
+ public void testLoadEnum() {
+ Yaml yaml = new Yaml();
+ Suit suit = yaml.load("!!org.yaml.snakeyaml.Suit 'CLUBS'\n");
+ assertEquals(Suit.CLUBS, suit);
+ }
+
+ public void testLoadOverridenToString() {
+ Yaml yaml = new Yaml();
+ assertEquals(DumperOptions.FlowStyle.BLOCK,
+ yaml.load("!!org.yaml.snakeyaml.DumperOptions$FlowStyle 'BLOCK'\n"));
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testLoadEnumList() {
+ Yaml yaml = new Yaml();
+ List<Suit> list = yaml.load(
+ "- !!org.yaml.snakeyaml.Suit 'CLUBS'\n- !!org.yaml.snakeyaml.Suit 'DIAMONDS'\n- !!org.yaml.snakeyaml.Suit 'HEARTS'\n- !!org.yaml.snakeyaml.Suit 'SPADES'");
+ assertEquals(4, list.size());
+ assertEquals(Suit.CLUBS, list.get(0));
+ assertEquals(Suit.DIAMONDS, list.get(1));
+ assertEquals(Suit.HEARTS, list.get(2));
+ assertEquals(Suit.SPADES, list.get(3));
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testLoadEnumMap() {
+ Yaml yaml = new Yaml();
+ Map<Integer, Suit> map =
+ yaml.load("1: !!org.yaml.snakeyaml.Suit 'HEARTS'\n2: !!org.yaml.snakeyaml.Suit 'DIAMONDS'");
+ assertEquals(2, map.size());
+ assertEquals(Suit.HEARTS, map.get(1));
+ assertEquals(Suit.DIAMONDS, map.get(2));
+ }
+
+ public void testLoadEnumBean() {
+ Yaml yaml = new Yaml();
+ EnumBean bean = yaml.load(
+ "!!org.yaml.snakeyaml.EnumBean\nid: 174\nmap:\n !!org.yaml.snakeyaml.Suit 'CLUBS': 1\n !!org.yaml.snakeyaml.Suit 'DIAMONDS': 2\nsuit: CLUBS");
+
+ LinkedHashMap<Suit, Integer> map = new LinkedHashMap<Suit, Integer>();
+ map.put(Suit.CLUBS, 1);
+ map.put(Suit.DIAMONDS, 2);
+
+ assertEquals(Suit.CLUBS, bean.getSuit());
+ assertEquals(174, bean.getId());
+ assertEquals(map, bean.getMap());
+ }
+
+ public void testLoadEnumBean2() {
+ Constructor c = new Constructor();
+ TypeDescription td = new TypeDescription(EnumBean.class);
+ td.putMapPropertyType("map", Suit.class, Object.class);
+ c.addTypeDescription(td);
+ Yaml yaml = new Yaml(c);
+ EnumBean bean = yaml.load(
+ "!!org.yaml.snakeyaml.EnumBean\nid: 174\nmap:\n CLUBS: 1\n DIAMONDS: 2\nsuit: CLUBS");
+
+ LinkedHashMap<Suit, Integer> map = new LinkedHashMap<Suit, Integer>();
+ map.put(Suit.CLUBS, 1);
+ map.put(Suit.DIAMONDS, 2);
+
+ assertEquals(Suit.CLUBS, bean.getSuit());
+ assertEquals(174, bean.getId());
+ assertEquals(map, bean.getMap());
+ }
+
+ public void testLoadWrongEnum() {
+ Yaml yaml = new Yaml();
+ try {
+ yaml.load("1: !!org.yaml.snakeyaml.Suit 'HEARTS'\n2: !!org.yaml.snakeyaml.Suit 'KOSYR'");
+ fail("KOSYR is not Suit");
+ } catch (Exception e) {
+ assertTrue("KOSYR must be reported",
+ e.getMessage().contains("Unable to find enum value 'KOSYR' for enum"));
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/Example2_24Test.java b/src/test/java/org/yaml/snakeyaml/Example2_24Test.java
index aa544641..6931f84d 100644
--- a/src/test/java/org/yaml/snakeyaml/Example2_24Test.java
+++ b/src/test/java/org/yaml/snakeyaml/Example2_24Test.java
@@ -1,26 +1,22 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.constructor.AbstractConstruct;
import org.yaml.snakeyaml.constructor.Constructor;
import org.yaml.snakeyaml.nodes.MappingNode;
@@ -32,216 +28,229 @@ import org.yaml.snakeyaml.representer.Representer;
/**
* Test Example 2.24 from the YAML specification
- *
- * @see <a href="http://yaml.org/spec/1.1/"></a>
*/
public class Example2_24Test extends TestCase {
- class MyConstructor extends Constructor {
- public MyConstructor() {
- this.yamlConstructors.put(new Tag("tag:clarkevans.com,2002:shape"),
- new ConstructShape());
- this.yamlConstructors.put(new Tag("tag:clarkevans.com,2002:circle"),
- new ConstructCircle());
- this.yamlConstructors.put(new Tag("tag:clarkevans.com,2002:line"), new ConstructLine());
- this.yamlConstructors.put(new Tag("tag:clarkevans.com,2002:label"),
- new ConstructLabel());
- }
-
- private class ConstructShape extends AbstractConstruct {
- @SuppressWarnings("unchecked")
- public Object construct(Node node) {
- SequenceNode snode = (SequenceNode) node;
- List<Entity> values = (List<Entity>) constructSequence(snode);
- Shape shape = new Shape(values);
- return shape;
- }
- }
-
- private class ConstructCircle extends AbstractConstruct {
- @SuppressWarnings("unchecked")
- public Object construct(Node node) {
- MappingNode mnode = (MappingNode) node;
- Map<Object, Object> values = constructMapping(mnode);
- Circle circle = new Circle((Map<String, Integer>) values.get("center"),
- (Integer) values.get("radius"));
- return circle;
- }
- }
-
- private class ConstructLine extends AbstractConstruct {
- @SuppressWarnings("unchecked")
- public Object construct(Node node) {
- MappingNode mnode = (MappingNode) node;
- Map<Object, Object> values = constructMapping(mnode);
- Line line = new Line((Map<String, Integer>) values.get("start"),
- (Map<String, Integer>) values.get("finish"));
- return line;
- }
- }
-
- private class ConstructLabel extends AbstractConstruct {
- @SuppressWarnings("unchecked")
- public Object construct(Node node) {
- MappingNode mnode = (MappingNode) node;
- Map<Object, Object> values = constructMapping(mnode);
- Label label = new Label((Map<String, Integer>) values.get("start"),
- (Integer) values.get("color"), (String) values.get("text"));
- return label;
- }
- }
- }
-
- class MyRepresenter extends Representer {
- public MyRepresenter() {
- this.representers.put(Shape.class, new RepresentShape());
- this.representers.put(Circle.class, new RepresentCircle());
- this.representers.put(Line.class, new RepresentLine());
- this.representers.put(Label.class, new RepresentLabel());
- this.representers.put(HexInteger.class, new RepresentHex());
- }
-
- private class RepresentShape implements Represent {
- public Node representData(Object data) {
- Shape shape = (Shape) data;
- List<Entity> value = shape.getEntities();
- return representSequence(new Tag("!shape"), value, Boolean.FALSE);
- }
- }
-
- private class RepresentCircle implements Represent {
- public Node representData(Object data) {
- Circle circle = (Circle) data;
- Map<String, Object> map = new TreeMap<String, Object>();
- map.put("center", circle.getCenter());
- map.put("radius", circle.getRadius());
- return representMapping(new Tag("!circle"), map, Boolean.FALSE);
- }
- }
-
- private class RepresentLine implements Represent {
- public Node representData(Object data) {
- Line line = (Line) data;
- Map<String, Object> map = new TreeMap<String, Object>();
- map.put("start", line.getStart());
- map.put("finish", line.getFinish());
- return representMapping(new Tag("!line"), map, Boolean.FALSE);
- }
- }
-
- private class RepresentLabel implements Represent {
- public Node representData(Object data) {
- Label label = (Label) data;
- Map<String, Object> map = new TreeMap<String, Object>();
- map.put("start", label.getStart());
- map.put("color", new HexInteger(label.getColor()));
- map.put("text", label.getText());
- return representMapping(new Tag("!label"), map, Boolean.FALSE);
- }
- }
-
- private class RepresentHex implements Represent {
- public Node representData(Object data) {
- HexInteger hex = (HexInteger) data;
- return representScalar(Tag.INT, "0x"
- + Integer.toHexString(hex.getColor()).toUpperCase(), null);
- }
- }
- }
-
- private class HexInteger {
- private Integer color;
-
- public HexInteger(Integer color) {
- this.color = color;
- }
-
- public Integer getColor() {
- return color;
- }
- }
-
- private class Shape {
- private List<Entity> entities;
-
- public List<Entity> getEntities() {
- return entities;
- }
-
- public Shape(List<Entity> entities) {
- this.entities = entities;
- }
- }
-
- private class Entity {
- }
-
- private class Circle extends Entity {
- private Map<String, Integer> center;
- private Integer radius;
-
- public Circle(Map<String, Integer> center, Integer radius) {
- this.center = center;
- this.radius = radius;
- }
-
- public Map<String, Integer> getCenter() {
- return center;
- }
-
- public Integer getRadius() {
- return radius;
- }
- }
-
- private class Line extends Entity {
- private Map<String, Integer> start;
- private Map<String, Integer> finish;
-
- public Line(Map<String, Integer> start, Map<String, Integer> finish) {
- this.start = start;
- this.finish = finish;
- }
-
- public Map<String, Integer> getStart() {
- return start;
- }
-
- public Map<String, Integer> getFinish() {
- return finish;
- }
- }
-
- private class Label extends Entity {
- private Map<String, Integer> start;
- private Integer color;
- private String text;
- public Label(Map<String, Integer> start, Integer color, String text) {
- this.start = start;
- this.color = color;
- this.text = text;
- }
+ class MyConstructor extends Constructor {
+
+ public MyConstructor() {
+ this.yamlConstructors.put(new Tag("tag:clarkevans.com,2002:shape"), new ConstructShape());
+ this.yamlConstructors.put(new Tag("tag:clarkevans.com,2002:circle"), new ConstructCircle());
+ this.yamlConstructors.put(new Tag("tag:clarkevans.com,2002:line"), new ConstructLine());
+ this.yamlConstructors.put(new Tag("tag:clarkevans.com,2002:label"), new ConstructLabel());
+ }
+
+ private class ConstructShape extends AbstractConstruct {
+
+ @SuppressWarnings("unchecked")
+ public Object construct(Node node) {
+ SequenceNode snode = (SequenceNode) node;
+ List<Entity> values = (List<Entity>) constructSequence(snode);
+ Shape shape = new Shape(values);
+ return shape;
+ }
+ }
+
+ private class ConstructCircle extends AbstractConstruct {
+
+ @SuppressWarnings("unchecked")
+ public Object construct(Node node) {
+ MappingNode mnode = (MappingNode) node;
+ Map<Object, Object> values = constructMapping(mnode);
+ Circle circle =
+ new Circle((Map<String, Integer>) values.get("center"), (Integer) values.get("radius"));
+ return circle;
+ }
+ }
+
+ private class ConstructLine extends AbstractConstruct {
+
+ @SuppressWarnings("unchecked")
+ public Object construct(Node node) {
+ MappingNode mnode = (MappingNode) node;
+ Map<Object, Object> values = constructMapping(mnode);
+ Line line = new Line((Map<String, Integer>) values.get("start"),
+ (Map<String, Integer>) values.get("finish"));
+ return line;
+ }
+ }
+
+ private class ConstructLabel extends AbstractConstruct {
+
+ @SuppressWarnings("unchecked")
+ public Object construct(Node node) {
+ MappingNode mnode = (MappingNode) node;
+ Map<Object, Object> values = constructMapping(mnode);
+ Label label = new Label((Map<String, Integer>) values.get("start"),
+ (Integer) values.get("color"), (String) values.get("text"));
+ return label;
+ }
+ }
+ }
+
+ class MyRepresenter extends Representer {
+
+ public MyRepresenter() {
+ this.representers.put(Shape.class, new RepresentShape());
+ this.representers.put(Circle.class, new RepresentCircle());
+ this.representers.put(Line.class, new RepresentLine());
+ this.representers.put(Label.class, new RepresentLabel());
+ this.representers.put(HexInteger.class, new RepresentHex());
+ }
+
+ private class RepresentShape implements Represent {
+
+ public Node representData(Object data) {
+ Shape shape = (Shape) data;
+ List<Entity> value = shape.getEntities();
+ return representSequence(new Tag("!shape"), value, DumperOptions.FlowStyle.BLOCK);
+ }
+ }
+
+ private class RepresentCircle implements Represent {
+
+ public Node representData(Object data) {
+ Circle circle = (Circle) data;
+ Map<String, Object> map = new TreeMap<String, Object>();
+ map.put("center", circle.getCenter());
+ map.put("radius", circle.getRadius());
+ return representMapping(new Tag("!circle"), map, DumperOptions.FlowStyle.BLOCK);
+ }
+ }
+
+ private class RepresentLine implements Represent {
+
+ public Node representData(Object data) {
+ Line line = (Line) data;
+ Map<String, Object> map = new TreeMap<String, Object>();
+ map.put("start", line.getStart());
+ map.put("finish", line.getFinish());
+ return representMapping(new Tag("!line"), map, DumperOptions.FlowStyle.BLOCK);
+ }
+ }
+
+ private class RepresentLabel implements Represent {
+
+ public Node representData(Object data) {
+ Label label = (Label) data;
+ Map<String, Object> map = new TreeMap<String, Object>();
+ map.put("start", label.getStart());
+ map.put("color", new HexInteger(label.getColor()));
+ map.put("text", label.getText());
+ return representMapping(new Tag("!label"), map, DumperOptions.FlowStyle.BLOCK);
+ }
+ }
+
+ private class RepresentHex implements Represent {
+
+ public Node representData(Object data) {
+ HexInteger hex = (HexInteger) data;
+ return representScalar(Tag.INT, "0x" + Integer.toHexString(hex.getColor()).toUpperCase(),
+ null);
+ }
+ }
+ }
+
+ private class HexInteger {
+
+ private final Integer color;
+
+ public HexInteger(Integer color) {
+ this.color = color;
+ }
+
+ public Integer getColor() {
+ return color;
+ }
+ }
+
+ private class Shape {
+
+ private final List<Entity> entities;
+
+ public List<Entity> getEntities() {
+ return entities;
+ }
+
+ public Shape(List<Entity> entities) {
+ this.entities = entities;
+ }
+ }
+
+ private class Entity {
+
+ }
+
+ private class Circle extends Entity {
+
+ private final Map<String, Integer> center;
+ private final Integer radius;
+
+ public Circle(Map<String, Integer> center, Integer radius) {
+ this.center = center;
+ this.radius = radius;
+ }
+
+ public Map<String, Integer> getCenter() {
+ return center;
+ }
+
+ public Integer getRadius() {
+ return radius;
+ }
+ }
- public Map<String, Integer> getStart() {
- return start;
- }
+ private class Line extends Entity {
- public Integer getColor() {
- return color;
- }
+ private final Map<String, Integer> start;
+ private final Map<String, Integer> finish;
+
+ public Line(Map<String, Integer> start, Map<String, Integer> finish) {
+ this.start = start;
+ this.finish = finish;
+ }
+
+ public Map<String, Integer> getStart() {
+ return start;
+ }
+
+ public Map<String, Integer> getFinish() {
+ return finish;
+ }
+ }
+
+ private class Label extends Entity {
+
+ private final Map<String, Integer> start;
+ private final Integer color;
+ private final String text;
+
+ public Label(Map<String, Integer> start, Integer color, String text) {
+ this.start = start;
+ this.color = color;
+ this.text = text;
+ }
+
+ public Map<String, Integer> getStart() {
+ return start;
+ }
- public String getText() {
- return text;
- }
+ public Integer getColor() {
+ return color;
}
- public void testExample_2_24() {
- Yaml yaml = new Yaml(new MyConstructor());
- Shape shape = (Shape) yaml.load(Util.getLocalResource("specification/example2_24.yaml"));
- assertNotNull(shape);
- yaml = new Yaml(new MyRepresenter());
- String output = yaml.dump(shape);
- String etalon = Util.getLocalResource("specification/example2_24_dumped.yaml");
- assertEquals(etalon, output);
+ public String getText() {
+ return text;
}
+ }
+
+ public void testExample_2_24() {
+ Yaml yaml = new Yaml(new MyConstructor());
+ Shape shape = yaml.load(Util.getLocalResource("specification/example2_24.yaml"));
+ assertNotNull(shape);
+ yaml = new Yaml(new MyRepresenter());
+ String output = yaml.dump(shape);
+ String etalon = Util.getLocalResource("specification/example2_24_dumped.yaml");
+ assertEquals(etalon, output);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/Example2_27Test.java b/src/test/java/org/yaml/snakeyaml/Example2_27Test.java
index e51be0fe..70f9a3c6 100644
--- a/src/test/java/org/yaml/snakeyaml/Example2_27Test.java
+++ b/src/test/java/org/yaml/snakeyaml/Example2_27Test.java
@@ -1,41 +1,35 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.constructor.Constructor;
/**
* Test Example 2.27 from the YAML specification
- *
- * @see <a href="http://yaml.org/spec/1.1/"></a>
*/
public class Example2_27Test extends TestCase {
- public void testExample_2_27() {
- Yaml yaml = new Yaml(new Constructor(Invoice.class));
- Invoice invoice = (Invoice) yaml.load(Util
- .getLocalResource("specification/example2_27.yaml"));
- assertNotNull(invoice);
- Person billTo = invoice.billTo;
- assertEquals("Dumars", billTo.family);
- yaml = new Yaml();
- String output = yaml.dump(invoice);
- String etalon = Util.getLocalResource("specification/example2_27_dumped.yaml");
- assertEquals(etalon, output);
- }
+ public void testExample_2_27() {
+ Yaml yaml = new Yaml(new Constructor(Invoice.class));
+ Invoice invoice = yaml.load(Util.getLocalResource("specification/example2_27.yaml"));
+ assertNotNull(invoice);
+ Person billTo = invoice.billTo;
+ assertEquals("Dumars", billTo.family);
+ yaml = new Yaml();
+ String output = yaml.dump(invoice);
+ String etalon = Util.getLocalResource("specification/example2_27_dumped.yaml");
+ assertEquals(etalon, output);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/ExclamationTagTest.java b/src/test/java/org/yaml/snakeyaml/ExclamationTagTest.java
new file mode 100644
index 00000000..1a590bc9
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/ExclamationTagTest.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+/**
+ * The tag "!" must force the parser to use only the node kind (scalar, sequence, mapping) (issue
+ * 459)
+ */
+public class ExclamationTagTest {
+
+ @Test
+ public void testImplicitTag() {
+ Yaml yaml = new Yaml();
+ Object result = yaml.load("! 12");
+ assertEquals("It works the same way as PyYAML", 12, result);
+ // It might be changed -> assertEquals("12", yaml.load("! 12"));
+ }
+
+ @Test
+ public void testNoImplicitTag() {
+ Yaml yaml = new Yaml();
+ Object result = yaml.load("12");
+ assertEquals(12, result);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/InputOutputExceptionTest.java b/src/test/java/org/yaml/snakeyaml/InputOutputExceptionTest.java
index d309b542..3fd64c9d 100644
--- a/src/test/java/org/yaml/snakeyaml/InputOutputExceptionTest.java
+++ b/src/test/java/org/yaml/snakeyaml/InputOutputExceptionTest.java
@@ -1,80 +1,79 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import java.io.IOException;
import java.io.InputStream;
import java.io.Writer;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.error.YAMLException;
public class InputOutputExceptionTest extends TestCase {
- public void testIOExceptionOnLoad() {
- try {
- new Yaml().load(new BrokenInputStream());
- fail("Input must be broken.");
- } catch (YAMLException e) {
- assertTrue(e.getCause() instanceof IOException);
- assertEquals("java.io.IOException: Broken 2", e.getMessage());
- }
+
+ public void testIOExceptionOnLoad() {
+ try {
+ new Yaml().load(new BrokenInputStream());
+ fail("Input must be broken.");
+ } catch (YAMLException e) {
+ assertTrue(e.getCause() instanceof IOException);
+ assertEquals("java.io.IOException: Broken 2", e.getMessage());
}
+ }
- public void testIOExceptionOnDump() {
- try {
- new Yaml().dump("something", new BrokenWriter());
- fail("Output must be broken.");
- } catch (YAMLException e) {
- assertTrue(e.getCause() instanceof IOException);
- assertEquals("java.io.IOException: Broken 12", e.getMessage());
- }
+ public void testIOExceptionOnDump() {
+ try {
+ new Yaml().dump("something", new BrokenWriter());
+ fail("Output must be broken.");
+ } catch (YAMLException e) {
+ assertTrue(e.getCause() instanceof IOException);
+ assertEquals("java.io.IOException: Broken 12", e.getMessage());
}
+ }
- private static class BrokenInputStream extends InputStream {
- @Override
- public int read() throws IOException {
- throw new IOException("Broken 1");
- }
+ private static class BrokenInputStream extends InputStream {
- @Override
- public int read(byte[] bytes, int i, int i1) throws IOException {
- throw new IOException("Broken 2");
- }
+ @Override
+ public int read() throws IOException {
+ throw new IOException("Broken 1");
+ }
- @Override
- public void close() throws IOException {
- throw new IOException("Broken 3");
- }
+ @Override
+ public int read(byte[] bytes, int i, int i1) throws IOException {
+ throw new IOException("Broken 2");
}
- private static class BrokenWriter extends Writer {
- @Override
- public void close() throws IOException {
- throw new IOException("Broken 10");
- }
+ @Override
+ public void close() throws IOException {
+ throw new IOException("Broken 3");
+ }
+ }
- @Override
- public void flush() throws IOException {
- throw new IOException("Broken 11");
- }
+ private static class BrokenWriter extends Writer {
+
+ @Override
+ public void close() throws IOException {
+ throw new IOException("Broken 10");
+ }
+
+ @Override
+ public void flush() throws IOException {
+ throw new IOException("Broken 11");
+ }
- @Override
- public void write(char[] cbuf, int off, int len) throws IOException {
- throw new IOException("Broken 12");
- }
+ @Override
+ public void write(char[] cbuf, int off, int len) throws IOException {
+ throw new IOException("Broken 12");
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/Invoice.java b/src/test/java/org/yaml/snakeyaml/Invoice.java
index 0e807751..213c161b 100644
--- a/src/test/java/org/yaml/snakeyaml/Invoice.java
+++ b/src/test/java/org/yaml/snakeyaml/Invoice.java
@@ -1,30 +1,29 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import java.util.List;
public class Invoice {
- public Integer invoice; // invoice
- public String date; // date
- public Person billTo;// bill-to
- public Person shipTo;// ship-to
- public List<Product> product;
- public Float tax;
- public Float total;
- public String comments;
-} \ No newline at end of file
+ public Integer invoice; // invoice
+ public String date; // date
+ public Person billTo;// bill-to
+ public Person shipTo;// ship-to
+ public List<Product> product;
+ public Float tax;
+ public Float total;
+ public String comments;
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/JavaBeanTimeStampTest.java b/src/test/java/org/yaml/snakeyaml/JavaBeanTimeStampTest.java
index 90a456ce..957d5375 100644
--- a/src/test/java/org/yaml/snakeyaml/JavaBeanTimeStampTest.java
+++ b/src/test/java/org/yaml/snakeyaml/JavaBeanTimeStampTest.java
@@ -1,61 +1,58 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import java.sql.Date;
import java.sql.Timestamp;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions.FlowStyle;
public class JavaBeanTimeStampTest extends TestCase {
- public void testLoadDefaultJavaSqlTimestamp() {
- JavaBeanWithSqlTimestamp javaBeanToDump = new JavaBeanWithSqlTimestamp();
- Timestamp stamp = new Timestamp(1000000000000L);
- javaBeanToDump.setTimestamp(stamp);
- Date date = new Date(1001376000000L);
- javaBeanToDump.setDate(date);
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(FlowStyle.BLOCK);
- Yaml yaml = new Yaml(options);
- String dumpStr = yaml.dump(javaBeanToDump);
- assertEquals(
- "!!org.yaml.snakeyaml.JavaBeanWithSqlTimestamp\ndate: 2001-09-25T00:00:00Z\ntimestamp: 2001-09-09T01:46:40Z\n",
- dumpStr);
- Yaml loader = new Yaml();
- JavaBeanWithSqlTimestamp javaBeanToLoad = loader.loadAs(dumpStr,
- JavaBeanWithSqlTimestamp.class);
- assertEquals(stamp, javaBeanToLoad.getTimestamp());
- assertEquals(date, javaBeanToLoad.getDate());
- }
- public void testLoadDefaultJavaSqlTimestampNoGlobalTag() {
- JavaBeanWithSqlTimestamp javaBeanToDump = new JavaBeanWithSqlTimestamp();
- Timestamp stamp = new Timestamp(1000000000000L);
- javaBeanToDump.setTimestamp(stamp);
- Date date = new Date(1001376000000L);
- javaBeanToDump.setDate(date);
- Yaml yaml = new Yaml();
- String dumpStr = yaml.dumpAsMap(javaBeanToDump);
- assertEquals("date: 2001-09-25T00:00:00Z\ntimestamp: 2001-09-09T01:46:40Z\n", dumpStr);
- Yaml loader = new Yaml();
- JavaBeanWithSqlTimestamp javaBeanToLoad = loader.loadAs(dumpStr,
- JavaBeanWithSqlTimestamp.class);
- assertEquals(stamp, javaBeanToLoad.getTimestamp());
- assertEquals(date, javaBeanToLoad.getDate());
- }
+ public void testLoadDefaultJavaSqlTimestamp() {
+ JavaBeanWithSqlTimestamp javaBeanToDump = new JavaBeanWithSqlTimestamp();
+ Timestamp stamp = new Timestamp(1000000000000L);
+ javaBeanToDump.setTimestamp(stamp);
+ Date date = new Date(1001376000000L);
+ javaBeanToDump.setDate(date);
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(options);
+ String dumpStr = yaml.dump(javaBeanToDump);
+ assertEquals(
+ "!!org.yaml.snakeyaml.JavaBeanWithSqlTimestamp\ndate: 2001-09-25T00:00:00Z\ntimestamp: 2001-09-09T01:46:40Z\n",
+ dumpStr);
+ Yaml loader = new Yaml();
+ JavaBeanWithSqlTimestamp javaBeanToLoad =
+ loader.loadAs(dumpStr, JavaBeanWithSqlTimestamp.class);
+ assertEquals(stamp, javaBeanToLoad.getTimestamp());
+ assertEquals(date, javaBeanToLoad.getDate());
+ }
+
+ public void testLoadDefaultJavaSqlTimestampNoGlobalTag() {
+ JavaBeanWithSqlTimestamp javaBeanToDump = new JavaBeanWithSqlTimestamp();
+ Timestamp stamp = new Timestamp(1000000000000L);
+ javaBeanToDump.setTimestamp(stamp);
+ Date date = new Date(1001376000000L);
+ javaBeanToDump.setDate(date);
+ Yaml yaml = new Yaml();
+ String dumpStr = yaml.dumpAsMap(javaBeanToDump);
+ assertEquals("date: 2001-09-25T00:00:00Z\ntimestamp: 2001-09-09T01:46:40Z\n", dumpStr);
+ Yaml loader = new Yaml();
+ JavaBeanWithSqlTimestamp javaBeanToLoad =
+ loader.loadAs(dumpStr, JavaBeanWithSqlTimestamp.class);
+ assertEquals(stamp, javaBeanToLoad.getTimestamp());
+ assertEquals(date, javaBeanToLoad.getDate());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/JavaBeanWithNullValues.java b/src/test/java/org/yaml/snakeyaml/JavaBeanWithNullValues.java
index 83b8d812..083b126a 100644
--- a/src/test/java/org/yaml/snakeyaml/JavaBeanWithNullValues.java
+++ b/src/test/java/org/yaml/snakeyaml/JavaBeanWithNullValues.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
@@ -19,88 +17,88 @@ import java.sql.Timestamp;
import java.util.Date;
public class JavaBeanWithNullValues {
- private String string;
- private Integer integer;
- private Float float1;
- private Double double1;
- private Long long1;
- private Date date;
- private java.sql.Date sqlDate;
- private Timestamp timestamp;
- private Boolean boolean1;
-
- public JavaBeanWithNullValues() {
- }
-
- public String getString() {
- return string;
- }
-
- public void setString(String string) {
- this.string = string;
- }
-
- public Integer getInteger() {
- return integer;
- }
-
- public void setInteger(Integer integer) {
- this.integer = integer;
- }
-
- public Float getFloat1() {
- return float1;
- }
-
- public void setFloat1(Float float1) {
- this.float1 = float1;
- }
-
- public Double getDouble1() {
- return double1;
- }
-
- public void setDouble1(Double double1) {
- this.double1 = double1;
- }
-
- public Long getLong1() {
- return long1;
- }
-
- public void setLong1(Long long1) {
- this.long1 = long1;
- }
-
- public Date getDate() {
- return date;
- }
-
- public void setDate(Date date) {
- this.date = date;
- }
-
- public java.sql.Date getSqlDate() {
- return sqlDate;
- }
-
- public void setSqlDate(java.sql.Date sqlDate) {
- this.sqlDate = sqlDate;
- }
-
- public Timestamp getTimestamp() {
- return timestamp;
- }
-
- public void setTimestamp(Timestamp timestamp) {
- this.timestamp = timestamp;
- }
-
- public Boolean getBoolean1() {
- return boolean1;
- }
-
- public void setBoolean1(Boolean boolean1) {
- this.boolean1 = boolean1;
- }
+
+ private String string;
+ private Integer integer;
+ private Float float1;
+ private Double double1;
+ private Long long1;
+ private Date date;
+ private java.sql.Date sqlDate;
+ private Timestamp timestamp;
+ private Boolean boolean1;
+
+ public JavaBeanWithNullValues() {}
+
+ public String getString() {
+ return string;
+ }
+
+ public void setString(String string) {
+ this.string = string;
+ }
+
+ public Integer getInteger() {
+ return integer;
+ }
+
+ public void setInteger(Integer integer) {
+ this.integer = integer;
+ }
+
+ public Float getFloat1() {
+ return float1;
+ }
+
+ public void setFloat1(Float float1) {
+ this.float1 = float1;
+ }
+
+ public Double getDouble1() {
+ return double1;
+ }
+
+ public void setDouble1(Double double1) {
+ this.double1 = double1;
+ }
+
+ public Long getLong1() {
+ return long1;
+ }
+
+ public void setLong1(Long long1) {
+ this.long1 = long1;
+ }
+
+ public Date getDate() {
+ return date;
+ }
+
+ public void setDate(Date date) {
+ this.date = date;
+ }
+
+ public java.sql.Date getSqlDate() {
+ return sqlDate;
+ }
+
+ public void setSqlDate(java.sql.Date sqlDate) {
+ this.sqlDate = sqlDate;
+ }
+
+ public Timestamp getTimestamp() {
+ return timestamp;
+ }
+
+ public void setTimestamp(Timestamp timestamp) {
+ this.timestamp = timestamp;
+ }
+
+ public Boolean getBoolean1() {
+ return boolean1;
+ }
+
+ public void setBoolean1(Boolean boolean1) {
+ this.boolean1 = boolean1;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/JavaBeanWithNullValuesTest.java b/src/test/java/org/yaml/snakeyaml/JavaBeanWithNullValuesTest.java
index dc63f482..f8c4374c 100644
--- a/src/test/java/org/yaml/snakeyaml/JavaBeanWithNullValuesTest.java
+++ b/src/test/java/org/yaml/snakeyaml/JavaBeanWithNullValuesTest.java
@@ -1,187 +1,184 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import java.sql.Timestamp;
import java.util.Date;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.nodes.Node;
import org.yaml.snakeyaml.nodes.Tag;
import org.yaml.snakeyaml.representer.Represent;
import org.yaml.snakeyaml.representer.Representer;
public class JavaBeanWithNullValuesTest extends TestCase {
- private Yaml loader;
- @Override
- protected void setUp() {
- loader = new Yaml();
+ private Yaml loader;
+
+ @Override
+ protected void setUp() {
+ loader = new Yaml();
+ }
+
+ public void testNotNull() {
+ String dumpStr = dumpJavaBeanWithNullValues(false);
+ // System.out.println(dumpStr);
+ Yaml yaml = new Yaml();
+ JavaBeanWithNullValues parsed = yaml.load(dumpStr);
+ assertNotNull(parsed.getString());
+ assertNotNull(parsed.getBoolean1());
+ assertNotNull(parsed.getDate());
+ assertNotNull(parsed.getDouble1());
+ assertNotNull(parsed.getFloat1());
+ assertNotNull(parsed.getInteger());
+ assertNotNull(parsed.getLong1());
+ assertNotNull(parsed.getSqlDate());
+ assertNotNull(parsed.getTimestamp());
+ //
+ parsed = loader.loadAs(dumpStr, JavaBeanWithNullValues.class);
+ assertNotNull(parsed.getString());
+ assertNotNull(parsed.getBoolean1());
+ assertNotNull(parsed.getDate());
+ assertNotNull(parsed.getDouble1());
+ assertNotNull(parsed.getFloat1());
+ assertNotNull(parsed.getInteger());
+ assertNotNull(parsed.getLong1());
+ assertNotNull(parsed.getSqlDate());
+ assertNotNull(parsed.getTimestamp());
+ }
+
+ public void testNull() {
+ String dumpStr = dumpJavaBeanWithNullValues(true);
+ Yaml yaml = new Yaml();
+ JavaBeanWithNullValues parsed = yaml.load(dumpStr);
+ assertNull(parsed.getString());
+ //
+ parsed = loader.loadAs(dumpStr, JavaBeanWithNullValues.class);
+ assertNull(parsed.getString());
+ }
+
+ public void testNullStringAndBoolean() {
+ JavaBeanWithNullValues javaBeanWithNullValues = new JavaBeanWithNullValues();
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ options.setExplicitStart(true);
+ options.setExplicitEnd(true);
+ Yaml yaml = new Yaml(new CustomRepresenter(), options);
+ javaBeanWithNullValues.setBoolean1(null);
+ javaBeanWithNullValues.setDate(new Date(System.currentTimeMillis()));
+ javaBeanWithNullValues.setDouble1(1d);
+ javaBeanWithNullValues.setFloat1(1f);
+ javaBeanWithNullValues.setInteger(1);
+ javaBeanWithNullValues.setLong1(1L);
+ javaBeanWithNullValues.setSqlDate(new java.sql.Date(System.currentTimeMillis()));
+ javaBeanWithNullValues.setString(null); // ok
+ javaBeanWithNullValues.setTimestamp(new Timestamp(System.currentTimeMillis()));
+
+ String dumpStr = yaml.dump(javaBeanWithNullValues);
+ // System.out.println(dumpStr);
+ yaml = new Yaml();
+ JavaBeanWithNullValues parsed = yaml.load(dumpStr);
+ assertNull(" expect null, got " + parsed.getBoolean1(), parsed.getBoolean1());
+ assertNull(" expect null, got " + parsed.getString(), parsed.getString());
+ }
+
+ public void testNoRootTag() {
+ JavaBeanWithNullValues javaBeanWithNullValues = new JavaBeanWithNullValues();
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ options.setExplicitStart(true);
+ options.setExplicitEnd(true);
+ Yaml yaml = new Yaml(new CustomRepresenter(), options);
+ javaBeanWithNullValues.setBoolean1(null);
+ javaBeanWithNullValues.setDate(new Date(System.currentTimeMillis()));
+ javaBeanWithNullValues.setDouble1(1d);
+ javaBeanWithNullValues.setFloat1(1f);
+ javaBeanWithNullValues.setInteger(1);
+ javaBeanWithNullValues.setLong1(1L);
+ javaBeanWithNullValues.setSqlDate(new java.sql.Date(System.currentTimeMillis()));
+ javaBeanWithNullValues.setString(null); // ok
+ javaBeanWithNullValues.setTimestamp(new Timestamp(System.currentTimeMillis()));
+
+ String dumpStr = yaml.dumpAsMap(javaBeanWithNullValues);
+ // System.out.println(dumpStr);
+ assertFalse("No explicit root tag must be used.", dumpStr.contains("JavaBeanWithNullValues"));
+ yaml = new Yaml(new CustomRepresenter(), options);
+ JavaBeanWithNullValues parsed = loader.loadAs(dumpStr, JavaBeanWithNullValues.class);
+ assertNull(" expect null, got " + parsed.getBoolean1(), parsed.getBoolean1());
+ assertNull(" expect null, got " + parsed.getString(), parsed.getString());
+ assertEquals(1d, parsed.getDouble1());
+ assertEquals(1f, parsed.getFloat1());
+ assertEquals(Integer.valueOf(1), parsed.getInteger());
+ assertEquals(Long.valueOf(1L), parsed.getLong1());
+ }
+
+ private String dumpJavaBeanWithNullValues(boolean nullValues) {
+ JavaBeanWithNullValues javaBeanWithNullValues = new JavaBeanWithNullValues();
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ options.setExplicitStart(true);
+ options.setExplicitEnd(true);
+ Yaml yaml = new Yaml(new CustomRepresenter(), options);
+ if (nullValues) {
+ return yaml.dump(javaBeanWithNullValues);
}
-
- public void testNotNull() {
- String dumpStr = dumpJavaBeanWithNullValues(false);
- // System.out.println(dumpStr);
- Yaml yaml = new Yaml();
- JavaBeanWithNullValues parsed = (JavaBeanWithNullValues) yaml.load(dumpStr);
- assertNotNull(parsed.getString());
- assertNotNull(parsed.getBoolean1());
- assertNotNull(parsed.getDate());
- assertNotNull(parsed.getDouble1());
- assertNotNull(parsed.getFloat1());
- assertNotNull(parsed.getInteger());
- assertNotNull(parsed.getLong1());
- assertNotNull(parsed.getSqlDate());
- assertNotNull(parsed.getTimestamp());
- //
- parsed = loader.loadAs(dumpStr, JavaBeanWithNullValues.class);
- assertNotNull(parsed.getString());
- assertNotNull(parsed.getBoolean1());
- assertNotNull(parsed.getDate());
- assertNotNull(parsed.getDouble1());
- assertNotNull(parsed.getFloat1());
- assertNotNull(parsed.getInteger());
- assertNotNull(parsed.getLong1());
- assertNotNull(parsed.getSqlDate());
- assertNotNull(parsed.getTimestamp());
+ javaBeanWithNullValues.setBoolean1(false);
+ javaBeanWithNullValues.setDate(new Date(System.currentTimeMillis()));
+ javaBeanWithNullValues.setDouble1(1d);
+ javaBeanWithNullValues.setFloat1(1f);
+ javaBeanWithNullValues.setInteger(1);
+ javaBeanWithNullValues.setLong1(1L);
+ javaBeanWithNullValues.setSqlDate(new java.sql.Date(System.currentTimeMillis()));
+ javaBeanWithNullValues.setString(""); // ok
+ javaBeanWithNullValues.setTimestamp(new Timestamp(System.currentTimeMillis()));
+ return yaml.dump(javaBeanWithNullValues);
+ }
+
+ public class CustomRepresenter extends Representer {
+
+ public CustomRepresenter() {
+ this.representers.put(Float.class, new RepresentFloat());
+ this.representers.put(Long.class, new RepresentLong());
+ this.representers.put(java.sql.Date.class, new RepresentDate());
+ this.representers.put(java.sql.Timestamp.class, new RepresentTime());
}
- public void testNull() {
- String dumpStr = dumpJavaBeanWithNullValues(true);
- Yaml yaml = new Yaml();
- JavaBeanWithNullValues parsed = (JavaBeanWithNullValues) yaml.load(dumpStr);
- assertNull(parsed.getString());
- //
- parsed = loader.loadAs(dumpStr, JavaBeanWithNullValues.class);
- assertNull(parsed.getString());
- }
+ private class RepresentFloat implements Represent {
- public void testNullStringAndBoolean() {
- JavaBeanWithNullValues javaBeanWithNullValues = new JavaBeanWithNullValues();
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
- options.setExplicitStart(true);
- options.setExplicitEnd(true);
- Yaml yaml = new Yaml(new CustomRepresenter(), options);
- javaBeanWithNullValues.setBoolean1(null);
- javaBeanWithNullValues.setDate(new Date(System.currentTimeMillis()));
- javaBeanWithNullValues.setDouble1(1d);
- javaBeanWithNullValues.setFloat1(1f);
- javaBeanWithNullValues.setInteger(1);
- javaBeanWithNullValues.setLong1(1l);
- javaBeanWithNullValues.setSqlDate(new java.sql.Date(System.currentTimeMillis()));
- javaBeanWithNullValues.setString(null); // ok
- javaBeanWithNullValues.setTimestamp(new Timestamp(System.currentTimeMillis()));
-
- String dumpStr = yaml.dump(javaBeanWithNullValues);
- // System.out.println(dumpStr);
- yaml = new Yaml();
- JavaBeanWithNullValues parsed = (JavaBeanWithNullValues) yaml.load(dumpStr);
- assertNull(" expect null, got " + parsed.getBoolean1(), parsed.getBoolean1());
- assertNull(" expect null, got " + parsed.getString(), parsed.getString());
+ public Node representData(Object data) {
+ return representScalar(new Tag(Tag.PREFIX + "java.lang.Float"), data.toString());
+ }
}
- public void testNoRootTag() {
- JavaBeanWithNullValues javaBeanWithNullValues = new JavaBeanWithNullValues();
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
- options.setExplicitStart(true);
- options.setExplicitEnd(true);
- Yaml yaml = new Yaml(new CustomRepresenter(), options);
- javaBeanWithNullValues.setBoolean1(null);
- javaBeanWithNullValues.setDate(new Date(System.currentTimeMillis()));
- javaBeanWithNullValues.setDouble1(1d);
- javaBeanWithNullValues.setFloat1(1f);
- javaBeanWithNullValues.setInteger(1);
- javaBeanWithNullValues.setLong1(1l);
- javaBeanWithNullValues.setSqlDate(new java.sql.Date(System.currentTimeMillis()));
- javaBeanWithNullValues.setString(null); // ok
- javaBeanWithNullValues.setTimestamp(new Timestamp(System.currentTimeMillis()));
-
- String dumpStr = yaml.dumpAsMap(javaBeanWithNullValues);
- // System.out.println(dumpStr);
- assertFalse("No explicit root tag must be used.",
- dumpStr.contains("JavaBeanWithNullValues"));
- yaml = new Yaml(new CustomRepresenter(), options);
- JavaBeanWithNullValues parsed = loader.loadAs(dumpStr, JavaBeanWithNullValues.class);
- assertNull(" expect null, got " + parsed.getBoolean1(), parsed.getBoolean1());
- assertNull(" expect null, got " + parsed.getString(), parsed.getString());
- assertEquals(1d, parsed.getDouble1());
- assertEquals(1f, parsed.getFloat1());
- assertEquals(new Integer(1), parsed.getInteger());
- assertEquals(new Long(1l), parsed.getLong1());
+ private class RepresentLong implements Represent {
+
+ public Node representData(Object data) {
+ return representScalar(new Tag(Tag.PREFIX + "java.lang.Long"), ((Long) data).toString());
+ }
}
- private String dumpJavaBeanWithNullValues(boolean nullValues) {
- JavaBeanWithNullValues javaBeanWithNullValues = new JavaBeanWithNullValues();
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
- options.setExplicitStart(true);
- options.setExplicitEnd(true);
- Yaml yaml = new Yaml(new CustomRepresenter(), options);
- if (nullValues) {
- return yaml.dump(javaBeanWithNullValues);
- }
- javaBeanWithNullValues.setBoolean1(false);
- javaBeanWithNullValues.setDate(new Date(System.currentTimeMillis()));
- javaBeanWithNullValues.setDouble1(1d);
- javaBeanWithNullValues.setFloat1(1f);
- javaBeanWithNullValues.setInteger(1);
- javaBeanWithNullValues.setLong1(1l);
- javaBeanWithNullValues.setSqlDate(new java.sql.Date(System.currentTimeMillis()));
- javaBeanWithNullValues.setString(""); // ok
- javaBeanWithNullValues.setTimestamp(new Timestamp(System.currentTimeMillis()));
- return yaml.dump(javaBeanWithNullValues);
+ private class RepresentDate implements Represent {
+
+ public Node representData(Object data) {
+ return representScalar(new Tag(Tag.PREFIX + "java.sql.Date"), data.toString());
+ }
}
- public class CustomRepresenter extends Representer {
- public CustomRepresenter() {
- this.representers.put(Float.class, new RepresentFloat());
- this.representers.put(Long.class, new RepresentLong());
- this.representers.put(java.sql.Date.class, new RepresentDate());
- this.representers.put(java.sql.Timestamp.class, new RepresentTime());
- }
-
- private class RepresentFloat implements Represent {
- public Node representData(Object data) {
- return representScalar(new Tag(Tag.PREFIX + "java.lang.Float"),
- ((Float) data).toString());
- }
- }
-
- private class RepresentLong implements Represent {
- public Node representData(Object data) {
- return representScalar(new Tag(Tag.PREFIX + "java.lang.Long"),
- ((Long) data).toString());
- }
- }
-
- private class RepresentDate implements Represent {
- public Node representData(Object data) {
- return representScalar(new Tag(Tag.PREFIX + "java.sql.Date"),
- ((java.sql.Date) data).toString());
- }
- }
-
- private class RepresentTime implements Represent {
- public Node representData(Object data) {
- return representScalar(new Tag(Tag.PREFIX + "java.sql.Timestamp"),
- ((java.sql.Timestamp) data).toString());
- }
- }
+ private class RepresentTime implements Represent {
+
+ public Node representData(Object data) {
+ return representScalar(new Tag(Tag.PREFIX + "java.sql.Timestamp"), data.toString());
+ }
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/JavaBeanWithSqlTimestamp.java b/src/test/java/org/yaml/snakeyaml/JavaBeanWithSqlTimestamp.java
index ae317689..95f35ca4 100644
--- a/src/test/java/org/yaml/snakeyaml/JavaBeanWithSqlTimestamp.java
+++ b/src/test/java/org/yaml/snakeyaml/JavaBeanWithSqlTimestamp.java
@@ -1,37 +1,36 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
public class JavaBeanWithSqlTimestamp {
- private java.sql.Timestamp timestamp;
- private java.sql.Date date;
- public java.sql.Timestamp getTimestamp() {
- return timestamp;
- }
+ private java.sql.Timestamp timestamp;
+ private java.sql.Date date;
- public void setTimestamp(java.sql.Timestamp timestamp) {
- this.timestamp = timestamp;
- }
+ public java.sql.Timestamp getTimestamp() {
+ return timestamp;
+ }
- public java.sql.Date getDate() {
- return date;
- }
+ public void setTimestamp(java.sql.Timestamp timestamp) {
+ this.timestamp = timestamp;
+ }
- public void setDate(java.sql.Date date) {
- this.date = date;
- }
-} \ No newline at end of file
+ public java.sql.Date getDate() {
+ return date;
+ }
+
+ public void setDate(java.sql.Date date) {
+ this.date = date;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/Person.java b/src/test/java/org/yaml/snakeyaml/Person.java
index 088130fd..ee860706 100644
--- a/src/test/java/org/yaml/snakeyaml/Person.java
+++ b/src/test/java/org/yaml/snakeyaml/Person.java
@@ -1,22 +1,21 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
public class Person {
- public String given;
- public String family;
- public Address address;
-} \ No newline at end of file
+
+ public String given;
+ public String family;
+ public Address address;
+}
diff --git a/src/test/java/org/yaml/snakeyaml/Product.java b/src/test/java/org/yaml/snakeyaml/Product.java
index badb80de..2715d63e 100644
--- a/src/test/java/org/yaml/snakeyaml/Product.java
+++ b/src/test/java/org/yaml/snakeyaml/Product.java
@@ -1,28 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
public class Product {
- public String sku;
- public Integer quantity;
- public String description;
- public Float price;
- @Override
- public String toString() {
- return "Product: " + sku;
- }
-} \ No newline at end of file
+ public String sku;
+ public Integer quantity;
+ public String description;
+ public Float price;
+
+ @Override
+ public String toString() {
+ return "Product: " + sku;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/PropertyUtilsSharingTest.java b/src/test/java/org/yaml/snakeyaml/PropertyUtilsSharingTest.java
index 74eb4bac..a2f25719 100644
--- a/src/test/java/org/yaml/snakeyaml/PropertyUtilsSharingTest.java
+++ b/src/test/java/org/yaml/snakeyaml/PropertyUtilsSharingTest.java
@@ -1,22 +1,19 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import junit.framework.TestCase;
-
import org.junit.Test;
import org.yaml.snakeyaml.constructor.Constructor;
import org.yaml.snakeyaml.introspector.PropertyUtils;
@@ -24,45 +21,45 @@ import org.yaml.snakeyaml.representer.Representer;
public class PropertyUtilsSharingTest extends TestCase {
- public void testYamlDefaults() {
- Yaml yaml1 = new Yaml();
- assertSame(yaml1.constructor.getPropertyUtils(), yaml1.representer.getPropertyUtils());
+ public void testYamlDefaults() {
+ Yaml yaml1 = new Yaml();
+ assertSame(yaml1.constructor.getPropertyUtils(), yaml1.representer.getPropertyUtils());
- Yaml yaml2 = new Yaml(new Constructor());
- assertSame(yaml2.constructor.getPropertyUtils(), yaml2.representer.getPropertyUtils());
+ Yaml yaml2 = new Yaml(new Constructor());
+ assertSame(yaml2.constructor.getPropertyUtils(), yaml2.representer.getPropertyUtils());
- Yaml yaml3 = new Yaml(new Representer());
- assertSame(yaml3.constructor.getPropertyUtils(), yaml3.representer.getPropertyUtils());
- }
+ Yaml yaml3 = new Yaml(new Representer());
+ assertSame(yaml3.constructor.getPropertyUtils(), yaml3.representer.getPropertyUtils());
+ }
- public void testYamlConstructorWithPropertyUtils() {
- Constructor constructor1 = new Constructor();
- PropertyUtils pu = new PropertyUtils();
- constructor1.setPropertyUtils(pu);
- Yaml yaml = new Yaml(constructor1);
- assertSame(pu, yaml.constructor.getPropertyUtils());
- assertSame(pu, yaml.representer.getPropertyUtils());
- }
+ public void testYamlConstructorWithPropertyUtils() {
+ Constructor constructor1 = new Constructor();
+ PropertyUtils pu = new PropertyUtils();
+ constructor1.setPropertyUtils(pu);
+ Yaml yaml = new Yaml(constructor1);
+ assertSame(pu, yaml.constructor.getPropertyUtils());
+ assertSame(pu, yaml.representer.getPropertyUtils());
+ }
- public void testYamlRepresenterWithPropertyUtils() {
- Representer representer2 = new Representer();
- PropertyUtils pu = new PropertyUtils();
- representer2.setPropertyUtils(pu);
- Yaml yaml = new Yaml(representer2);
- assertSame(pu, yaml.constructor.getPropertyUtils());
- assertSame(pu, yaml.representer.getPropertyUtils());
- }
+ public void testYamlRepresenterWithPropertyUtils() {
+ Representer representer2 = new Representer();
+ PropertyUtils pu = new PropertyUtils();
+ representer2.setPropertyUtils(pu);
+ Yaml yaml = new Yaml(representer2);
+ assertSame(pu, yaml.constructor.getPropertyUtils());
+ assertSame(pu, yaml.representer.getPropertyUtils());
+ }
- @Test
- public void testYamlConstructorANDRepresenterWithPropertyUtils() {
- Constructor constructor = new Constructor();
- PropertyUtils pu_c = new PropertyUtils();
- constructor.setPropertyUtils(pu_c);
- Representer representer = new Representer();
- PropertyUtils pu_r = new PropertyUtils();
- representer.setPropertyUtils(pu_r);
- Yaml yaml = new Yaml(constructor, representer);
- assertSame(pu_c, yaml.constructor.getPropertyUtils());
- assertSame(pu_r, yaml.representer.getPropertyUtils());
- }
+ @Test
+ public void testYamlConstructorANDRepresenterWithPropertyUtils() {
+ Constructor constructor = new Constructor();
+ PropertyUtils pu_c = new PropertyUtils();
+ constructor.setPropertyUtils(pu_c);
+ Representer representer = new Representer();
+ PropertyUtils pu_r = new PropertyUtils();
+ representer.setPropertyUtils(pu_r);
+ Yaml yaml = new Yaml(constructor, representer);
+ assertSame(pu_c, yaml.constructor.getPropertyUtils());
+ assertSame(pu_r, yaml.representer.getPropertyUtils());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/Suit.java b/src/test/java/org/yaml/snakeyaml/Suit.java
index 8ae7f648..b504b0ca 100644
--- a/src/test/java/org/yaml/snakeyaml/Suit.java
+++ b/src/test/java/org/yaml/snakeyaml/Suit.java
@@ -1,20 +1,18 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
public enum Suit {
- CLUBS, DIAMONDS, HEARTS, SPADES
-} \ No newline at end of file
+ CLUBS, DIAMONDS, HEARTS, SPADES
+}
diff --git a/src/test/java/org/yaml/snakeyaml/TypeDescriptionTest.java b/src/test/java/org/yaml/snakeyaml/TypeDescriptionTest.java
index bb0e66b7..1a0d6d7c 100644
--- a/src/test/java/org/yaml/snakeyaml/TypeDescriptionTest.java
+++ b/src/test/java/org/yaml/snakeyaml/TypeDescriptionTest.java
@@ -1,39 +1,36 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.constructor.ArrayTagsTest.CarWithArray;
import org.yaml.snakeyaml.nodes.Tag;
public class TypeDescriptionTest extends TestCase {
- public void testSetTag() {
- TypeDescription descr = new TypeDescription(TypeDescriptionTest.class);
- descr.setTag("!bla");
- assertEquals(new Tag("!bla"), descr.getTag());
- descr.setTag(new Tag("!foo"));
- assertEquals(new Tag("!foo"), descr.getTag());
- }
+ public void testSetTag() {
+ TypeDescription descr = new TypeDescription(TypeDescriptionTest.class);
+ descr.setTag("!bla");
+ assertEquals(new Tag("!bla"), descr.getTag());
+ descr.setTag(new Tag("!foo"));
+ assertEquals(new Tag("!foo"), descr.getTag());
+ }
- public void testToString() {
- TypeDescription carDescription = new TypeDescription(CarWithArray.class, "!car");
- assertEquals(
- "TypeDescription for class org.yaml.snakeyaml.constructor.ArrayTagsTest$CarWithArray (tag='!car')",
- carDescription.toString());
- }
+ public void testToString() {
+ TypeDescription carDescription = new TypeDescription(CarWithArray.class, "!car");
+ assertEquals(
+ "TypeDescription for class org.yaml.snakeyaml.constructor.ArrayTagsTest$CarWithArray (tag='!car')",
+ carDescription.toString());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/Util.java b/src/test/java/org/yaml/snakeyaml/Util.java
index 61d9fc32..b07659c4 100644
--- a/src/test/java/org/yaml/snakeyaml/Util.java
+++ b/src/test/java/org/yaml/snakeyaml/Util.java
@@ -1,54 +1,61 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
public class Util {
- public static String getLocalResource(String theName) {
- try {
- InputStream input;
- input = YamlDocument.class.getClassLoader().getResourceAsStream(theName);
- if (input == null) {
- throw new RuntimeException("Can not find " + theName);
- }
- BufferedInputStream is = new BufferedInputStream(input);
- StringBuilder buf = new StringBuilder(3000);
- int i;
- try {
- while ((i = is.read()) != -1) {
- buf.append((char) i);
- }
- } finally {
- is.close();
- }
- String resource = buf.toString();
- // convert EOLs
- String[] lines = resource.split("\\r?\\n");
- StringBuilder buffer = new StringBuilder();
- for (int j = 0; j < lines.length; j++) {
- buffer.append(lines[j]);
- buffer.append("\n");
- }
- return buffer.toString();
- } catch (IOException e) {
- throw new RuntimeException(e);
+ public static String getLocalResource(String theName) {
+ try {
+ InputStream input;
+ input = YamlDocument.class.getClassLoader().getResourceAsStream(theName);
+ if (input == null) {
+ throw new RuntimeException("Can not find " + theName);
+ }
+ BufferedInputStream is = new BufferedInputStream(input);
+ StringBuilder buf = new StringBuilder(3000);
+ int i;
+ try {
+ while ((i = is.read()) != -1) {
+ buf.append((char) i);
}
+ } finally {
+ is.close();
+ }
+ String resource = buf.toString();
+ // convert EOLs
+ String[] lines = resource.split("\\r?\\n");
+ StringBuilder buffer = new StringBuilder();
+ for (int j = 0; j < lines.length; j++) {
+ buffer.append(lines[j]);
+ buffer.append("\n");
+ }
+ return buffer.toString();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
}
+ }
+
+ public static boolean compareAllLines(String text1, String text2) {
+ Set<String> split1 = new HashSet<String>(Arrays.asList(text1.trim().split("\n")));
+ Set<String> split2 = new HashSet<String>(Arrays.asList(text2.trim().split("\n")));
+ return split1.containsAll(split2) && split2.containsAll(split1);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/YamlComposeTest.java b/src/test/java/org/yaml/snakeyaml/YamlComposeTest.java
index c6ac0479..a1896a75 100644
--- a/src/test/java/org/yaml/snakeyaml/YamlComposeTest.java
+++ b/src/test/java/org/yaml/snakeyaml/YamlComposeTest.java
@@ -1,24 +1,20 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import java.io.StringReader;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.nodes.MappingNode;
import org.yaml.snakeyaml.nodes.Node;
import org.yaml.snakeyaml.nodes.NodeId;
@@ -26,43 +22,43 @@ import org.yaml.snakeyaml.nodes.ScalarNode;
public class YamlComposeTest extends TestCase {
- public void testComposeManyDocuments() {
- try {
- Yaml yaml = new Yaml();
- yaml.compose(new StringReader("abc: 56\n---\n123\n---\n456"));
- fail("YAML contans more then one document.");
- } catch (Exception e) {
- assertTrue("<<<" + e.getMessage() + ">>>",
- e.getMessage().startsWith("expected a single document in the stream"));
- }
+ public void testComposeManyDocuments() {
+ try {
+ Yaml yaml = new Yaml();
+ yaml.compose(new StringReader("abc: 56\n---\n123\n---\n456"));
+ fail("YAML contans more then one document.");
+ } catch (Exception e) {
+ assertTrue("<<<" + e.getMessage() + ">>>",
+ e.getMessage().startsWith("expected a single document in the stream"));
}
+ }
- public void testComposeFromReader() {
- Yaml yaml = new Yaml();
- MappingNode node = (MappingNode) yaml.compose(new StringReader("abc: 56"));
- ScalarNode node1 = (ScalarNode) node.getValue().get(0).getKeyNode();
- assertEquals("abc", node1.getValue());
- ScalarNode node2 = (ScalarNode) node.getValue().get(0).getValueNode();
- assertEquals("56", node2.getValue());
- }
+ public void testComposeFromReader() {
+ Yaml yaml = new Yaml();
+ MappingNode node = (MappingNode) yaml.compose(new StringReader("abc: 56"));
+ ScalarNode node1 = (ScalarNode) node.getValue().get(0).getKeyNode();
+ assertEquals("abc", node1.getValue());
+ ScalarNode node2 = (ScalarNode) node.getValue().get(0).getValueNode();
+ assertEquals("56", node2.getValue());
+ }
- public void testComposeAllFromReader() {
- Yaml yaml = new Yaml();
- boolean first = true;
- for (Node node : yaml.composeAll(new StringReader("abc: 56\n---\n123\n---\n456"))) {
- if (first) {
- assertEquals(NodeId.mapping, node.getNodeId());
- } else {
- assertEquals(NodeId.scalar, node.getNodeId());
- }
- first = false;
- }
+ public void testComposeAllFromReader() {
+ Yaml yaml = new Yaml();
+ boolean first = true;
+ for (Node node : yaml.composeAll(new StringReader("abc: 56\n---\n123\n---\n456"))) {
+ if (first) {
+ assertEquals(NodeId.mapping, node.getNodeId());
+ } else {
+ assertEquals(NodeId.scalar, node.getNodeId());
+ }
+ first = false;
}
+ }
- public void testComposeAllOneDocument() {
- Yaml yaml = new Yaml();
- for (Node node : yaml.composeAll(new StringReader("6"))) {
- assertEquals(NodeId.scalar, node.getNodeId());
- }
+ public void testComposeAllOneDocument() {
+ Yaml yaml = new Yaml();
+ for (Node node : yaml.composeAll(new StringReader("6"))) {
+ assertEquals(NodeId.scalar, node.getNodeId());
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/YamlDocument.java b/src/test/java/org/yaml/snakeyaml/YamlDocument.java
index fbf5104e..d8824c65 100644
--- a/src/test/java/org/yaml/snakeyaml/YamlDocument.java
+++ b/src/test/java/org/yaml/snakeyaml/YamlDocument.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
@@ -20,60 +18,60 @@ import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
-
+import java.nio.charset.StandardCharsets;
import org.yaml.snakeyaml.constructor.Constructor;
public class YamlDocument {
- public static final String ROOT = "specification/";
- private String source;
- private String presentation;
- private Object nativeData;
- public YamlDocument(String sourceName, boolean check, Constructor constructor) {
- InputStream input = YamlDocument.class.getClassLoader().getResourceAsStream(
- ROOT + sourceName);
- if (constructor == null) {
- constructor = new Constructor();
- }
- Yaml yaml = new Yaml(constructor);
- nativeData = yaml.load(input);
- ByteArrayOutputStream output = new ByteArrayOutputStream();
- Charset charset = Charset.forName("UTF-8");
- yaml.dump(nativeData, new OutputStreamWriter(output, charset));
- try {
- presentation = output.toString(charset.name());
- source = Util.getLocalResource(ROOT + sourceName);
- } catch (UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- // try to read generated presentation to prove that the presentation
- // is identical to the source
- Object result = yaml.load(presentation);
- if (check && !nativeData.equals(result)) {
- throw new RuntimeException("Generated presentation is not valid: " + presentation);
- }
- }
+ public static final String ROOT = "specification/";
+ private final String source;
+ private final String presentation;
+ private final Object nativeData;
- public YamlDocument(String sourceName, boolean check) {
- this(sourceName, check, null);
+ public YamlDocument(String sourceName, boolean check, Constructor constructor) {
+ InputStream input = YamlDocument.class.getClassLoader().getResourceAsStream(ROOT + sourceName);
+ if (constructor == null) {
+ constructor = new Constructor();
}
-
- public YamlDocument(String sourceName) {
- this(sourceName, true);
+ Yaml yaml = new Yaml(constructor);
+ nativeData = yaml.load(input);
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ Charset charset = StandardCharsets.UTF_8;
+ yaml.dump(nativeData, new OutputStreamWriter(output, charset));
+ try {
+ presentation = output.toString(charset.name());
+ source = Util.getLocalResource(ROOT + sourceName);
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
}
-
- public String getSource() {
- return source;
+ // try to read generated presentation to prove that the presentation
+ // is identical to the source
+ Object result = yaml.load(presentation);
+ if (check && !nativeData.equals(result)) {
+ throw new RuntimeException("Generated presentation is not valid: " + presentation);
}
+ }
- public String getPresentation() {
- return presentation;
- }
+ public YamlDocument(String sourceName, boolean check) {
+ this(sourceName, check, null);
+ }
+
+ public YamlDocument(String sourceName) {
+ this(sourceName, true);
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public String getPresentation() {
+ return presentation;
+ }
- public Object getNativeData() {
- if (nativeData == null) {
- throw new NullPointerException("No object is parsed.");
- }
- return nativeData;
+ public Object getNativeData() {
+ if (nativeData == null) {
+ throw new NullPointerException("No object is parsed.");
}
+ return nativeData;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/YamlParseTest.java b/src/test/java/org/yaml/snakeyaml/YamlParseTest.java
index 4de8db47..db40588d 100644
--- a/src/test/java/org/yaml/snakeyaml/YamlParseTest.java
+++ b/src/test/java/org/yaml/snakeyaml/YamlParseTest.java
@@ -1,80 +1,77 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import java.io.StringReader;
import java.util.HashMap;
import java.util.Iterator;
-import java.util.Map;
-
import junit.framework.TestCase;
-
-import org.yaml.snakeyaml.events.*;
-import org.yaml.snakeyaml.nodes.Tag;
+import org.yaml.snakeyaml.events.DocumentEndEvent;
+import org.yaml.snakeyaml.events.DocumentStartEvent;
+import org.yaml.snakeyaml.events.Event;
+import org.yaml.snakeyaml.events.ImplicitTuple;
+import org.yaml.snakeyaml.events.ScalarEvent;
+import org.yaml.snakeyaml.events.StreamEndEvent;
+import org.yaml.snakeyaml.events.StreamStartEvent;
public class YamlParseTest extends TestCase {
- public void testParse() {
- Yaml yaml = new Yaml();
- Event e = null;
- int counter = 0;
- for (Event event : yaml.parse(new StringReader("abc: 56"))) {
- if (e == null) {
- assertTrue(event instanceof StreamStartEvent);
- }
- e = event;
- counter++;
- }
- assertTrue(e instanceof StreamEndEvent);
- assertEquals(8, counter);
+ public void testParse() {
+ Yaml yaml = new Yaml();
+ Event e = null;
+ int counter = 0;
+ for (Event event : yaml.parse(new StringReader("abc: 56"))) {
+ if (e == null) {
+ assertTrue(event instanceof StreamStartEvent);
+ }
+ e = event;
+ counter++;
}
+ assertTrue(e instanceof StreamEndEvent);
+ assertEquals(8, counter);
+ }
- public void testParseEvents() {
- Yaml yaml = new Yaml();
- Iterator<Event> events = yaml.parse(new StringReader("%YAML 1.1\n---\na")).iterator();
- assertTrue(events.next() instanceof StreamStartEvent);
- DocumentStartEvent documentStartEvent = (DocumentStartEvent) events.next();
- assertTrue(documentStartEvent.getExplicit());
- assertEquals(DumperOptions.Version.V1_1, documentStartEvent.getVersion());
- Map<String, String> DEFAULT_TAGS = new HashMap<String, String>();
- DEFAULT_TAGS.put("!", "!");
- DEFAULT_TAGS.put("!!", Tag.PREFIX);
- assertEquals(DEFAULT_TAGS, documentStartEvent.getTags());
- ScalarEvent scalarEvent = (ScalarEvent) events.next();
- assertNull(scalarEvent.getAnchor());
- assertNull(scalarEvent.getTag());
- assertEquals(new ImplicitTuple(true, false).toString(), scalarEvent.getImplicit().toString());
- DocumentEndEvent documentEndEvent = (DocumentEndEvent) events.next();
- assertFalse(documentEndEvent.getExplicit());
- assertTrue("Unexpected event.", events.next() instanceof StreamEndEvent);
- assertFalse(events.hasNext());
- }
+ public void testParseEvents() {
+ Yaml yaml = new Yaml();
+ Iterator<Event> events = yaml.parse(new StringReader("%YAML 1.1\n---\na")).iterator();
+ assertTrue(events.next() instanceof StreamStartEvent);
+ DocumentStartEvent documentStartEvent = (DocumentStartEvent) events.next();
+ assertTrue(documentStartEvent.getExplicit());
+ assertEquals(DumperOptions.Version.V1_1, documentStartEvent.getVersion());
+ assertEquals(new HashMap<String, String>(), documentStartEvent.getTags());
+ ScalarEvent scalarEvent = (ScalarEvent) events.next();
+ assertNull(scalarEvent.getAnchor());
+ assertNull(scalarEvent.getTag());
+ assertEquals(new ImplicitTuple(true, false).toString(), scalarEvent.getImplicit().toString());
+ DocumentEndEvent documentEndEvent = (DocumentEndEvent) events.next();
+ assertFalse(documentEndEvent.getExplicit());
+ assertTrue("Unexpected event.", events.next() instanceof StreamEndEvent);
+ assertFalse(events.hasNext());
+ }
- public void testParseManyDocuments() {
- Yaml yaml = new Yaml();
- Event e = null;
- int counter = 0;
- for (Event event : yaml.parse(new StringReader("abc: 56\n---\n4\n---\nqwe\n"))) {
- if (e == null) {
- assertTrue(event instanceof StreamStartEvent);
- }
- e = event;
- counter++;
- }
- assertTrue(e instanceof StreamEndEvent);
- assertEquals(14, counter);
+ public void testParseManyDocuments() {
+ Yaml yaml = new Yaml();
+ Event e = null;
+ int counter = 0;
+ for (Event event : yaml.parse(new StringReader("abc: 56\n---\n4\n---\nqwe\n"))) {
+ if (e == null) {
+ assertTrue(event instanceof StreamStartEvent);
+ }
+ e = event;
+ counter++;
}
+ assertTrue(e instanceof StreamEndEvent);
+ assertEquals(14, counter);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/YamlStream.java b/src/test/java/org/yaml/snakeyaml/YamlStream.java
index 1ccd4e7e..df5d3e55 100644
--- a/src/test/java/org/yaml/snakeyaml/YamlStream.java
+++ b/src/test/java/org/yaml/snakeyaml/YamlStream.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
@@ -23,73 +21,72 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-
import junit.framework.AssertionFailedError;
public class YamlStream {
- private List<Object> nativeData = new ArrayList<Object>();
- public YamlStream(String sourceName) {
- InputStream input = YamlDocument.class.getClassLoader().getResourceAsStream(
- YamlDocument.ROOT + sourceName);
- Yaml yaml = new Yaml();
- for (Object document : yaml.loadAll(input)) {
- nativeData.add(document);
- }
- ByteArrayOutputStream output = new ByteArrayOutputStream();
- yaml.dumpAll(nativeData.iterator(), new OutputStreamWriter(output));
- String presentation;
- try {
- presentation = output.toString("UTF-8");
- } catch (UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- // try to read generated presentation to prove that the presentation
- // is identical to the source
- List<Object> parsedNativeData = new ArrayList<Object>();
- for (Object document : yaml.loadAll(presentation)) {
- parsedNativeData.add(document);
- }
- if (nativeData.getClass() != parsedNativeData.getClass()) {
- throw new AssertionFailedError("Different class: " + parsedNativeData.getClass());
- }
- if (nativeData.size() != parsedNativeData.size()) {
- throw new AssertionFailedError("Different size.");
- }
- Iterator<Object> piterator = parsedNativeData.iterator();
- Iterator<Object> niterator = nativeData.iterator();
- while (piterator.hasNext()) {
- Object obj1 = niterator.next();
- Object obj2 = piterator.next();
- if (obj1 instanceof Map) {
- @SuppressWarnings("unchecked")
- Map<Object, Object> map1 = (Map<Object, Object>) obj1;
- @SuppressWarnings("unchecked")
- Map<Object, Object> map2 = (Map<Object, Object>) obj2;
- if (!map1.keySet().equals(map2.keySet())) {
- throw new AssertionFailedError("Keyset: " + map1.keySet() + "; but was: "
- + map2.keySet());
- }
- for (Iterator<Object> iterator = map1.keySet().iterator(); iterator.hasNext();) {
- Object key = iterator.next();
- Object o1 = map1.get(key);
- Object o2 = map2.get(key);
- if (!o1.equals(o2)) {
- throw new AssertionFailedError("Values: " + o1 + "; but was: " + o2);
- }
- }
- }
- if (!obj1.equals(obj2)) {
- throw new AssertionFailedError("Expected: " + obj1 + "; but was: " + obj2);
- }
+ private final List<Object> nativeData = new ArrayList<Object>();
+
+ public YamlStream(String sourceName) {
+ InputStream input =
+ YamlDocument.class.getClassLoader().getResourceAsStream(YamlDocument.ROOT + sourceName);
+ Yaml yaml = new Yaml();
+ for (Object document : yaml.loadAll(input)) {
+ nativeData.add(document);
+ }
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ yaml.dumpAll(nativeData.iterator(), new OutputStreamWriter(output));
+ String presentation;
+ try {
+ presentation = output.toString("UTF-8");
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
+ }
+ // try to read generated presentation to prove that the presentation
+ // is identical to the source
+ List<Object> parsedNativeData = new ArrayList<Object>();
+ for (Object document : yaml.loadAll(presentation)) {
+ parsedNativeData.add(document);
+ }
+ if (nativeData.getClass() != parsedNativeData.getClass()) {
+ throw new AssertionFailedError("Different class: " + parsedNativeData.getClass());
+ }
+ if (nativeData.size() != parsedNativeData.size()) {
+ throw new AssertionFailedError("Different size.");
+ }
+ Iterator<Object> piterator = parsedNativeData.iterator();
+ Iterator<Object> niterator = nativeData.iterator();
+ while (piterator.hasNext()) {
+ Object obj1 = niterator.next();
+ Object obj2 = piterator.next();
+ if (obj1 instanceof Map) {
+ @SuppressWarnings("unchecked")
+ Map<Object, Object> map1 = (Map<Object, Object>) obj1;
+ @SuppressWarnings("unchecked")
+ Map<Object, Object> map2 = (Map<Object, Object>) obj2;
+ if (!map1.keySet().equals(map2.keySet())) {
+ throw new AssertionFailedError(
+ "Keyset: " + map1.keySet() + "; but was: " + map2.keySet());
}
- if (!parsedNativeData.equals(nativeData)) {
- throw new AssertionFailedError("Generated presentation is not the same: "
- + presentation);
+ for (Iterator<Object> iterator = map1.keySet().iterator(); iterator.hasNext();) {
+ Object key = iterator.next();
+ Object o1 = map1.get(key);
+ Object o2 = map2.get(key);
+ if (!o1.equals(o2)) {
+ throw new AssertionFailedError("Values: " + o1 + "; but was: " + o2);
+ }
}
+ }
+ if (!obj1.equals(obj2)) {
+ throw new AssertionFailedError("Expected: " + obj1 + "; but was: " + obj2);
+ }
}
-
- public List<Object> getNativeData() {
- return nativeData;
+ if (!parsedNativeData.equals(nativeData)) {
+ throw new AssertionFailedError("Generated presentation is not the same: " + presentation);
}
+ }
+
+ public List<Object> getNativeData() {
+ return nativeData;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/YamlTest.java b/src/test/java/org/yaml/snakeyaml/YamlTest.java
index 8f71b66b..1ecc5d03 100644
--- a/src/test/java/org/yaml/snakeyaml/YamlTest.java
+++ b/src/test/java/org/yaml/snakeyaml/YamlTest.java
@@ -1,74 +1,71 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml;
import java.util.Iterator;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.error.YAMLException;
public class YamlTest extends TestCase {
- public void testSetNoName() {
- Yaml yaml = new Yaml();
- assertTrue(yaml.toString().matches("Yaml:\\d+"));
- }
+ public void testSetNoName() {
+ Yaml yaml = new Yaml();
+ assertTrue(yaml.toString().matches("Yaml:\\d+"));
+ }
- public void testSetName() {
- Yaml yaml = new Yaml();
- yaml.setName("REST");
- assertEquals("REST", yaml.getName());
- assertEquals("REST", yaml.toString());
- }
+ public void testSetName() {
+ Yaml yaml = new Yaml();
+ yaml.setName("REST");
+ assertEquals("REST", yaml.getName());
+ assertEquals("REST", yaml.toString());
+ }
- /**
- * Check that documents are parsed only when they are asked to be loaded.
- */
- public void testOneDocument() {
- Yaml yaml = new Yaml();
- String doc = "--- a\n--- [:]";
- Iterator<Object> loaded = yaml.loadAll(doc).iterator();
- assertTrue(loaded.hasNext());
- Object obj1 = loaded.next();
- assertEquals("a", obj1);
- assertTrue(loaded.hasNext());
- try {
- loaded.next();
- fail("Second document is invalid");
- } catch (Exception e) {
- assertEquals("while parsing a flow node\n" + " in 'reader', line 2, column 6:\n"
- + " --- [:]\n" + " ^\n"
- + "expected the node content, but found Value\n"
- + " in 'reader', line 2, column 6:\n" + " --- [:]\n" + " ^\n",
- e.getMessage());
- }
+ /**
+ * Check that documents are parsed only when they are asked to be loaded.
+ */
+ public void testOneDocument() {
+ Yaml yaml = new Yaml();
+ String doc = "--- a\n--- [:]";
+ Iterator<Object> loaded = yaml.loadAll(doc).iterator();
+ assertTrue(loaded.hasNext());
+ Object obj1 = loaded.next();
+ assertEquals("a", obj1);
+ assertTrue(loaded.hasNext());
+ try {
+ loaded.next();
+ fail("Second document is invalid");
+ } catch (Exception e) {
+ assertEquals(
+ "while parsing a flow node\n" + " in 'reader', line 2, column 6:\n" + " --- [:]\n"
+ + " ^\n" + "expected the node content, but found ':'\n"
+ + " in 'reader', line 2, column 6:\n" + " --- [:]\n" + " ^\n",
+ e.getMessage());
}
+ }
- public void testOnlyOneDocument() {
- Yaml yaml = new Yaml();
- String doc = "--- a\n--- b";
- try {
- yaml.load(doc);
- fail("It must be only one document.");
- } catch (YAMLException e) {
- assertEquals("expected a single document in the stream\n"
- + " in 'string', line 1, column 5:\n" + " --- a\n" + " ^\n"
- + "but found another document\n" + " in 'string', line 2, column 1:\n"
- + " --- b\n" + " ^\n", e.getMessage());
- }
+ public void testOnlyOneDocument() {
+ Yaml yaml = new Yaml();
+ String doc = "--- a\n--- b";
+ try {
+ yaml.load(doc);
+ fail("It must be only one document.");
+ } catch (YAMLException e) {
+ assertEquals(
+ "expected a single document in the stream\n" + " in 'string', line 1, column 5:\n"
+ + " --- a\n" + " ^\n" + "but found another document\n"
+ + " in 'string', line 2, column 1:\n" + " --- b\n" + " ^\n",
+ e.getMessage());
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/array/BooleanArr.java b/src/test/java/org/yaml/snakeyaml/array/BooleanArr.java
index e4659500..5fab0c29 100644
--- a/src/test/java/org/yaml/snakeyaml/array/BooleanArr.java
+++ b/src/test/java/org/yaml/snakeyaml/array/BooleanArr.java
@@ -1,41 +1,39 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.array;
import java.util.Arrays;
public class BooleanArr {
- private boolean[] bools;
- public BooleanArr() {
- }
+ private boolean[] bools;
- public BooleanArr(boolean[] bools) {
- this.bools = bools;
- }
+ public BooleanArr() {}
- public String toString() {
- return Arrays.toString(bools);
- }
+ public BooleanArr(boolean[] bools) {
+ this.bools = bools;
+ }
- public boolean[] getBools() {
- return bools;
- }
+ public String toString() {
+ return Arrays.toString(bools);
+ }
- public void setBools(boolean[] bools) {
- this.bools = bools;
- }
+ public boolean[] getBools() {
+ return bools;
+ }
+
+ public void setBools(boolean[] bools) {
+ this.bools = bools;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/array/ByteArr.java b/src/test/java/org/yaml/snakeyaml/array/ByteArr.java
index bf8aac50..050db315 100644
--- a/src/test/java/org/yaml/snakeyaml/array/ByteArr.java
+++ b/src/test/java/org/yaml/snakeyaml/array/ByteArr.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.array;
@@ -19,24 +17,23 @@ import java.util.Arrays;
public class ByteArr {
- private byte[] bytes;
+ private byte[] bytes;
- public ByteArr() {
- }
+ public ByteArr() {}
- public ByteArr(byte[] bytes) {
- this.bytes = bytes;
- }
+ public ByteArr(byte[] bytes) {
+ this.bytes = bytes;
+ }
- public String toString() {
- return Arrays.toString(bytes);
- }
+ public String toString() {
+ return Arrays.toString(bytes);
+ }
- public byte[] getBytes() {
- return bytes;
- }
+ public byte[] getBytes() {
+ return bytes;
+ }
- public void setBytes(byte[] bytes) {
- this.bytes = bytes;
- }
+ public void setBytes(byte[] bytes) {
+ this.bytes = bytes;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/array/CharArr.java b/src/test/java/org/yaml/snakeyaml/array/CharArr.java
index 7f309ee2..e5cc9951 100644
--- a/src/test/java/org/yaml/snakeyaml/array/CharArr.java
+++ b/src/test/java/org/yaml/snakeyaml/array/CharArr.java
@@ -1,41 +1,39 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.array;
import java.util.Arrays;
public class CharArr {
- private char[] chars;
- public CharArr() {
- }
+ private char[] chars;
- public CharArr(char[] chars) {
- this.chars = chars;
- }
+ public CharArr() {}
- public String toString() {
- return Arrays.toString(chars);
- }
+ public CharArr(char[] chars) {
+ this.chars = chars;
+ }
- public char[] getChars() {
- return chars;
- }
+ public String toString() {
+ return Arrays.toString(chars);
+ }
- public void setChars(char[] chars) {
- this.chars = chars;
- }
+ public char[] getChars() {
+ return chars;
+ }
+
+ public void setChars(char[] chars) {
+ this.chars = chars;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/array/DoubleArr.java b/src/test/java/org/yaml/snakeyaml/array/DoubleArr.java
index 6b134a36..98e6bf1b 100644
--- a/src/test/java/org/yaml/snakeyaml/array/DoubleArr.java
+++ b/src/test/java/org/yaml/snakeyaml/array/DoubleArr.java
@@ -1,41 +1,39 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.array;
import java.util.Arrays;
public class DoubleArr {
- private double[] doubles;
- public DoubleArr() {
- }
+ private double[] doubles;
- public DoubleArr(double[] doubles) {
- this.doubles = doubles;
- }
+ public DoubleArr() {}
- public String toString() {
- return Arrays.toString(doubles);
- }
+ public DoubleArr(double[] doubles) {
+ this.doubles = doubles;
+ }
- public double[] getDoubles() {
- return doubles;
- }
+ public String toString() {
+ return Arrays.toString(doubles);
+ }
- public void setDoubles(double[] doubles) {
- this.doubles = doubles;
- }
+ public double[] getDoubles() {
+ return doubles;
+ }
+
+ public void setDoubles(double[] doubles) {
+ this.doubles = doubles;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/array/FloatArr.java b/src/test/java/org/yaml/snakeyaml/array/FloatArr.java
index 01f5338d..24aa5cdb 100644
--- a/src/test/java/org/yaml/snakeyaml/array/FloatArr.java
+++ b/src/test/java/org/yaml/snakeyaml/array/FloatArr.java
@@ -1,41 +1,39 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.array;
import java.util.Arrays;
public class FloatArr {
- private float[] floats;
- public FloatArr() {
- }
+ private float[] floats;
- public FloatArr(float[] floats) {
- this.floats = floats;
- }
+ public FloatArr() {}
- public String toString() {
- return Arrays.toString(floats);
- }
+ public FloatArr(float[] floats) {
+ this.floats = floats;
+ }
- public float[] getFloats() {
- return floats;
- }
+ public String toString() {
+ return Arrays.toString(floats);
+ }
- public void setFloats(float[] floats) {
- this.floats = floats;
- }
+ public float[] getFloats() {
+ return floats;
+ }
+
+ public void setFloats(float[] floats) {
+ this.floats = floats;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/array/IntArr.java b/src/test/java/org/yaml/snakeyaml/array/IntArr.java
index 8ed8e2a9..e4c6d77d 100644
--- a/src/test/java/org/yaml/snakeyaml/array/IntArr.java
+++ b/src/test/java/org/yaml/snakeyaml/array/IntArr.java
@@ -1,41 +1,39 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.array;
import java.util.Arrays;
public class IntArr {
- private int[] ints;
- public IntArr() {
- }
+ private int[] ints;
- public IntArr(int[] ints) {
- this.ints = ints;
- }
+ public IntArr() {}
- public String toString() {
- return Arrays.toString(ints);
- }
+ public IntArr(int[] ints) {
+ this.ints = ints;
+ }
- public int[] getInts() {
- return ints;
- }
+ public String toString() {
+ return Arrays.toString(ints);
+ }
- public void setInts(int[] ints) {
- this.ints = ints;
- }
+ public int[] getInts() {
+ return ints;
+ }
+
+ public void setInts(int[] ints) {
+ this.ints = ints;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/array/LongArr.java b/src/test/java/org/yaml/snakeyaml/array/LongArr.java
index c20adfe3..80fa2834 100644
--- a/src/test/java/org/yaml/snakeyaml/array/LongArr.java
+++ b/src/test/java/org/yaml/snakeyaml/array/LongArr.java
@@ -1,41 +1,39 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.array;
import java.util.Arrays;
public class LongArr {
- private long[] longs;
- public LongArr() {
- }
+ private long[] longs;
- public LongArr(long[] longs) {
- this.longs = longs;
- }
+ public LongArr() {}
- public String toString() {
- return Arrays.toString(longs);
- }
+ public LongArr(long[] longs) {
+ this.longs = longs;
+ }
- public long[] getLongs() {
- return longs;
- }
+ public String toString() {
+ return Arrays.toString(longs);
+ }
- public void setLongs(long[] longs) {
- this.longs = longs;
- }
+ public long[] getLongs() {
+ return longs;
+ }
+
+ public void setLongs(long[] longs) {
+ this.longs = longs;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/array/PrimitiveArrayTest.java b/src/test/java/org/yaml/snakeyaml/array/PrimitiveArrayTest.java
index 09b1d532..e54d4d06 100644
--- a/src/test/java/org/yaml/snakeyaml/array/PrimitiveArrayTest.java
+++ b/src/test/java/org/yaml/snakeyaml/array/PrimitiveArrayTest.java
@@ -1,25 +1,21 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.array;
import java.util.Arrays;
import java.util.List;
-
import junit.framework.TestCase;
-
import org.junit.Assert;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.ConstructorException;
@@ -27,229 +23,231 @@ import org.yaml.snakeyaml.error.YAMLException;
public class PrimitiveArrayTest extends TestCase {
- private final String pkg = "!!org.yaml.snakeyaml.array";
-
- private final byte[] bytes = new byte[] { 1, 2, 3 };
- private final short[] shorts = new short[] { 300, 301, 302 };
- private final int[] ints = new int[] { 40000, 40001, 40002 };
- private final long[] longs = new long[] { 5000000000L, 5000000001L };
- private final float[] floats = new float[] { 0.1f, 3.1415f };
- private final double[] doubles = new double[] { 50.0001, 2150.0002 };
- private final char[] chars = new char[] { 'a', 'b', 'c', 'd', 'e' };
- private final boolean[] bools = new boolean[] { true, false };
-
- public void testValidConstructor() {
- String testInput = "- " + pkg + ".ByteArr [ " + Arrays.toString(bytes) + " ]\n" + "- "
- + pkg + ".ShortArr [ " + Arrays.toString(shorts) + " ]\n" + "- " + pkg
- + ".IntArr [ " + Arrays.toString(ints) + " ]\n" + "- " + pkg + ".LongArr [ "
- + Arrays.toString(longs) + " ]\n" + "- " + pkg + ".FloatArr [ "
- + Arrays.toString(floats) + " ]\n" + "- " + pkg + ".DoubleArr [ "
- + Arrays.toString(doubles) + " ]\n" + "- " + pkg + ".CharArr [ "
- + Arrays.toString(chars) + " ]\n" + "- " + pkg + ".BooleanArr [ "
- + Arrays.toString(bools) + " ]\n";
-
- Yaml yaml = new Yaml();
- List<Object> wrappers = (List<Object>) yaml.load(testInput);
-
- Assert.assertArrayEquals(bytes, ((ByteArr) wrappers.get(0)).getBytes());
- Assert.assertArrayEquals(shorts, ((ShortArr) wrappers.get(1)).getShorts());
- Assert.assertArrayEquals(ints, ((IntArr) wrappers.get(2)).getInts());
- Assert.assertArrayEquals(longs, ((LongArr) wrappers.get(3)).getLongs());
- Assert.assertArrayEquals(floats, ((FloatArr) wrappers.get(4)).getFloats(), 0.001f);
- Assert.assertArrayEquals(doubles, ((DoubleArr) wrappers.get(5)).getDoubles(), 0.001);
- Assert.assertArrayEquals(chars, ((CharArr) wrappers.get(6)).getChars());
- assertArrayEquals(bools, ((BooleanArr) wrappers.get(7)).getBools());
- }
-
- /*
- * For some reason, every other assertArrayEquals specialization is provided
- * by org.junit.Assert, but not this one.
- */
- private void assertArrayEquals(boolean[] expected, boolean[] actuals) {
- assertEquals("Arrays differ in length", expected.length, actuals.length);
- for (int i = 0; i < expected.length; ++i) {
- if (expected[i] != actuals[i]) {
- fail("Arrays first differ at " + i + "; expected " + expected[i] + " but got "
- + actuals[i]);
- }
- }
- }
-
- private void tryInvalid(String t, Class<?> expectedException) {
- Yaml yaml = new Yaml();
- try {
- Object loaded = yaml.load(t);
- fail("Expected " + expectedException.getCanonicalName() + " but loaded = \"" + loaded
- + "\"");
- } catch (YAMLException e) {
- assertEquals(expectedException, e.getCause().getClass());
- }
- }
-
- public void testInvalidConstructors() {
- // Loading a character as any primitive other than 'char' is a
- // NumberFormatException
- tryInvalid(pkg + ".ByteArr [ [ 'a' ] ]", NumberFormatException.class);
- tryInvalid(pkg + ".ShortArr [ [ 'a' ] ]", NumberFormatException.class);
- tryInvalid(pkg + ".IntArr [ [ 'a' ] ]", NumberFormatException.class);
- tryInvalid(pkg + ".LongArr [ [ 'a' ] ]", NumberFormatException.class);
- tryInvalid(pkg + ".FloatArr [ [ 'a' ] ]", NumberFormatException.class);
- tryInvalid(pkg + ".DoubleArr [ [ 'a' ] ]", NumberFormatException.class);
-
- // Exception: because of how boolean construction works, constructing a
- // boolean from 'a'
- // results in null.
- tryInvalid(pkg + ".BooleanArr [ [ 'a' ] ]", NullPointerException.class);
-
- // Loading a floating-point number as a character is a YAMLException
- tryInvalid(pkg + ".CharArr [ [ 1.2 ] ]", YAMLException.class);
-
- // Loading a String as a Character is a YAMLException
- tryInvalid(pkg + ".CharArr [ [ 'abcd' ] ]", YAMLException.class);
-
+ private final String pkg = "!!org.yaml.snakeyaml.array";
+
+ private final byte[] bytes = new byte[] {1, 2, 3};
+ private final short[] shorts = new short[] {300, 301, 302};
+ private final int[] ints = new int[] {40000, 40001, 40002};
+ private final long[] longs = new long[] {5000000000L, 5000000001L};
+ private final float[] floats = new float[] {0.1f, 3.1415f};
+ private final double[] doubles = new double[] {50.0001, 2150.0002};
+ private final char[] chars = new char[] {'a', 'b', 'c', 'd', 'e'};
+ private final boolean[] bools = new boolean[] {true, false};
+
+ public void testValidConstructor() {
+ String testInput = "- " + pkg + ".ByteArr [ " + Arrays.toString(bytes) + " ]\n" + "- " + pkg
+ + ".ShortArr [ " + Arrays.toString(shorts) + " ]\n" + "- " + pkg + ".IntArr [ "
+ + Arrays.toString(ints) + " ]\n" + "- " + pkg + ".LongArr [ " + Arrays.toString(longs)
+ + " ]\n" + "- " + pkg + ".FloatArr [ " + Arrays.toString(floats) + " ]\n" + "- " + pkg
+ + ".DoubleArr [ " + Arrays.toString(doubles) + " ]\n" + "- " + pkg + ".CharArr [ "
+ + Arrays.toString(chars) + " ]\n" + "- " + pkg + ".BooleanArr [ " + Arrays.toString(bools)
+ + " ]\n";
+
+ Yaml yaml = new Yaml();
+ List<Object> wrappers = yaml.load(testInput);
+
+ Assert.assertArrayEquals(bytes, ((ByteArr) wrappers.get(0)).getBytes());
+ Assert.assertArrayEquals(shorts, ((ShortArr) wrappers.get(1)).getShorts());
+ Assert.assertArrayEquals(ints, ((IntArr) wrappers.get(2)).getInts());
+ Assert.assertArrayEquals(longs, ((LongArr) wrappers.get(3)).getLongs());
+ Assert.assertArrayEquals(floats, ((FloatArr) wrappers.get(4)).getFloats(), 0.001f);
+ Assert.assertArrayEquals(doubles, ((DoubleArr) wrappers.get(5)).getDoubles(), 0.001);
+ Assert.assertArrayEquals(chars, ((CharArr) wrappers.get(6)).getChars());
+ assertArrayEquals(bools, ((BooleanArr) wrappers.get(7)).getBools());
+ }
+
+ /*
+ * For some reason, every other assertArrayEquals specialization is provided by org.junit.Assert,
+ * but not this one.
+ */
+ private void assertArrayEquals(boolean[] expected, boolean[] actuals) {
+ assertEquals("Arrays differ in length", expected.length, actuals.length);
+ for (int i = 0; i < expected.length; ++i) {
+ if (expected[i] != actuals[i]) {
+ fail(
+ "Arrays first differ at " + i + "; expected " + expected[i] + " but got " + actuals[i]);
+ }
}
-
- public void testTruncation() {
- // Loading floating-point numbers as integer types is disallowed,
- // because that's a number-format problem.
- tryInvalid(pkg + ".ByteArr [ [ 3.14 ] ]", NumberFormatException.class);
- tryInvalid(pkg + ".ShortArr [ [ 3.14 ] ]", NumberFormatException.class);
- tryInvalid(pkg + ".IntArr [ [ 3.14 ] ]", NumberFormatException.class);
- tryInvalid(pkg + ".LongArr [ [ 3.14 ] ]", NumberFormatException.class);
+ }
+
+ private void tryInvalid(String t, Class<?> expectedException) {
+ Yaml yaml = new Yaml();
+ try {
+ Object loaded = yaml.load(t);
+ fail("Expected " + expectedException.getCanonicalName() + " but loaded = \"" + loaded + "\"");
+ } catch (YAMLException e) {
+ assertEquals(expectedException, e.getCause().getClass());
}
-
- public void testPromotion() {
- Yaml yaml = new Yaml();
-
- // Loading integer numbers as floating-point types is allowed...
- Assert.assertArrayEquals(new float[] { 3, 5 },
- ((FloatArr) yaml.load(pkg + ".FloatArr [ [ 3, 5 ] ] ")).getFloats(), 0.001f);
-
- Assert.assertArrayEquals(new double[] { 3, 5 },
- ((DoubleArr) yaml.load(pkg + ".DoubleArr [ [ 3, 5 ] ] ")).getDoubles(), 0.001f);
+ }
+
+ public void testInvalidConstructors() {
+ // Loading a character as any primitive other than 'char' is a
+ // NumberFormatException
+ tryInvalid(pkg + ".ByteArr [ [ 'a' ] ]", NumberFormatException.class);
+ tryInvalid(pkg + ".ShortArr [ [ 'a' ] ]", NumberFormatException.class);
+ tryInvalid(pkg + ".IntArr [ [ 'a' ] ]", NumberFormatException.class);
+ tryInvalid(pkg + ".LongArr [ [ 'a' ] ]", NumberFormatException.class);
+ tryInvalid(pkg + ".FloatArr [ [ 'a' ] ]", NumberFormatException.class);
+ tryInvalid(pkg + ".DoubleArr [ [ 'a' ] ]", NumberFormatException.class);
+
+ // Exception: because of how boolean construction works, constructing a
+ // boolean from 'a'
+ // results in null.
+ tryInvalid(pkg + ".BooleanArr [ [ 'a' ] ]", NullPointerException.class);
+
+ // Loading a floating-point number as a character is a YAMLException
+ tryInvalid(pkg + ".CharArr [ [ 1.2 ] ]", YAMLException.class);
+
+ // Loading a String as a Character is a YAMLException
+ tryInvalid(pkg + ".CharArr [ [ 'abcd' ] ]", YAMLException.class);
+
+ }
+
+ public void testTruncation() {
+ // Loading floating-point numbers as integer types is disallowed,
+ // because that's a number-format problem.
+ tryInvalid(pkg + ".ByteArr [ [ 3.14 ] ]", NumberFormatException.class);
+ tryInvalid(pkg + ".ShortArr [ [ 3.14 ] ]", NumberFormatException.class);
+ tryInvalid(pkg + ".IntArr [ [ 3.14 ] ]", NumberFormatException.class);
+ tryInvalid(pkg + ".LongArr [ [ 3.14 ] ]", NumberFormatException.class);
+ }
+
+ public void testPromotion() {
+ Yaml yaml = new Yaml();
+
+ // Loading integer numbers as floating-point types is allowed...
+ Assert.assertArrayEquals(new float[] {3, 5},
+ ((FloatArr) yaml.load(pkg + ".FloatArr [ [ 3, 5 ] ] ")).getFloats(), 0.001f);
+
+ Assert.assertArrayEquals(new double[] {3, 5},
+ ((DoubleArr) yaml.load(pkg + ".DoubleArr [ [ 3, 5 ] ] ")).getDoubles(), 0.001f);
+ }
+
+ public void testStringCharArray() {
+ Yaml yaml = new Yaml();
+
+ try {
+ yaml.load(pkg + ".CharArr [ [ abcd ] ]");
+ fail("Expected exception.");
+ } catch (Exception e) {
+ assertEquals(ConstructorException.class, e.getClass());
+ assertEquals("Invalid node Character: 'abcd'; length: 4", e.getCause().getMessage());
}
-
- public void testStringCharArray() {
- Yaml yaml = new Yaml();
-
- try {
- yaml.load(pkg + ".CharArr [ [ abcd ] ]");
- fail("Expected exception.");
- } catch (Exception e) {
- assertEquals(ConstructorException.class, e.getClass());
- assertEquals("Invalid node Character: 'abcd'; length: 4", e.getCause().getMessage());
- }
+ }
+
+ private static Object cycle(Object in) {
+ Yaml yaml = new Yaml();
+ String dumped = yaml.dump(in);
+ // System.out.println ( dumped );
+ return yaml.load(dumped);
+ }
+
+ /**
+ * All kinds of primitive arrays should be able to cycle from (Java array) to (YAML string) to
+ * (Java array) again, and they should be exactly the same before and after.
+ */
+ public void testCycle() {
+ ByteArr byteArr = new ByteArr(bytes);
+ Assert.assertArrayEquals(byteArr.getBytes(), ((ByteArr) cycle(byteArr)).getBytes());
+
+ ShortArr shortArr = new ShortArr(shorts);
+ Assert.assertArrayEquals(shortArr.getShorts(), ((ShortArr) cycle(shortArr)).getShorts());
+
+ IntArr intArr = new IntArr(ints);
+ Assert.assertArrayEquals(intArr.getInts(), ((IntArr) cycle(intArr)).getInts());
+
+ LongArr longArr = new LongArr(longs);
+ Assert.assertArrayEquals(longArr.getLongs(), ((LongArr) cycle(longArr)).getLongs());
+
+ FloatArr floatArr = new FloatArr(floats);
+ Assert.assertArrayEquals(floatArr.getFloats(), ((FloatArr) cycle(floatArr)).getFloats(),
+ 0.001f);
+
+ DoubleArr doubleArr = new DoubleArr(doubles);
+ Assert.assertArrayEquals(doubleArr.getDoubles(), ((DoubleArr) cycle(doubleArr)).getDoubles(),
+ 0.001);
+
+ CharArr charArr = new CharArr(chars);
+ Assert.assertArrayEquals(charArr.getChars(), ((CharArr) cycle(charArr)).getChars());
+
+ BooleanArr boolArr = new BooleanArr(bools);
+ assertArrayEquals(boolArr.getBools(), ((BooleanArr) cycle(boolArr)).getBools());
+ }
+
+ public void testMultiDimensional() {
+ Array2D two = new Array2D();
+ two.setLongs(new long[][] {{1, 2, 3}, {4, 5, 6}});
+ assertTrue(Arrays.deepEquals(two.getLongs(), ((Array2D) cycle(two)).getLongs()));
+
+ Array3D three = new Array3D();
+ three.setLongs(
+ new long[][][] {{{1, 2, 3, 4}, {5, 6, 7, 8}}, {{9, 10, 11, 12}, {13, 14, 15, 16}}});
+ assertTrue(Arrays.deepEquals(three.getLongs(), ((Array3D) cycle(three)).getLongs()));
+
+ // Object with an array of Objects which each have an array of
+ // primitives.
+ ArrayLongArr four = new ArrayLongArr();
+ four.setContents(
+ new LongArr[] {new LongArr(new long[] {1, 2, 3, 4}), new LongArr(new long[] {5, 6, 7, 8})});
+ Object result = cycle(four);
+ assertEquals(four, result);
+ }
+
+ public static class Array2D {
+
+ private long[][] longs;
+
+ public long[][] getLongs() {
+ return longs;
}
- private static Object cycle(Object in) {
- Yaml yaml = new Yaml();
- String dumped = yaml.dump(in);
- // System.out.println ( dumped );
- return yaml.load(dumped);
+ public void setLongs(long[][] longs) {
+ this.longs = longs;
}
+ }
- /**
- * All kinds of primitive arrays should be able to cycle from (Java array)
- * to (YAML string) to (Java array) again, and they should be exactly the
- * same before and after.
- */
- public void testCycle() {
- ByteArr byteArr = new ByteArr(bytes);
- Assert.assertArrayEquals(byteArr.getBytes(), ((ByteArr) cycle(byteArr)).getBytes());
-
- ShortArr shortArr = new ShortArr(shorts);
- Assert.assertArrayEquals(shortArr.getShorts(), ((ShortArr) cycle(shortArr)).getShorts());
-
- IntArr intArr = new IntArr(ints);
- Assert.assertArrayEquals(intArr.getInts(), ((IntArr) cycle(intArr)).getInts());
+ public static class Array3D {
- LongArr longArr = new LongArr(longs);
- Assert.assertArrayEquals(longArr.getLongs(), ((LongArr) cycle(longArr)).getLongs());
+ private long[][][] longs;
- FloatArr floatArr = new FloatArr(floats);
- Assert.assertArrayEquals(floatArr.getFloats(), ((FloatArr) cycle(floatArr)).getFloats(),
- 0.001f);
-
- DoubleArr doubleArr = new DoubleArr(doubles);
- Assert.assertArrayEquals(doubleArr.getDoubles(),
- ((DoubleArr) cycle(doubleArr)).getDoubles(), 0.001);
-
- CharArr charArr = new CharArr(chars);
- Assert.assertArrayEquals(charArr.getChars(), ((CharArr) cycle(charArr)).getChars());
-
- BooleanArr boolArr = new BooleanArr(bools);
- assertArrayEquals(boolArr.getBools(), ((BooleanArr) cycle(boolArr)).getBools());
+ public long[][][] getLongs() {
+ return longs;
}
- public void testMultiDimensional() {
- Array2D two = new Array2D();
- two.setLongs(new long[][] { { 1, 2, 3 }, { 4, 5, 6 } });
- assertTrue(Arrays.deepEquals(two.getLongs(), ((Array2D) cycle(two)).getLongs()));
-
- Array3D three = new Array3D();
- three.setLongs(new long[][][] { { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } },
- { { 9, 10, 11, 12 }, { 13, 14, 15, 16 } } });
- assertTrue(Arrays.deepEquals(three.getLongs(), ((Array3D) cycle(three)).getLongs()));
-
- // Object with an array of Objects which each have an array of
- // primitives.
- ArrayLongArr four = new ArrayLongArr();
- four.setContents(new LongArr[] { new LongArr(new long[] { 1, 2, 3, 4 }),
- new LongArr(new long[] { 5, 6, 7, 8 }) });
- Object result = cycle(four);
- assertEquals(four, (ArrayLongArr) result);
+ public void setLongs(long[][][] longs) {
+ this.longs = longs;
}
+ }
- public static class Array2D {
- private long[][] longs;
+ public static class ArrayLongArr {
- public long[][] getLongs() {
- return longs;
- }
+ private LongArr[] contents;
- public void setLongs(long[][] longs) {
- this.longs = longs;
- }
+ public LongArr[] getContents() {
+ return contents;
}
- public static class Array3D {
- private long[][][] longs;
-
- public long[][][] getLongs() {
- return longs;
- }
-
- public void setLongs(long[][][] longs) {
- this.longs = longs;
- }
+ public void setContents(LongArr[] contents) {
+ this.contents = contents;
}
- public static class ArrayLongArr {
- private LongArr[] contents;
-
- public LongArr[] getContents() {
- return contents;
- }
-
- public void setContents(LongArr[] contents) {
- this.contents = contents;
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof ArrayLongArr)) {
+ return false;
+ }
+
+ ArrayLongArr other = ((ArrayLongArr) obj);
+ if (contents.length != other.getContents().length) {
+ return false;
+ }
+ for (int i = 0; i < contents.length; ++i) {
+ if (!Arrays.equals(contents[i].getLongs(), other.getContents()[i].getLongs())) {
+ return false;
}
+ }
- @Override
- public boolean equals(Object obj) {
- if (!(obj instanceof ArrayLongArr))
- return false;
-
- ArrayLongArr other = ((ArrayLongArr) obj);
- if (contents.length != other.getContents().length)
- return false;
- for (int i = 0; i < contents.length; ++i) {
- if (!Arrays.equals(contents[i].getLongs(), other.getContents()[i].getLongs())) {
- return false;
- }
- }
-
- return true;
- }
+ return true;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/array/ShortArr.java b/src/test/java/org/yaml/snakeyaml/array/ShortArr.java
index bd09bbf2..548dcab6 100644
--- a/src/test/java/org/yaml/snakeyaml/array/ShortArr.java
+++ b/src/test/java/org/yaml/snakeyaml/array/ShortArr.java
@@ -1,41 +1,39 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.array;
import java.util.Arrays;
public class ShortArr {
- private short[] shorts;
- public ShortArr() {
- }
+ private short[] shorts;
- public ShortArr(short[] shorts) {
- this.shorts = shorts;
- }
+ public ShortArr() {}
- public String toString() {
- return Arrays.toString(shorts);
- }
+ public ShortArr(short[] shorts) {
+ this.shorts = shorts;
+ }
- public short[] getShorts() {
- return shorts;
- }
+ public String toString() {
+ return Arrays.toString(shorts);
+ }
- public void setShorts(short[] shorts) {
- this.shorts = shorts;
- }
+ public short[] getShorts() {
+ return shorts;
+ }
+
+ public void setShorts(short[] shorts) {
+ this.shorts = shorts;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/comment/ComposerWithCommentEnabledTest.java b/src/test/java/org/yaml/snakeyaml/comment/ComposerWithCommentEnabledTest.java
new file mode 100644
index 00000000..353631a3
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/comment/ComposerWithCommentEnabledTest.java
@@ -0,0 +1,592 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.comment;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.List;
+import org.junit.Test;
+import org.yaml.snakeyaml.comments.CommentLine;
+import org.yaml.snakeyaml.composer.Composer;
+import org.yaml.snakeyaml.constructor.SafeConstructor;
+import org.yaml.snakeyaml.nodes.MappingNode;
+import org.yaml.snakeyaml.nodes.Node;
+import org.yaml.snakeyaml.nodes.NodeTuple;
+import org.yaml.snakeyaml.nodes.ScalarNode;
+import org.yaml.snakeyaml.nodes.SequenceNode;
+import org.yaml.snakeyaml.parser.ParserImpl;
+import org.yaml.snakeyaml.reader.StreamReader;
+import org.yaml.snakeyaml.resolver.Resolver;
+
+public class ComposerWithCommentEnabledTest {
+
+ private final boolean DEBUG = false;
+
+ private void printBlockComment(Node node, int level, PrintStream out) {
+ if (node.getBlockComments() != null) {
+ List<CommentLine> blockComments = node.getBlockComments();
+ for (int i = 0; i < blockComments.size(); i++) {
+ printWithIndent("Block Comment", level, out);
+ }
+ }
+ }
+
+ private void printEndComment(Node node, int level, PrintStream out) {
+ if (node.getEndComments() != null) {
+ List<CommentLine> endComments = node.getEndComments();
+ for (int i = 0; i < endComments.size(); i++) {
+ printWithIndent("End Comment", level, out);
+ }
+ }
+ }
+
+ private void printInLineComment(Node node, int level, PrintStream out) {
+ if (node.getInLineComments() != null) {
+ List<CommentLine> inLineComments = node.getInLineComments();
+ for (int i = 0; i < inLineComments.size(); i++) {
+ printWithIndent("InLine Comment", level + 1, out);
+ }
+ }
+ }
+
+ private void printWithIndent(String line, int level, PrintStream out) {
+ for (int ix = 0; ix < level; ix++) {
+ out.print(" ");
+ }
+ out.print(line);
+ out.print("\n");
+ }
+
+ private void printNodeInternal(Node node, int level, PrintStream out) {
+
+ if (node instanceof MappingNode) {
+ MappingNode mappingNode = (MappingNode) node;
+ printBlockComment(mappingNode, level, out);
+ printWithIndent(mappingNode.getClass().getSimpleName(), level, out);
+ for (NodeTuple childNodeTuple : mappingNode.getValue()) {
+ printWithIndent("Tuple", level + 1, out);
+ printNodeInternal(childNodeTuple.getKeyNode(), level + 2, out);
+ printNodeInternal(childNodeTuple.getValueNode(), level + 2, out);
+ }
+ printInLineComment(mappingNode, level, out);
+ printEndComment(mappingNode, level, out);
+
+ } else if (node instanceof SequenceNode) {
+ SequenceNode sequenceNode = (SequenceNode) node;
+ printBlockComment(sequenceNode, level, out);
+ printWithIndent(sequenceNode.getClass().getSimpleName(), level, out);
+ for (Node childNode : sequenceNode.getValue()) {
+ printNodeInternal(childNode, level + 1, out);
+ }
+ printInLineComment(sequenceNode, level, out);
+ printEndComment(sequenceNode, level, out);
+
+ } else if (node instanceof ScalarNode) {
+ ScalarNode scalarNode = (ScalarNode) node;
+ printBlockComment(scalarNode, level, out);
+ printWithIndent(scalarNode.getClass().getSimpleName() + ": " + scalarNode.getValue(), level,
+ out);
+ printInLineComment(scalarNode, level, out);
+ printEndComment(scalarNode, level, out);
+
+ } else {
+ printBlockComment(node, level, out);
+ printWithIndent(node.getClass().getSimpleName(), level, out);
+ printInLineComment(node, level, out);
+ printEndComment(node, level, out);
+ }
+ }
+
+ private void printNodeList(List<Node> nodeList) {
+ if (DEBUG) {
+ System.out.println("BEGIN");
+ boolean first = true;
+ for (Node node : nodeList) {
+ if (first) {
+ first = false;
+ } else {
+ System.out.println("---");
+ }
+ printNodeInternal(node, 1, System.out);
+ }
+ System.out.println("DONE\n");
+ }
+ }
+
+ private List<Node> getNodeList(Composer composer) {
+ List<Node> nodeList = new ArrayList<>();
+ while (composer.checkNode()) {
+ nodeList.add(composer.getNode());
+ }
+ return nodeList;
+ }
+
+ private void assertNodesEqual(String[] expected, List<Node> nodeList) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ boolean first = true;
+ try (PrintStream out = new PrintStream(baos)) {
+ for (Node node : nodeList) {
+ if (first) {
+ first = false;
+ } else {
+ out.print("---\n");
+ }
+ printNodeInternal(node, 0, out);
+ }
+ }
+ String actualString = baos.toString();
+ String[] actuals = actualString.split("\n");
+ for (int ix = 0; ix < Math.min(expected.length, actuals.length); ix++) {
+ assertEquals(expected[ix], actuals[ix]);
+ }
+ assertEquals(expected.length, actuals.length);
+ }
+
+ public Composer newComposerWithCommentsEnabled(String data) {
+ return new Composer(new ParserImpl(new StreamReader(data), true), new Resolver());
+ }
+
+ @Test
+ public void testEmpty() {
+ String data = "";
+ String[] expected = new String[] { //
+ "" //
+ };
+
+ Composer sut = newComposerWithCommentsEnabled(data);
+ List<Node> result = getNodeList(sut);
+
+ printNodeList(result);
+ assertNodesEqual(expected, result);
+ }
+
+ @Test
+ public void testParseWithOnlyComment() {
+ String data = "# Comment";
+ String[] expected = new String[] { //
+ "Block Comment", //
+ "MappingNode", //
+ };
+
+ Composer sut = newComposerWithCommentsEnabled(data);
+ List<Node> result = getNodeList(sut);
+
+ printNodeList(result);
+ assertNodesEqual(expected, result);
+ }
+
+ @Test
+ public void testCommentEndingALine() {
+ String data = "" + //
+ "key: # Comment\n" + //
+ " value\n";
+
+ String[] expected = new String[] { //
+ "MappingNode", //
+ " Tuple", //
+ " ScalarNode: key", //
+ " InLine Comment", //
+ " ScalarNode: value" //
+ };
+
+ Composer sut = newComposerWithCommentsEnabled(data);
+ List<Node> result = getNodeList(sut);
+
+ printNodeList(result);
+ assertNodesEqual(expected, result);
+ }
+
+ @Test
+ public void testMultiLineComment() {
+ String data = "" + //
+ "key: # Comment\n" + //
+ " # lines\n" + //
+ " value\n" + //
+ "\n";
+
+ String[] expected = new String[] { //
+ "MappingNode", //
+ " Tuple", //
+ " ScalarNode: key", //
+ " InLine Comment", //
+ " InLine Comment", //
+ " ScalarNode: value", //
+ "End Comment" //
+ };
+
+ Composer sut = newComposerWithCommentsEnabled(data);
+ List<Node> result = getNodeList(sut);
+
+ printNodeList(result);
+ assertNodesEqual(expected, result);
+ }
+
+ @Test
+ public void testBlankLine() {
+ String data = "" + //
+ "\n";
+
+ String[] expected = new String[] { //
+ "Block Comment", //
+ "MappingNode", //
+ };
+
+ Composer sut = newComposerWithCommentsEnabled(data);
+ List<Node> result = getNodeList(sut);
+
+ printNodeList(result);
+ assertNodesEqual(expected, result);
+ }
+
+ @Test
+ public void testBlankLineComments() {
+ String data = "" + //
+ "\n" + //
+ "abc: def # commment\n" + //
+ "\n" + //
+ "\n";
+
+ String[] expected = new String[] { //
+ "MappingNode", //
+ " Tuple", //
+ " Block Comment", //
+ " ScalarNode: abc", //
+ " ScalarNode: def", //
+ " InLine Comment", //
+ "End Comment", //
+ "End Comment", //
+ };
+
+ Composer sut = newComposerWithCommentsEnabled(data);
+ List<Node> result = getNodeList(sut);
+
+ printNodeList(result);
+ assertNodesEqual(expected, result);
+ }
+
+ @Test
+ public void test_blockScalar() {
+ String data = "" + //
+ "abc: > # Comment\n" + //
+ " def\n" + //
+ " hij\n" + //
+ "\n";
+
+ String[] expected = new String[] { //
+ "MappingNode", //
+ " Tuple", //
+ " ScalarNode: abc", //
+ " InLine Comment", //
+ " ScalarNode: def hij" //
+ };
+
+ Composer sut = newComposerWithCommentsEnabled(data);
+ List<Node> result = getNodeList(sut);
+
+ printNodeList(result);
+ assertNodesEqual(expected, result);
+ }
+
+ @Test
+ public void testDirectiveLineEndComment() {
+ String data = "%YAML 1.1 #Comment\n";
+
+ String[] expected = new String[] { //
+ "" //
+ };
+
+ Composer sut = newComposerWithCommentsEnabled(data);
+ List<Node> result = getNodeList(sut);
+
+ printNodeList(result);
+ assertNodesEqual(expected, result);
+ }
+
+ @Test
+ public void testSequence() {
+ String data = "" + //
+ "# Comment\n" + //
+ "list: # InlineComment1\n" + //
+ "# Block Comment\n" + //
+ "- item # InlineComment2\n" + //
+ "# Comment\n";
+
+ String[] expected = new String[] { //
+ "MappingNode", //
+ " Tuple", //
+ " Block Comment", //
+ " ScalarNode: list", //
+ " InLine Comment", //
+ " SequenceNode", //
+ " Block Comment", //
+ " ScalarNode: item", //
+ " InLine Comment", //
+ "End Comment" //
+ };
+
+ Composer sut = newComposerWithCommentsEnabled(data);
+ List<Node> result = getNodeList(sut);
+
+ printNodeList(result);
+ assertNodesEqual(expected, result);
+ }
+
+ @Test
+ public void testAllComments1() throws Exception {
+ String data = "" + //
+ "# Block Comment1\n" + //
+ "# Block Comment2\n" + //
+ "key: # Inline Comment1a\n" + //
+ " # Inline Comment1b\n" + //
+ " # Block Comment3a\n" + //
+ " # Block Comment3b\n" + //
+ " value # Inline Comment2\n" + //
+ "# Block Comment4\n" + //
+ "list: # InlineComment3a\n" + //
+ " # InlineComment3b\n" + //
+ "# Block Comment5\n" + //
+ "- item1 # InlineComment4\n" + //
+ "- item2: [ value2a, value2b ] # InlineComment5\n" + //
+ "- item3: { key3a: [ value3a1, value3a2 ], key3b: value3b } # InlineComment6\n" + //
+ "# Block Comment6\n" + //
+ "---\n" + //
+ "# Block Comment7\n" + //
+ "";
+
+ String[] expected = new String[] { //
+ "MappingNode", //
+ " Tuple", //
+ " Block Comment", //
+ " Block Comment", //
+ " ScalarNode: key", //
+ " InLine Comment", //
+ " InLine Comment", //
+ " Block Comment", //
+ " Block Comment", //
+ " ScalarNode: value", //
+ " InLine Comment", //
+ " Tuple", //
+ " Block Comment", //
+ " ScalarNode: list", //
+ " InLine Comment", //
+ " InLine Comment", //
+ " SequenceNode", //
+ " Block Comment", //
+ " ScalarNode: item1", //
+ " InLine Comment", //
+ " MappingNode", //
+ " Tuple", //
+ " ScalarNode: item2", //
+ " SequenceNode", //
+ " ScalarNode: value2a", //
+ " ScalarNode: value2b", //
+ " InLine Comment", //
+ " MappingNode", //
+ " Tuple", //
+ " ScalarNode: item3", //
+ " MappingNode", //
+ " Tuple", //
+ " ScalarNode: key3a", //
+ " SequenceNode", //
+ " ScalarNode: value3a1", //
+ " ScalarNode: value3a2", //
+ " Tuple", //
+ " ScalarNode: key3b", //
+ " ScalarNode: value3b", //
+ " InLine Comment", //
+ "End Comment", //
+ "---", //
+ "Block Comment", //
+ "ScalarNode: ", // This is an empty scalar created as this is an empty document
+ };
+
+ Composer sut = newComposerWithCommentsEnabled(data);
+ List<Node> result = getNodeList(sut);
+
+ printNodeList(result);
+ assertNodesEqual(expected, result);
+ }
+
+ @Test
+ public void testAllComments2() throws Exception {
+ String data = "" + //
+ "# Block Comment1\n" + //
+ "# Block Comment2\n" + //
+ "- item1 # Inline Comment1a\n" + //
+ " # Inline Comment1b\n" + //
+ "# Block Comment3a\n" + //
+ "# Block Comment3b\n" + //
+ "- item2: value # Inline Comment2\n" + //
+ "# Block Comment4\n" + //
+ "";
+
+ String[] expected = new String[] { //
+ "SequenceNode", //
+ " Block Comment", //
+ " Block Comment", //
+ " ScalarNode: item1", //
+ " InLine Comment", //
+ " InLine Comment", //
+ " MappingNode", //
+ " Tuple", //
+ " Block Comment", //
+ " Block Comment", //
+ " ScalarNode: item2", //
+ " ScalarNode: value", //
+ " InLine Comment", //
+ "End Comment", //
+ };
+
+ Composer sut = newComposerWithCommentsEnabled(data);
+ List<Node> result = getNodeList(sut);
+
+ printNodeList(result);
+ assertNodesEqual(expected, result);
+ }
+
+ @Test
+ public void testAllComments3() throws Exception {
+ String data = "" + //
+ "# Block Comment1\n" + //
+ "[ item1, item2: value2, {item3: value3} ] # Inline Comment1\n" + //
+ "# Block Comment2\n" + //
+ "";
+
+ String[] expected = new String[] { //
+ "Block Comment", //
+ "SequenceNode", //
+ " ScalarNode: item1", //
+ " MappingNode", //
+ " Tuple", //
+ " ScalarNode: item2", //
+ " ScalarNode: value2", //
+ " MappingNode", //
+ " Tuple", //
+ " ScalarNode: item3", //
+ " ScalarNode: value3", //
+ " InLine Comment", //
+ "End Comment", //
+ };
+
+ Composer sut = newComposerWithCommentsEnabled(data);
+ List<Node> result = getNodeList(sut);
+
+ printNodeList(result);
+ assertNodesEqual(expected, result);
+ }
+
+ @Test
+ public void testGetSingleNode() {
+ String data = "" + //
+ "\n" + //
+ "abc: def # commment\n" + //
+ "\n" + //
+ "\n";
+ String[] expected = new String[] { //
+ "MappingNode", //
+ " Tuple", //
+ " Block Comment", " ScalarNode: abc", //
+ " ScalarNode: def", //
+ " InLine Comment", //
+ "End Comment", //
+ "End Comment", //
+ };
+
+ Composer sut = newComposerWithCommentsEnabled(data);
+ List<Node> result = Collections.singletonList(sut.getSingleNode());
+
+ printNodeList(result);
+ assertNodesEqual(expected, result);
+ }
+
+ @Test
+ public void testGetSingleNodeHeaderComment() {
+ String data = "" + //
+ "\n" + //
+ "# Block Comment1\n" + //
+ "# Block Comment2\n" + //
+ "abc: def # commment\n" + //
+ "\n" + //
+ "\n";
+ String[] expected = new String[] { //
+ "MappingNode", //
+ " Tuple", //
+ " Block Comment", //
+ " Block Comment", //
+ " Block Comment", //
+ " ScalarNode: abc", //
+ " ScalarNode: def", //
+ " InLine Comment", //
+ "End Comment", //
+ "End Comment", //
+ };
+
+ Composer sut = newComposerWithCommentsEnabled(data);
+ List<Node> result = Collections.singletonList(sut.getSingleNode());
+
+ printNodeList(result);
+ assertNodesEqual(expected, result);
+ }
+
+ private static class TestConstructor extends SafeConstructor {
+
+ }
+
+ @Test
+ public void testBaseConstructorGetData() {
+ String data = "" + //
+ "\n" + //
+ "abc: def # commment\n" + //
+ "\n" + //
+ "\n";
+
+ TestConstructor sut = new TestConstructor();
+ sut.setComposer(newComposerWithCommentsEnabled(data));
+ Object result = sut.getData();
+ assertTrue(result instanceof LinkedHashMap);
+ @SuppressWarnings("unchecked")
+ LinkedHashMap<String, Object> map = (LinkedHashMap<String, Object>) result;
+ assertEquals(1, map.size());
+ assertEquals(map.get("abc"), "def");
+ }
+
+ @Test
+ public void testEmptyEntryInMap() {
+ String data = "userProps:\n" + //
+ "#password\n" + //
+ "pass: mySecret\n";
+ String[] expected = new String[] { //
+ "MappingNode", //
+ " Tuple", //
+ " ScalarNode: userProps", //
+ " ScalarNode: ", //
+ " Tuple", //
+ " Block Comment", //
+ " ScalarNode: pass", //
+ " ScalarNode: mySecret", //
+ };
+
+ Composer sut = newComposerWithCommentsEnabled(data);
+ List<Node> result = Collections.singletonList(sut.getSingleNode());
+
+ printNodeList(result);
+ assertNodesEqual(expected, result);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/comment/EmitterWithCommentEnabledTest.java b/src/test/java/org/yaml/snakeyaml/comment/EmitterWithCommentEnabledTest.java
new file mode 100644
index 00000000..5eda36c4
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/comment/EmitterWithCommentEnabledTest.java
@@ -0,0 +1,498 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.comment;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.io.StringWriter;
+import org.junit.Test;
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.DumperOptions.FlowStyle;
+import org.yaml.snakeyaml.DumperOptions.ScalarStyle;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.comments.CommentType;
+import org.yaml.snakeyaml.composer.Composer;
+import org.yaml.snakeyaml.constructor.SafeConstructor;
+import org.yaml.snakeyaml.emitter.Emitter;
+import org.yaml.snakeyaml.events.CommentEvent;
+import org.yaml.snakeyaml.events.DocumentEndEvent;
+import org.yaml.snakeyaml.events.DocumentStartEvent;
+import org.yaml.snakeyaml.events.ImplicitTuple;
+import org.yaml.snakeyaml.events.MappingEndEvent;
+import org.yaml.snakeyaml.events.MappingStartEvent;
+import org.yaml.snakeyaml.events.ScalarEvent;
+import org.yaml.snakeyaml.events.SequenceEndEvent;
+import org.yaml.snakeyaml.events.SequenceStartEvent;
+import org.yaml.snakeyaml.events.StreamEndEvent;
+import org.yaml.snakeyaml.events.StreamStartEvent;
+import org.yaml.snakeyaml.parser.ParserImpl;
+import org.yaml.snakeyaml.reader.StreamReader;
+import org.yaml.snakeyaml.representer.Representer;
+import org.yaml.snakeyaml.resolver.Resolver;
+import org.yaml.snakeyaml.serializer.Serializer;
+
+public class EmitterWithCommentEnabledTest {
+
+ private String runEmitterWithCommentsEnabled(String data) throws IOException {
+ StringWriter output = new StringWriter();
+
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(ScalarStyle.PLAIN);
+ options.setDefaultFlowStyle(FlowStyle.BLOCK);
+ options.setProcessComments(true);
+ Serializer serializer =
+ new Serializer(new Emitter(output, options), new Resolver(), options, null);
+
+ serializer.open();
+ Composer composer = new Composer(new ParserImpl(new StreamReader(data), true), new Resolver());
+ while (composer.checkNode()) {
+ serializer.serialize(composer.getNode());
+ }
+ serializer.close();
+
+ return output.toString();
+ }
+
+ private Emitter producePrettyFlowEmitter(StringWriter output) {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(ScalarStyle.PLAIN);
+ options.setDefaultFlowStyle(FlowStyle.FLOW);
+ options.setProcessComments(true);
+ options.setPrettyFlow(true);
+ return new Emitter(output, options);
+ }
+
+ @Test
+ public void testEmpty() throws Exception {
+ String data = "";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testWithOnlyComment() throws Exception {
+ String data = "# Comment\n\n";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testCommentEndingALine() throws Exception {
+ String data = "" + //
+ "key: # Comment\n" + //
+ " value\n";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testMultiLineComment() throws Exception {
+ String data = "" + //
+ "key: # Comment\n" + //
+ " # lines\n" + //
+ " value\n";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testBlankLine() throws Exception {
+ String data = "" + //
+ "\n";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testBlankLineComments() throws Exception {
+ String data = "" + //
+ "\n" + //
+ "abc: def # comment\n" + //
+ "\n" + //
+ "\n";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testBlockScalar() throws Exception {
+ String data = "" + //
+ "abc: | # Comment\n" + //
+ " def\n" + //
+ " hij\n";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testDirectiveLineEndComment() throws Exception {
+ String data = "%YAML 1.1 #Comment\n";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ // We currently strip Directive comments
+ assertEquals("", result);
+ }
+
+ @Test
+ public void testSequence() throws Exception {
+ String data = "" + //
+ "# Comment\n" + //
+ "list: # InlineComment1\n" + //
+ " - # Block Comment\n" + //
+ " item # InlineComment2\n" + //
+ "# Comment\n";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testAllComments1() throws Exception {
+ String data = "" + //
+ "# Block Comment1\n" + //
+ "# Block Comment2\n" + //
+ "key: # Inline Comment1a\n" + //
+ " # Inline Comment1b\n" + //
+ " # Block Comment3a\n" + //
+ " # Block Comment3b\n" + //
+ " value # Inline Comment2\n" + //
+ "# Block Comment4\n" + //
+ "list: # InlineComment3a\n" + //
+ " # InlineComment3b\n" + //
+ " - # Block Comment5\n" + //
+ " item1 # InlineComment4\n" + //
+ " - item2: [value2a, value2b] # InlineComment5\n" + //
+ " - item3: {key3a: [value3a1, value3a2], key3b: value3b} # InlineComment6\n" + //
+ "# Block Comment6\n" + //
+ "---\n" + //
+ "# Block Comment7\n" + //
+ "";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testMultiDoc() throws Exception {
+ String data = "" + //
+ "key: value\n" + //
+ "# Block Comment\n" + //
+ "---\n" + //
+ "# Block Comment\n" + //
+ "key: value\n" + //
+ "";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testAllComments2() throws Exception {
+ String data = "" + //
+ "key:\n" + " key:\n" + " key:\n" + " - # Block Comment1\n" + " item1a\n"
+ + " - # Block Comment2\n" + " - item1b\n" + " - # Block Comment3\n"
+ + " MapKey_1: MapValue1\n" + " MapKey_2: MapValue2\n" + "key2:\n"
+ + "- # Block Comment4\n" + //
+ " # Block Comment5\n" + //
+ " item1 # Inline Comment1a\n" + //
+ " # Inline Comment1b\n" + //
+ "- # Block Comment6a\n" + //
+ " # Block Comment6b\n" + //
+ " item2: value # Inline Comment2\n" + //
+ "# Block Comment7\n" + //
+ "";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testAllComments3() throws Exception {
+ String data = "" + //
+ "# Block Comment1\n" + //
+ "[item1, {item2: value2}, {item3: value3}] # Inline Comment1\n" + //
+ "# Block Comment2\n" + //
+ "";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testKeepingNewLineInsideSequence() throws Exception {
+ String data = "" + "\n" + "key:\n" +
+ // " \n" + // only supported in a sequence right now
+ "- item1\n" +
+ // "\n" + // Per Spec this is part of plain scalar above
+ "- item2\n" +
+ // "\n" + // Per Spec this is part of plain scalar above
+ "- item3\n" + "\n" + "key2: value2\n" + "\n" + "key3: value3\n" + "\n" + "";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testKeepingNewLineInsideSequence2() throws Exception {
+ String data = "" + "apiVersion: kustomize.config.k8s.io/v1beta1\n" + "kind: Kustomization\n"
+ + "\n" + "namePrefix: acquisition-gateway-\n" + "\n" + "bases:\n" +
+ /**
+ * Not supported right now " \n" + "#-
+ * https://github.intuit.com/dev-patterns/intuit-kustomize/intuit-service-appd-noingress-base?ref=v3.1.2\n"
+ * + "# Add the following base and HPA-patch.yaml, fill in correct minReplicas and
+ * maxReplcias in Hpa-patch.yaml\n" + "#-
+ * https://github.intuit.com/dev-patterns/intuit-kustomize//intuit-service-hpa-base?ref=v3.1.2\n"
+ * +
+ */
+ "- https://github.intuit.com/dev-patterns/intuit-kustomize//intuit-service-canary-appd-noingress-base?ref=v3.2.0\n"
+ + "- https://github.intuit.com/dev-patterns/intuit-kustomize//intuit-service-rollout-hpa-base?ref=v3.2.0\n"
+ + "# resources:\n" + "# - Nginx-ConfigMap.yaml\n" + "\n" + "resources:\n"
+ + "- ConfigMap-v1-splunk-sidecar-config.yaml\n" + "- CronJob-patch.yaml\n" + "\n"
+ + "patchesStrategicMerge:\n" + "- app-rollout-patch.yaml\n" + "- Service-patch.yaml\n"
+ + "- Service-metrics-patch.yaml\n" +
+ // "\n" +
+ "- Hpa-patch.yaml\n" + "#- SignalSciences-patch.yaml\n" + "\n"
+ + "# Uncomment HPA-patch when you need to enable HPA\n" + "#- Hpa-patch.yaml\n"
+ + "# Uncomment SignalSciences-patch when you need to enable Signal Sciences\n"
+ + "#- SignalSciences-patch.yaml\n" + "";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testCommentsIndentFirstLineBlank() throws Exception {
+ String data = "# Comment 1\n" + "key1:\n" + " \n" + " # Comment 2\n" + " # Comment 3\n"
+ + " key2: value1\n" + "# \"Fun\" options\n" + "key3:\n" + " # Comment 4\n"
+ + " # Comment 5\n" + " key4: value2\n" + "key5:\n" + " key6: value3\n";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testMultiLineString() throws Exception {
+ String data = "# YAML load and save bug with keep block chomping indicator\n" + "example:\n"
+ + " description: |+\n" + " These lines have a carrage return after them.\n"
+ + " And the carrage return will be duplicated with each save if the\n"
+ + " block chomping indicator + is used. (\"keep\": keep the line feed, keep trailing blank lines.)\n"
+ + "\n" + "successfully-loaded: test\n";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void test100Comments() throws IOException {
+ StringBuilder commentBuilder = new StringBuilder();
+ for (int i = 0; i < 100; i++) {
+ commentBuilder.append("# Comment ").append(i).append("\n");
+ }
+ final String data = "" + commentBuilder + "simpleKey: simpleValue\n" + "\n";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testCommentsOnReference() throws Exception {
+ String data = "dummy: &a test\n" + "conf:\n" + "- # comment not ok here\n"
+ + " *a #comment not ok here\n";
+ String expected = "dummy: &a test\n" + "conf:\n" + "- *a\n";
+
+ String result = runEmitterWithCommentsEnabled(data);
+ assertEquals(expected.replace("a", "id001"), result);
+ }
+
+ @Test
+ public void testCommentsAtDataWindowBreak() {
+ String data = getComplexConfig();
+
+ final DumperOptions yamlOptions = new DumperOptions();
+ final LoaderOptions loaderOptions = new LoaderOptions();
+ final Representer yamlRepresenter = new Representer();
+
+ yamlOptions.setIndent(4);
+ yamlOptions.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ yamlRepresenter.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ loaderOptions.setMaxAliasesForCollections(Integer.MAX_VALUE);
+ final Yaml yaml = new Yaml(new SafeConstructor(), yamlRepresenter, yamlOptions, loaderOptions);
+
+ yaml.load(data);
+ }
+
+ @Test
+ public void testCommentsInFlowMapping() throws IOException {
+ StringWriter output = new StringWriter();
+ Emitter emitter = producePrettyFlowEmitter(output);
+
+ emitter.emit(new StreamStartEvent(null, null));
+ emitter.emit(new DocumentStartEvent(null, null, false, null, null));
+ emitter
+ .emit(new MappingStartEvent(null, "yaml.org,2002:map", true, null, null, FlowStyle.FLOW));
+ emitter.emit(new CommentEvent(CommentType.BLOCK, " I'm first", null, null));
+ ImplicitTuple allImplicit = new ImplicitTuple(true, true);
+ emitter.emit(new ScalarEvent(null, "yaml.org,2002:str", allImplicit, "a", null, null,
+ ScalarStyle.PLAIN));
+ emitter.emit(new ScalarEvent(null, "yaml.org,2002:str", allImplicit, "Hello", null, null,
+ ScalarStyle.PLAIN));
+ emitter.emit(new ScalarEvent(null, "yaml.org,2002:str", allImplicit, "b", null, null,
+ ScalarStyle.PLAIN));
+ emitter
+ .emit(new MappingStartEvent(null, "yaml.org,2002:map", true, null, null, FlowStyle.FLOW));
+ emitter.emit(new ScalarEvent(null, "yaml.org,2002:str", allImplicit, "one", null, null,
+ ScalarStyle.PLAIN));
+ emitter.emit(new ScalarEvent(null, "yaml.org,2002:str", allImplicit, "World", null, null,
+ ScalarStyle.PLAIN));
+ emitter.emit(new CommentEvent(CommentType.BLOCK, " also me", null, null));
+ emitter.emit(new ScalarEvent(null, "yaml.org,2002:str", allImplicit, "two", null, null,
+ ScalarStyle.PLAIN));
+ emitter.emit(new ScalarEvent(null, "yaml.org,2002:str", allImplicit, "eee", null, null,
+ ScalarStyle.PLAIN));
+ emitter.emit(new MappingEndEvent(null, null));
+ emitter.emit(new MappingEndEvent(null, null));
+ emitter.emit(new DocumentEndEvent(null, null, false));
+ emitter.emit(new StreamEndEvent(null, null));
+
+ String result = output.toString();
+ final String data = "{\n" + " # I'm first\n" + " a: Hello,\n" + " b: {\n"
+ + " one: World,\n" + " # also me\n" + " two: eee\n" + " }\n" + "}\n";
+
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testCommentInEmptyFlowMapping() throws IOException {
+ StringWriter output = new StringWriter();
+ Emitter emitter = producePrettyFlowEmitter(output);
+
+ emitter.emit(new StreamStartEvent(null, null));
+ emitter.emit(new DocumentStartEvent(null, null, false, null, null));
+ emitter
+ .emit(new MappingStartEvent(null, "yaml.org,2002:map", true, null, null, FlowStyle.FLOW));
+ emitter.emit(new CommentEvent(CommentType.BLOCK, " nobody home", null, null));
+ emitter.emit(new MappingEndEvent(null, null));
+ emitter.emit(new DocumentEndEvent(null, null, false));
+ emitter.emit(new StreamEndEvent(null, null));
+
+ String result = output.toString();
+ final String data = "{\n" + " # nobody home\n" + "}\n";
+
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testCommentInFlowSequence() throws IOException {
+ StringWriter output = new StringWriter();
+ Emitter emitter = producePrettyFlowEmitter(output);
+ ImplicitTuple allImplicit = new ImplicitTuple(true, true);
+
+ emitter.emit(new StreamStartEvent(null, null));
+ emitter.emit(new DocumentStartEvent(null, null, false, null, null));
+ emitter
+ .emit(new SequenceStartEvent(null, "yaml.org,2002:seq", true, null, null, FlowStyle.FLOW));
+ emitter.emit(new CommentEvent(CommentType.BLOCK, " red", null, null));
+ emitter.emit(new ScalarEvent(null, "yaml.org,2002:str", allImplicit, "one", null, null,
+ ScalarStyle.PLAIN));
+ emitter.emit(new CommentEvent(CommentType.BLOCK, " blue", null, null));
+ emitter.emit(new ScalarEvent(null, "yaml.org,2002:str", allImplicit, "two", null, null,
+ ScalarStyle.PLAIN));
+ emitter.emit(new SequenceEndEvent(null, null));
+ emitter.emit(new DocumentEndEvent(null, null, false));
+ emitter.emit(new StreamEndEvent(null, null));
+
+ String result = output.toString();
+ final String data = "[\n" + " # red\n" + " one,\n" + " # blue\n" + " two\n" + "]\n";
+
+ assertEquals(data, result);
+ }
+
+ @Test
+ public void testCommentInEmptySequence() throws IOException {
+ StringWriter output = new StringWriter();
+ Emitter emitter = producePrettyFlowEmitter(output);
+
+ emitter.emit(new StreamStartEvent(null, null));
+ emitter.emit(new DocumentStartEvent(null, null, false, null, null));
+ emitter
+ .emit(new SequenceStartEvent(null, "yaml.org,2002:seq", true, null, null, FlowStyle.FLOW));
+ emitter.emit(new CommentEvent(CommentType.BLOCK, " nobody home", null, null));
+ emitter.emit(new SequenceEndEvent(null, null));
+ emitter.emit(new DocumentEndEvent(null, null, false));
+ emitter.emit(new StreamEndEvent(null, null));
+
+ String result = output.toString();
+ final String data = "[\n" + " # nobody home\n" + "]\n";
+
+ assertEquals(data, result);
+ }
+
+ private String getComplexConfig() {
+ return "# Core configurable options for LWC\n" + "core:\n" + "\n"
+ + " # The language LWC will use, specified by the shortname. For example, English = en, French = fr, German = de,\n"
+ + " # and so on\n" + " locale: en\n" + "\n"
+ + " # How often updates are batched to the database (in seconds). If set to a higher value than 10, you may have\n"
+ + " # some unexpected results, especially if your server is prone to crashing.\n"
+ + " flushInterval: 10\n" + "\n"
+ + " # LWC regularly caches protections locally to prevent the database from being queried as often. The default is 10000\n"
+ + " # and for most servers is OK. LWC will also fill up to <precache> when the server is started automatically.\n"
+ + " cacheSize: 10000\n" + "\n"
+ + " # How many protections are precached on startup. If set to -1, it will use the cacheSize value instead and precache\n"
+ + " # as much as possible\n" + " precache: -1\n" + "\n"
+ + " # If true, players will be sent a notice in their chat box when they open a protection they have access to, but\n"
+ + " # not their own unless <showMyNotices> is set to true\n" + " showNotices: true\n"
+ + "\n"
+ + " # If true, players will be sent a notice in their chat box when they open a protection they own.\n"
+ + " showMyNotices: false\n";
+ }
+
+ @Test
+ public void emitOnlyScalarWithComment() throws IOException {
+ StringWriter output = new StringWriter();
+ Emitter emitter = producePrettyFlowEmitter(output);
+ emitter.emit(new StreamStartEvent(null, null));
+ emitter.emit(new DocumentStartEvent(null, null, false, null, null));
+ emitter.emit(new CommentEvent(CommentType.BLOCK, "Hello world!", null, null));
+ emitter.emit(new ScalarEvent(null, null, new ImplicitTuple(true, true), "This is the scalar",
+ null, null, ScalarStyle.DOUBLE_QUOTED));
+ emitter.emit(new DocumentEndEvent(null, null, false));
+ emitter.emit(new StreamEndEvent(null, null));
+
+ final String data = "#Hello world!\n" + "\"This is the scalar\"\n";
+
+ assertEquals(data, output.toString());
+ }
+
+ @Test
+ public void emitOnlyComment() throws IOException {
+ StringWriter output = new StringWriter();
+ Emitter emitter = producePrettyFlowEmitter(output);
+ emitter.emit(new StreamStartEvent(null, null));
+ emitter.emit(new DocumentStartEvent(null, null, false, null, null));
+ emitter.emit(new CommentEvent(CommentType.BLOCK, "Hello world!", null, null));
+ emitter.emit(new DocumentEndEvent(null, null, false));
+ emitter.emit(new StreamEndEvent(null, null));
+
+ assertEquals("#Hello world!\n", output.toString());
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/comment/ParserWithCommentEnabledTest.java b/src/test/java/org/yaml/snakeyaml/comment/ParserWithCommentEnabledTest.java
new file mode 100644
index 00000000..4d5e696e
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/comment/ParserWithCommentEnabledTest.java
@@ -0,0 +1,404 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.comment;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import java.util.Arrays;
+import java.util.List;
+import org.junit.Test;
+import org.yaml.snakeyaml.events.Event;
+import org.yaml.snakeyaml.events.Event.ID;
+import org.yaml.snakeyaml.parser.Parser;
+import org.yaml.snakeyaml.parser.ParserImpl;
+import org.yaml.snakeyaml.reader.StreamReader;
+
+public class ParserWithCommentEnabledTest {
+
+ private final boolean DEBUG = false;
+
+ private void println(String s) {
+ if (DEBUG) {
+ System.out.println(s);
+ }
+ }
+
+ private void println() {
+ if (DEBUG) {
+ System.out.println();
+ }
+ }
+
+
+ private void assertEventListEquals(List<ID> expectedEventIdList, Parser parser) {
+ for (ID expectedEventId : expectedEventIdList) {
+ parser.checkEvent(expectedEventId);
+ Event event = parser.getEvent();
+ println("Expected: " + expectedEventId);
+ println("Got: " + event);
+ println();
+ if (event == null) {
+ fail("Missing event: " + expectedEventId);
+ }
+ assertEquals(expectedEventId, event.getEventId());
+ }
+ }
+
+ @SuppressWarnings("unused")
+ private void printEventList(Parser parser) {
+ for (Event event = parser.getEvent(); event != null; event = parser.getEvent()) {
+ println("Got: " + event);
+ println();
+ }
+ }
+
+ private Parser createParser(String data) {
+ return new ParserImpl(new StreamReader(data), true);
+ }
+
+ @Test
+ public void testEmpty() {
+ List<ID> expectedEventIdList = Arrays.asList(ID.StreamStart, ID.StreamEnd);
+ String data = "";
+ Parser sut = createParser(data);
+ assertEventListEquals(expectedEventIdList, sut);
+ }
+
+ @Test
+ public void testParseWithOnlyComment() {
+ String data = "# Comment";
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.Comment, //
+ ID.StreamEnd //
+ );
+ Parser sut = createParser(data);
+ assertEventListEquals(expectedEventIdList, sut);
+ }
+
+ @Test
+ public void testCommentEndingALine() {
+ String data = "" + //
+ "key: # Comment\n" + //
+ " value\n";
+
+ List<ID> expectedEventIdList = Arrays.asList(ID.StreamStart, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Scalar, ID.Comment, ID.Scalar, //
+ ID.MappingEnd, //
+ ID.DocumentEnd, //
+ ID.StreamEnd);
+ Parser sut = createParser(data);
+ assertEventListEquals(expectedEventIdList, sut);
+ }
+
+ @Test
+ public void testMultiLineComment() {
+ String data = "" + //
+ "key: # Comment\n" + //
+ " # lines\n" + //
+ " value\n" + //
+ "\n";
+ List<ID> expectedEventIdList = Arrays.asList(ID.StreamStart, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Scalar, ID.Comment, ID.Comment, ID.Scalar, //
+ ID.Comment, //
+ ID.MappingEnd, //
+ ID.DocumentEnd, //
+ ID.StreamEnd);
+ Parser sut = createParser(data);
+ assertEventListEquals(expectedEventIdList, sut);
+ }
+
+ @Test
+ public void testBlankLine() {
+ String data = "" + //
+ "\n";
+ List<ID> expectedEventIdList = Arrays.asList(ID.StreamStart, //
+ ID.Comment, //
+ ID.StreamEnd);
+ Parser sut = createParser(data);
+ assertEventListEquals(expectedEventIdList, sut);
+ }
+
+ @Test
+ public void testBlankLineComments() {
+ String data = "" + //
+ "\n" + //
+ "abc: def # commment\n" + //
+ "\n" + //
+ "\n";
+
+ List<ID> expectedEventIdList = Arrays.asList(ID.StreamStart, //
+ ID.Comment, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Scalar, ID.Scalar, ID.Comment, //
+ ID.Comment, //
+ ID.Comment, //
+ ID.MappingEnd, //
+ ID.DocumentEnd, //
+ ID.StreamEnd);
+ Parser sut = createParser(data);
+ assertEventListEquals(expectedEventIdList, sut);
+ }
+
+ @Test
+ public void test_blockScalar() {
+ String data = "" + //
+ "abc: > # Comment\n" + //
+ " def\n" + //
+ " hij\n" + //
+ "\n";
+
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Scalar, ID.Comment, //
+ ID.Scalar, //
+ ID.MappingEnd, //
+ ID.DocumentEnd, //
+ ID.StreamEnd //
+ );
+ Parser sut = createParser(data);
+ assertEventListEquals(expectedEventIdList, sut);
+ }
+
+ @Test
+ public void testDirectiveLineEndComment() {
+ String data = "%YAML 1.1 #Comment\n";
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.StreamEnd //
+ );
+ Parser sut = createParser(data);
+ assertEventListEquals(expectedEventIdList, sut);
+ }
+
+ @Test
+ public void testSequence() {
+ String data = "" + //
+ "# Comment\n" + //
+ "list: # InlineComment1\n" + //
+ "# Block Comment\n" + //
+ "- item # InlineComment2\n" + //
+ "# Comment\n";
+
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.Comment, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Scalar, ID.Comment, ID.Comment, //
+ ID.SequenceStart, //
+ ID.Scalar, ID.Comment, //
+ ID.Comment, //
+ ID.SequenceEnd, //
+ ID.MappingEnd, //
+ ID.DocumentEnd, //
+ ID.StreamEnd //
+ );
+ Parser sut = createParser(data);
+ assertEventListEquals(expectedEventIdList, sut);
+ }
+
+ @Test
+ public void testAllComments1() throws Exception {
+ String data = "" + //
+ "# Block Comment1\n" + //
+ "# Block Comment2\n" + //
+ "key: # Inline Comment1a\n" + //
+ " # Inline Comment1b\n" + //
+ " # Block Comment3a\n" + //
+ " # Block Comment3b\n" + //
+ " value # Inline Comment2\n" + //
+ "# Block Comment4\n" + //
+ "list: # InlineComment3a\n" + //
+ " # InlineComment3b\n" + //
+ "# Block Comment5\n" + //
+ "- item1 # InlineComment4\n" + //
+ "- item2: [ value2a, value2b ] # InlineComment5\n" + //
+ "- item3: { key3a: [ value3a1, value3a2 ], key3b: value3b } # InlineComment6\n" + //
+ "# Block Comment6\n" + //
+ "---\n" + //
+ "# Block Comment7\n" + //
+ "";
+
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.Comment, //
+ ID.Comment, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Scalar, ID.Comment, ID.Comment, //
+
+ ID.Comment, ID.Comment, //
+ ID.Scalar, ID.Comment, //
+
+ ID.Comment, //
+ ID.Scalar, ID.Comment, ID.Comment, //
+ ID.Comment, //
+
+ ID.SequenceStart, //
+ ID.Scalar, ID.Comment, //
+ ID.MappingStart, //
+ ID.Scalar, ID.SequenceStart, ID.Scalar, ID.Scalar, ID.SequenceEnd, ID.Comment, //
+ ID.MappingEnd,
+
+ ID.MappingStart, //
+ ID.Scalar, // value=item3
+ ID.MappingStart, //
+ ID.Scalar, // value=key3a
+ ID.SequenceStart, //
+ ID.Scalar, // value=value3a
+ ID.Scalar, // value=value3a2
+ ID.SequenceEnd, //
+ ID.Scalar, // value=key3b
+ ID.Scalar, // value=value3b
+ ID.MappingEnd, //
+ ID.Comment, // type=IN_LINE, value= InlineComment6
+ ID.Comment, //
+ ID.MappingEnd, //
+ ID.SequenceEnd, //
+ ID.MappingEnd, ID.DocumentEnd, //
+
+ ID.DocumentStart, //
+ ID.Comment, //
+ ID.Scalar, // Empty
+ ID.DocumentEnd, //
+ ID.StreamEnd //
+ );
+ Parser sut = createParser(data);
+ // printEventList(sut);
+ assertEventListEquals(expectedEventIdList, sut);
+ }
+
+ @Test
+ public void testAllComments2() throws Exception {
+ String data = "" + //
+ "# Block Comment1\n" + //
+ "# Block Comment2\n" + //
+ "- item1 # Inline Comment1a\n" + //
+ " # Inline Comment1b\n" + //
+ "# Block Comment3a\n" + //
+ "# Block Comment3b\n" + //
+ "- item2: value # Inline Comment2\n" + //
+ "# Block Comment4\n" + //
+ "";
+
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.Comment, //
+ ID.Comment, //
+ ID.DocumentStart, //
+ ID.SequenceStart, //
+ ID.Scalar, ID.Comment, ID.Comment, //
+ ID.Comment, //
+ ID.Comment, //
+ ID.MappingStart, //
+ ID.Scalar, ID.Scalar, ID.Comment, //
+ ID.Comment, //
+ ID.MappingEnd, //
+ ID.SequenceEnd, //
+ ID.DocumentEnd, //
+ ID.StreamEnd //
+ );
+ Parser sut = createParser(data);
+ assertEventListEquals(expectedEventIdList, sut);
+ }
+
+ @Test
+ public void testAllComments3() throws Exception {
+ String data = "" + //
+ "# Block Comment1\n" + //
+ "[ item1, item2: value2, {item3: value3} ] # Inline Comment1\n" + //
+ "# Block Comment2\n" + //
+ "";
+
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.Comment, //
+ ID.DocumentStart, //
+ ID.SequenceStart, //
+ ID.Scalar, ID.MappingStart, //
+ ID.Scalar, ID.Scalar, //
+ ID.MappingEnd, //
+ ID.MappingStart, //
+ ID.Scalar, ID.Scalar, //
+ ID.MappingEnd, //
+ ID.SequenceEnd, //
+ ID.Comment, //
+ ID.Comment, //
+ ID.DocumentEnd, //
+ ID.StreamEnd //
+ );
+ Parser sut = createParser(data);
+ // printEventList(sut);
+ assertEventListEquals(expectedEventIdList, sut);
+ }
+
+ @Test
+ public void testKeepingNewLineInsideSequence() throws Exception {
+ String data = "" + "\n" + "key:\n" + "\n" + "- item1\n" + "\n" + // Per Spec this is part of
+ // plain scalar above
+ "- item2\n" + "\n" + // Per Spec this is part of plain scalar above
+ "- item3\n" + "\n" + // FIXME: ?Should be comment?
+ "key2: value2\n" + "\n" + // FIXME: ?Should be comment?
+ "key3: value3\n" + "\n" + // FIXME: ?Should be comment?
+ "";
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.Comment, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Scalar, //
+ ID.Comment, //
+ ID.SequenceStart, //
+ ID.Scalar, //
+ ID.Scalar, //
+ ID.Scalar, //
+ ID.Comment, //
+ ID.SequenceEnd, //
+ ID.Scalar, //
+ ID.Scalar, //
+ ID.Comment, //
+ ID.Scalar, //
+ ID.Scalar, //
+ ID.Comment, //
+ ID.MappingEnd, //
+ ID.DocumentEnd, //
+ ID.StreamEnd //
+ );
+ Parser sut = new ParserImpl(new StreamReader(data), true);
+ // printEventList(sut);
+ assertEventListEquals(expectedEventIdList, sut);
+ }
+
+ @Test
+ public void testCommentsInFlowMapping() {
+ String data = "" + "# Beginning\n" + "{\n" + " # Hello\n" + " key1: meow,\n"
+ + " # World\n" + " key2: purr\n" + "}\n";
+
+ List<ID> expectedEventIdList = Arrays.asList(ID.StreamStart, ID.Comment, ID.DocumentStart,
+ ID.MappingStart, ID.Comment, ID.Scalar, ID.Scalar, ID.Comment, ID.Scalar, ID.Scalar,
+ ID.MappingEnd, ID.DocumentEnd, ID.StreamEnd);
+ Parser sut = new ParserImpl(new StreamReader(data), true);
+ // printEventList(sut);
+ assertEventListEquals(expectedEventIdList, sut);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/comment/ProblematicYamlTest.java b/src/test/java/org/yaml/snakeyaml/comment/ProblematicYamlTest.java
new file mode 100644
index 00000000..f387d0c7
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/comment/ProblematicYamlTest.java
@@ -0,0 +1,231 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.comment;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import org.junit.Test;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.comments.CommentType;
+import org.yaml.snakeyaml.events.CommentEvent;
+import org.yaml.snakeyaml.events.Event;
+import org.yaml.snakeyaml.events.Event.ID;
+import org.yaml.snakeyaml.parser.Parser;
+import org.yaml.snakeyaml.parser.ParserImpl;
+import org.yaml.snakeyaml.reader.StreamReader;
+
+public class ProblematicYamlTest {
+
+ private final boolean DEBUG = false;
+
+ private void println(String s) {
+ if (DEBUG) {
+ System.out.println(s);
+ }
+ }
+
+ private void println() {
+ if (DEBUG) {
+ System.out.println();
+ }
+ }
+
+ private static final LoaderOptions LOAD_OPTIONS = new LoaderOptions();
+
+ static {
+ LOAD_OPTIONS.setProcessComments(true);
+ }
+
+ private void assertEventListEquals(List<ID> expectedEventIdList,
+ List<CommentType> expectedCommentTypeList, Parser parser) {
+ Iterator<CommentType> commentTypeIterator = expectedCommentTypeList.iterator();
+ for (ID expectedEventId : expectedEventIdList) {
+ parser.checkEvent(expectedEventId);
+ Event event = parser.getEvent();
+ println("Expected: " + expectedEventId);
+ if (event == null) {
+ fail("Missing event: " + expectedEventId);
+ }
+ println("Got: " + event
+ + (event.getEventId() == ID.Comment ? " " + ((CommentEvent) event).getCommentType()
+ : ""));
+ println();
+ if (event.getEventId() == ID.Comment) {
+ assertEquals(commentTypeIterator.next(), ((CommentEvent) event).getCommentType());
+ }
+ assertEquals(expectedEventId, event.getEventId());
+ }
+ }
+
+ @SuppressWarnings("unused")
+ private void printEventList(Parser parser) {
+ for (Event event = parser.getEvent(); event != null; event = parser.getEvent()) {
+ println("Got: " + event
+ + (event.getEventId() == ID.Comment ? " " + ((CommentEvent) event).getCommentType()
+ : ""));
+ println();
+ }
+ }
+
+ @Test
+ public void testParseProblematicYaml1() {
+ final String yamlString1 = "" + //
+ "key: value\n" + //
+ " # Comment 1\n" + // s.b BLOCK, classified as INLINE
+ "\n" + //
+ " # Comment 2\n" + //
+ "";
+
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Scalar, //
+ ID.Scalar, //
+ ID.Comment, //
+ ID.Comment, //
+ ID.Comment, //
+ ID.MappingEnd, //
+ ID.DocumentEnd, //
+ ID.StreamEnd //
+ );
+ List<CommentType> expectedCommentTypeList = Arrays.asList(//
+ CommentType.BLOCK, CommentType.BLANK_LINE, CommentType.BLOCK);
+ ParserImpl parser = new ParserImpl(new StreamReader(new StringReader(yamlString1)),
+ LOAD_OPTIONS.isProcessComments());
+ assertEventListEquals(expectedEventIdList, expectedCommentTypeList, parser);
+ }
+
+ @Test
+ public void testParseProblematicYaml2() {
+ final String yamlString2 = "" + //
+ "key: value\n" + //
+ "\n" + //
+ " # Comment 1\n" + // s.b BLOCK, classified as INLINE
+ "\n" + //
+ " # Comment 2\n" + //
+ "";
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Scalar, //
+ ID.Scalar, //
+ ID.Comment, //
+ ID.Comment, //
+ ID.Comment, //
+ ID.Comment, //
+ ID.MappingEnd, //
+ ID.DocumentEnd, //
+ ID.StreamEnd //
+ );
+ List<CommentType> expectedCommentTypeList = Arrays.asList(//
+ CommentType.BLANK_LINE, CommentType.BLOCK, CommentType.BLANK_LINE, CommentType.BLOCK);
+ ParserImpl parser = new ParserImpl(new StreamReader(new StringReader(yamlString2)),
+ LOAD_OPTIONS.isProcessComments());
+ assertEventListEquals(expectedEventIdList, expectedCommentTypeList, parser);
+ }
+
+ @Test
+ public void testParseProblematicYaml3() {
+ final String yamlString3 = "" + //
+ "key: value\n" + //
+ "\n" + //
+ "key: value\n" + //
+ "";
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Scalar, //
+ ID.Scalar, //
+ ID.Comment, //
+ ID.Scalar, //
+ ID.Scalar, //
+ ID.MappingEnd, //
+ ID.DocumentEnd, //
+ ID.StreamEnd //
+ );
+ List<CommentType> expectedCommentTypeList = Collections.singletonList(CommentType.BLANK_LINE);
+ ParserImpl parser = new ParserImpl(new StreamReader(new StringReader(yamlString3)),
+ LOAD_OPTIONS.isProcessComments());
+ assertEventListEquals(expectedEventIdList, expectedCommentTypeList, parser);
+ }
+
+ @Test
+ public void testParseProblematicYaml4() {
+ String yamlString4 = "" + //
+ "---\n" + //
+ "in the block context:\n" + //
+ " indentation should be kept: { \n" + //
+ " but in the flow context: [\n" + //
+ "it may be violated]\n" + //
+ "}\n" + //
+ "---\n" + //
+ "the parser does not require scalars\n" + //
+ "to be indented with at least one space\n" + //
+ "...\n" + //
+ "---\n" + //
+ "\"the parser does not require scalars\n" + //
+ "to be indented with at least one space\"\n" + //
+ "---\n" + //
+ "foo:\n" + //
+ " bar: 'quoted scalars\n" + //
+ "may not adhere indentation'\n" + //
+ "";
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Scalar, //
+ ID.MappingStart, //
+ ID.Scalar, //
+ ID.MappingStart, //
+ ID.Scalar, //
+ ID.SequenceStart, //
+ ID.Scalar, //
+ ID.SequenceEnd, //
+ ID.MappingEnd, //
+ ID.MappingEnd, //
+ ID.MappingEnd, //
+ ID.DocumentEnd, //
+ ID.DocumentStart, //
+ ID.Scalar, //
+ ID.DocumentEnd, //
+ ID.DocumentStart, //
+ ID.Scalar, //
+ ID.DocumentEnd, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Scalar, //
+ ID.MappingStart, //
+ ID.Scalar, //
+ ID.Scalar, //
+ ID.MappingEnd, //
+ ID.MappingEnd, //
+ ID.DocumentEnd, //
+ ID.StreamEnd//
+ );
+ ParserImpl parser = new ParserImpl(new StreamReader(new StringReader(yamlString4)),
+ LOAD_OPTIONS.isProcessComments());
+ assertEventListEquals(expectedEventIdList, new ArrayList<CommentType>(), parser);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/comment/ScannerWithCommentEnabledTest.java b/src/test/java/org/yaml/snakeyaml/comment/ScannerWithCommentEnabledTest.java
new file mode 100644
index 00000000..def86e38
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/comment/ScannerWithCommentEnabledTest.java
@@ -0,0 +1,301 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.comment;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+
+import java.io.StringReader;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import org.junit.Test;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.reader.StreamReader;
+import org.yaml.snakeyaml.scanner.Scanner;
+import org.yaml.snakeyaml.scanner.ScannerImpl;
+import org.yaml.snakeyaml.tokens.CommentToken;
+import org.yaml.snakeyaml.tokens.ScalarToken;
+import org.yaml.snakeyaml.tokens.Token;
+import org.yaml.snakeyaml.tokens.Token.ID;
+
+public class ScannerWithCommentEnabledTest {
+
+ private void assertTokensEqual(List<ID> expected, Scanner sut) {
+ assertTokensEqual(expected, null, sut);
+ }
+
+ private void printToken(Token token) {
+ String value;
+ switch (token.getTokenId()) {
+ case Scalar:
+ value = "(value='" + ((ScalarToken) token).getValue() + "')";
+ break;
+ case Comment:
+ CommentToken commentToken = (CommentToken) token;
+ value = "(type='" + commentToken.getCommentType() + ", value='" + commentToken.getValue()
+ + "')";
+ break;
+ default:
+ value = "";
+ break;
+ }
+ // System.out.println(token.getTokenId().name() + value);
+ }
+
+ private void assertTokenEquals(Iterator<ID> expectedIdIterator,
+ Iterator<String> expectedScalarValueIterator, Token token) {
+ printToken(token);
+ assertTrue(expectedIdIterator.hasNext());
+ ID expectedValue = expectedIdIterator.next();
+ assertSame(expectedValue, token.getTokenId());
+ if (expectedScalarValueIterator != null && token.getTokenId() == ID.Scalar) {
+ assertEquals(expectedScalarValueIterator.next(), ((ScalarToken) token).getValue());
+ }
+ }
+
+ private void assertTokensEqual(List<ID> expectedList, List<String> expectedScalarValueList,
+ Scanner sut) {
+ Iterator<ID> expectedIterator = expectedList.iterator();
+ Iterator<String> expectedScalarValueIterator =
+ expectedScalarValueList == null ? null : expectedScalarValueList.iterator();
+ while (!sut.checkToken(Token.ID.StreamEnd)) {
+ Token token = sut.getToken();
+ assertTokenEquals(expectedIterator, expectedScalarValueIterator, token);
+ }
+ Token token = sut.peekToken();
+ assertTokenEquals(expectedIterator, expectedScalarValueIterator, token);
+ assertFalse(expectedIterator.hasNext());
+ }
+
+ private Scanner constructScanner(String input) {
+ LoaderOptions options = new LoaderOptions();
+ options.setProcessComments(true);
+ return new ScannerImpl(new StreamReader(new StringReader(input)), options);
+ }
+
+ @Test
+ public void testEmpty() {
+ List<ID> expected = Arrays.asList(ID.StreamStart, ID.StreamEnd);
+
+ Scanner sut = constructScanner("");
+
+ assertTokensEqual(expected, sut);
+ }
+
+ @Test
+ public void testOnlyCommentLines() {
+ List<ID> expected = Arrays.asList(ID.StreamStart, //
+ ID.Comment, //
+ ID.Comment, //
+ ID.StreamEnd);
+
+ Scanner sut = constructScanner("" + //
+ "# This stream contains no\n" + //
+ "# documents, only comments.");
+
+ assertTokensEqual(expected, sut);
+ }
+
+ @Test
+ public void testCommentEndingALine() {
+ List<ID> expected = Arrays.asList(ID.StreamStart, //
+ ID.BlockMappingStart, //
+ ID.Key, ID.Scalar, ID.Value, ID.Comment, //
+ ID.Scalar, //
+ ID.BlockEnd, //
+ ID.StreamEnd);
+ List<String> expectedScalarValue = Arrays.asList(//
+ "key", "value");
+
+ Scanner sut = constructScanner("" + //
+ "key: # Comment\n" + //
+ " value\n");
+
+ assertTokensEqual(expected, expectedScalarValue, sut);
+ }
+
+ @Test
+ public void testMultiLineComment() {
+ List<ID> expected = Arrays.asList(ID.StreamStart, //
+ ID.BlockMappingStart, //
+ ID.Key, ID.Scalar, ID.Value, ID.Comment, ID.Comment, //
+ ID.Scalar, //
+ ID.Comment, //
+ ID.BlockEnd, //
+ ID.StreamEnd);
+ List<String> expectedScalarValue = Arrays.asList(//
+ "key", "value");
+
+ Scanner sut = constructScanner("" + //
+ "key: # Comment\n" + //
+ " # lines\n" + //
+ " value\n" + //
+ "\n");
+
+ assertTokensEqual(expected, expectedScalarValue, sut);
+ }
+
+ @Test
+ public void testBlankLine() {
+ List<ID> expected = Arrays.asList(ID.StreamStart, //
+ ID.Comment, //
+ ID.StreamEnd);
+
+ Scanner sut = constructScanner("" + //
+ "\n");
+
+ assertTokensEqual(expected, sut);
+ }
+
+ @Test
+ public void testBlankLineComments() {
+ List<ID> expected = Arrays.asList(ID.StreamStart, //
+ ID.Comment, //
+ ID.BlockMappingStart, //
+ ID.Key, ID.Scalar, ID.Value, ID.Scalar, ID.Comment, //
+ ID.Comment, //
+ ID.Comment, //
+ ID.BlockEnd, //
+ ID.StreamEnd);
+
+ Scanner sut = constructScanner("" + //
+ "\n" + //
+ "abc: def # commment\n" + //
+ "\n" + //
+ "\n");
+
+ assertTokensEqual(expected, sut);
+ }
+
+ @Test
+ public void test_blockScalar_replaceNLwithSpaces_singleNLatEnd() {
+ List<ID> expected = Arrays.asList(//
+ ID.StreamStart, //
+ ID.BlockMappingStart, //
+ ID.Key, ID.Scalar, ID.Value, ID.Comment, //
+ ID.Scalar, //
+ ID.BlockEnd, //
+ ID.StreamEnd //
+ );
+ List<String> expectedScalarValue = Arrays.asList(//
+ "abc", "def hij\n");
+
+ Scanner sut = constructScanner("abc: > # Comment\n def\n hij\n\n");
+
+ // printTokens(sut);
+ assertTokensEqual(expected, expectedScalarValue, sut);
+ }
+
+ @Test
+ public void test_blockScalar_replaceNLwithSpaces_noNLatEnd() {
+ List<ID> expected = Arrays.asList(//
+ ID.StreamStart, //
+ ID.BlockMappingStart, //
+ ID.Key, ID.Scalar, ID.Value, ID.Comment, ID.Scalar, //
+ ID.BlockEnd, //
+ ID.StreamEnd //
+ );
+ List<String> expectedScalarValue = Arrays.asList(//
+ "abc", "def hij");
+
+ Scanner sut = constructScanner("abc: >- # Comment\n def\n hij\n\n");
+
+ assertTokensEqual(expected, expectedScalarValue, sut);
+ }
+
+ @Test
+ public void test_blockScalar_replaceNLwithSpaces_allNLatEnd() {
+ List<ID> expected = Arrays.asList(//
+ ID.StreamStart, //
+ ID.BlockMappingStart, //
+ ID.Key, ID.Scalar, ID.Value, ID.Comment, ID.Scalar, //
+ ID.BlockEnd, //
+ ID.StreamEnd //
+ );
+ List<String> expectedScalarValue = Arrays.asList(//
+ "abc", "def hij\n\n");
+
+ Scanner sut = constructScanner("abc: >+ # Comment\n def\n hij\n\n");
+
+ assertTokensEqual(expected, expectedScalarValue, sut);
+ }
+
+ @Test
+ public void test_blockScalar_keepNL_singleNLatEnd() {
+ List<ID> expected = Arrays.asList(//
+ ID.StreamStart, //
+ ID.BlockMappingStart, //
+ ID.Key, ID.Scalar, ID.Value, ID.Comment, ID.Scalar, //
+ ID.BlockEnd, //
+ ID.StreamEnd //
+ );
+ List<String> expectedScalarValue = Arrays.asList(//
+ "abc", "def\nhij\n");
+
+ Scanner sut = constructScanner("abc: | # Comment\n def\n hij\n\n");
+
+ assertTokensEqual(expected, expectedScalarValue, sut);
+ }
+
+ @Test
+ public void test_blockScalar_keepNL_noNLatEnd() {
+ List<ID> expected = Arrays.asList(//
+ ID.StreamStart, //
+ ID.BlockMappingStart, //
+ ID.Key, ID.Scalar, ID.Value, ID.Comment, ID.Scalar, //
+ ID.BlockEnd, //
+ ID.StreamEnd //
+ );
+ List<String> expectedScalarValue = Arrays.asList(//
+ "abc", "def\nhij");
+
+ Scanner sut = constructScanner("abc: |- # Comment\n def\n hij\n\n");
+
+ assertTokensEqual(expected, expectedScalarValue, sut);
+ }
+
+ @Test
+ public void test_blockScalar_keepNL_allNLatEnd() {
+ List<ID> expected = Arrays.asList(//
+ ID.StreamStart, //
+ ID.BlockMappingStart, //
+ ID.Key, ID.Scalar, ID.Value, ID.Comment, ID.Scalar, //
+ ID.BlockEnd, //
+ ID.StreamEnd //
+ );
+ List<String> expectedScalarValue = Arrays.asList(//
+ "abc", "def\nhij\n\n");
+
+ Scanner sut = constructScanner("abc: |+ # Comment\n def\n hij\n\n");
+
+ assertTokensEqual(expected, expectedScalarValue, sut);
+ }
+
+ @Test
+ public void testDirectiveLineEndComment() {
+ List<ID> expected = Arrays.asList(//
+ ID.StreamStart, //
+ ID.Directive, //
+ ID.Comment, //
+ ID.StreamEnd //
+ );
+
+ Scanner sut = constructScanner("%YAML 1.1 #Comment\n");
+
+ assertTokensEqual(expected, sut);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/comment/SerializerWithCommentEnabledTest.java b/src/test/java/org/yaml/snakeyaml/comment/SerializerWithCommentEnabledTest.java
new file mode 100644
index 00000000..1cc9af58
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/comment/SerializerWithCommentEnabledTest.java
@@ -0,0 +1,419 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.comment;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import org.junit.Test;
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.composer.Composer;
+import org.yaml.snakeyaml.emitter.Emitable;
+import org.yaml.snakeyaml.events.Event;
+import org.yaml.snakeyaml.events.Event.ID;
+import org.yaml.snakeyaml.nodes.Tag;
+import org.yaml.snakeyaml.parser.ParserImpl;
+import org.yaml.snakeyaml.reader.StreamReader;
+import org.yaml.snakeyaml.resolver.Resolver;
+import org.yaml.snakeyaml.serializer.Serializer;
+
+public class SerializerWithCommentEnabledTest {
+
+ private final boolean DEBUG = false;
+
+ private void println(String s) {
+ if (DEBUG) {
+ System.out.println(s);
+ }
+ }
+
+ private void println() {
+ if (DEBUG) {
+ System.out.println();
+ }
+ }
+
+ private void assertEventListEquals(List<ID> expectedEventIdList, List<Event> actualEvents) {
+ Iterator<Event> iterator = actualEvents.iterator();
+ for (ID expectedEventId : expectedEventIdList) {
+ println("Expected: " + expectedEventId);
+ assertTrue(iterator.hasNext());
+ Event event = iterator.next();
+ println("Got: " + event);
+ println();
+ assertEquals(expectedEventId, event.getEventId());
+ }
+ }
+
+ private static class TestEmitter implements Emitable {
+
+ private final List<Event> eventList = new ArrayList<>();
+
+ @Override
+ public void emit(Event event) throws IOException {
+ eventList.add(event);
+ }
+
+ public List<Event> getEventList() {
+ return eventList;
+ }
+ }
+
+ public List<Event> serializeWithCommentsEnabled(String data) throws IOException {
+ TestEmitter emitter = new TestEmitter();
+ Tag rootTag = null;
+ Serializer serializer = new Serializer(emitter, new Resolver(), new DumperOptions(), rootTag);
+ serializer.open();
+ Composer composer = new Composer(new ParserImpl(new StreamReader(data), true), new Resolver());
+ while (composer.checkNode()) {
+ serializer.serialize(composer.getNode());
+ }
+ serializer.close();
+ List<Event> events = emitter.getEventList();
+ println("RESULT: ");
+ for (Event event : events) {
+ println(event.toString());
+ }
+ println();
+ return events;
+ }
+
+
+ @Test
+ public void testEmpty() throws Exception {
+ List<ID> expectedEventIdList = Arrays.asList(ID.StreamStart, ID.StreamEnd);
+
+ String data = "";
+
+ List<Event> result = serializeWithCommentsEnabled(data);
+
+ assertEventListEquals(expectedEventIdList, result);
+ }
+
+ @Test
+ public void testParseWithOnlyComment() throws Exception {
+ String data = "# Comment";
+
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.DocumentStart, //
+ ID.Comment, //
+ ID.DocumentEnd, //
+ ID.StreamEnd //
+ );
+
+ List<Event> result = serializeWithCommentsEnabled(data);
+
+ assertEventListEquals(expectedEventIdList, result);
+ }
+
+ @Test
+ public void testCommentEndingALine() throws Exception {
+ String data = "" + //
+ "key: # Comment\n" + //
+ " value\n";
+
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Scalar, ID.Comment, ID.Scalar, //
+ ID.MappingEnd, //
+ ID.DocumentEnd, //
+ ID.StreamEnd);
+
+ List<Event> result = serializeWithCommentsEnabled(data);
+
+ assertEventListEquals(expectedEventIdList, result);
+ }
+
+ @Test
+ public void testMultiLineComment() throws Exception {
+ String data = "" + //
+ "key: # Comment\n" + //
+ " # lines\n" + //
+ " value\n" + //
+ "\n";
+
+ List<ID> expectedEventIdList = Arrays.asList(ID.StreamStart, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Scalar, ID.Comment, ID.Comment, ID.Scalar, //
+ ID.MappingEnd, //
+ ID.Comment, //
+ ID.DocumentEnd, //
+ ID.StreamEnd);
+
+ List<Event> result = serializeWithCommentsEnabled(data);
+
+ assertEventListEquals(expectedEventIdList, result);
+ }
+
+ @Test
+ public void testBlankLine() throws Exception {
+ String data = "" + //
+ "\n";
+
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.DocumentStart, //
+ ID.Comment, //
+ ID.DocumentEnd, //
+ ID.StreamEnd);
+
+ List<Event> result = serializeWithCommentsEnabled(data);
+
+ assertEventListEquals(expectedEventIdList, result);
+ }
+
+ @Test
+ public void testBlankLineComments() throws Exception {
+ String data = "" + //
+ "\n" + //
+ "abc: def # comment\n" + //
+ "\n" + //
+ "\n";
+
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Comment, //
+ ID.Scalar, ID.Scalar, ID.Comment, //
+ ID.MappingEnd, //
+ ID.Comment, //
+ ID.Comment, //
+ ID.DocumentEnd, //
+ ID.StreamEnd);
+
+ List<Event> result = serializeWithCommentsEnabled(data);
+
+ assertEventListEquals(expectedEventIdList, result);
+ }
+
+ @Test
+ public void test_blockScalar() throws Exception {
+ String data = "" + //
+ "abc: > # Comment\n" + //
+ " def\n" + //
+ " hij\n" + //
+ "\n";
+
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Scalar, ID.Comment, //
+ ID.Scalar, //
+ ID.MappingEnd, //
+ ID.DocumentEnd, //
+ ID.StreamEnd //
+ );
+
+ List<Event> result = serializeWithCommentsEnabled(data);
+
+ assertEventListEquals(expectedEventIdList, result);
+ }
+
+ @Test
+ public void testDirectiveLineEndComment() throws Exception {
+ String data = "%YAML 1.1 #Comment\n";
+
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.StreamEnd //
+ );
+
+ List<Event> result = serializeWithCommentsEnabled(data);
+
+ assertEventListEquals(expectedEventIdList, result);
+ }
+
+ @Test
+ public void testSequence() throws Exception {
+ String data = "" + //
+ "# Comment\n" + //
+ "list: # InlineComment1\n" + //
+ "# Block Comment\n" + //
+ "- item # InlineComment2\n" + //
+ "# Comment\n";
+
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Comment, //
+ ID.Scalar, ID.Comment, //
+ ID.SequenceStart, //
+ ID.Comment, //
+ ID.Scalar, ID.Comment, //
+ ID.SequenceEnd, //
+ ID.MappingEnd, //
+ ID.Comment, //
+ ID.DocumentEnd, //
+ ID.StreamEnd //
+ );
+
+ List<Event> result = serializeWithCommentsEnabled(data);
+
+ assertEventListEquals(expectedEventIdList, result);
+ }
+
+ @Test
+ public void testAllComments1() throws Exception {
+ String data = "" + //
+ "# Block Comment1\n" + //
+ "# Block Comment2\n" + //
+ "key: # Inline Comment1a\n" + //
+ " # Inline Comment1b\n" + //
+ " # Block Comment3a\n" + //
+ " # Block Comment3b\n" + //
+ " value # Inline Comment2\n" + //
+ "# Block Comment4\n" + //
+ "list: # InlineComment3a\n" + //
+ " # InlineComment3b\n" + //
+ "# Block Comment5\n" + //
+ "- item1 # InlineComment4\n" + //
+ "- item2: [ value2a, value2b ] # InlineComment5\n" + //
+ "- item3: { key3a: [ value3a1, value3a2 ], key3b: value3b } # InlineComment6\n" + //
+ "# Block Comment6\n" + //
+ "---\n" + //
+ "# Block Comment7\n" + //
+ "";
+
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.DocumentStart, //
+ ID.MappingStart, //
+ ID.Comment, //
+ ID.Comment, //
+ ID.Scalar, ID.Comment, ID.Comment, //
+
+ ID.Comment, ID.Comment, //
+ ID.Scalar, ID.Comment, //
+
+ ID.Comment, //
+ ID.Scalar, ID.Comment, ID.Comment, //
+
+ ID.SequenceStart, //
+ ID.Comment, //
+ ID.Scalar, //
+ ID.Comment, //
+
+ ID.MappingStart, //
+ ID.Scalar, ID.SequenceStart, ID.Scalar, ID.Scalar, ID.SequenceEnd, ID.Comment, //
+ ID.MappingEnd,
+
+ ID.MappingStart, //
+ ID.Scalar, // value=item3
+ ID.MappingStart, //
+ ID.Scalar, // value=key3a
+ ID.SequenceStart, //
+ ID.Scalar, // value=value3a
+ ID.Scalar, // value=value3a2
+ ID.SequenceEnd, //
+ ID.Scalar, // value=key3b
+ ID.Scalar, // value=value3b
+ ID.MappingEnd, //
+ ID.Comment, // type=IN_LINE, value= InlineComment6
+ ID.MappingEnd, //
+ ID.SequenceEnd, //
+ ID.MappingEnd, //
+ ID.Comment, //
+ ID.DocumentEnd, //
+
+ ID.DocumentStart, //
+ ID.Comment, //
+ ID.Scalar, // Empty
+ ID.DocumentEnd, //
+ ID.StreamEnd //
+ );
+
+ List<Event> result = serializeWithCommentsEnabled(data);
+
+ assertEventListEquals(expectedEventIdList, result);
+ }
+
+ @Test
+ public void testAllComments2() throws Exception {
+ String data = "" + //
+ "# Block Comment1\n" + //
+ "# Block Comment2\n" + //
+ "- item1 # Inline Comment1a\n" + //
+ " # Inline Comment1b\n" + //
+ "# Block Comment3a\n" + //
+ "# Block Comment3b\n" + //
+ "- item2: value # Inline Comment2\n" + //
+ "# Block Comment4\n" + //
+ "";
+
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.DocumentStart, //
+ ID.SequenceStart, //
+ ID.Comment, //
+ ID.Comment, //
+ ID.Scalar, ID.Comment, ID.Comment, //
+ ID.MappingStart, //
+ ID.Comment, //
+ ID.Comment, //
+ ID.Scalar, ID.Scalar, ID.Comment, //
+ ID.MappingEnd, //
+ ID.SequenceEnd, //
+ ID.Comment, //
+ ID.DocumentEnd, //
+ ID.StreamEnd //
+ );
+
+ List<Event> result = serializeWithCommentsEnabled(data);
+
+ assertEventListEquals(expectedEventIdList, result);
+ }
+
+ @Test
+ public void testAllComments3() throws Exception {
+ String data = "" + //
+ "# Block Comment1\n" + //
+ "[ item1, item2: value2, {item3: value3} ] # Inline Comment1\n" + //
+ "# Block Comment2\n" + //
+ "";
+
+ List<ID> expectedEventIdList = Arrays.asList(//
+ ID.StreamStart, //
+ ID.DocumentStart, //
+ ID.Comment, //
+ ID.SequenceStart, //
+ ID.Scalar, ID.MappingStart, //
+ ID.Scalar, ID.Scalar, //
+ ID.MappingEnd, //
+ ID.MappingStart, //
+ ID.Scalar, ID.Scalar, //
+ ID.MappingEnd, //
+ ID.SequenceEnd, //
+ ID.Comment, //
+ ID.Comment, //
+ ID.DocumentEnd, //
+ ID.StreamEnd //
+ );
+
+ List<Event> result = serializeWithCommentsEnabled(data);
+
+ assertEventListEquals(expectedEventIdList, result);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/composer/ComposerImplTest.java b/src/test/java/org/yaml/snakeyaml/composer/ComposerImplTest.java
index 038da907..5dabe82e 100644
--- a/src/test/java/org/yaml/snakeyaml/composer/ComposerImplTest.java
+++ b/src/test/java/org/yaml/snakeyaml/composer/ComposerImplTest.java
@@ -1,24 +1,22 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.composer;
-import java.io.StringReader;
+import static org.junit.Assert.assertNotEquals;
+import java.io.StringReader;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.nodes.MappingNode;
import org.yaml.snakeyaml.nodes.Node;
@@ -26,49 +24,59 @@ import org.yaml.snakeyaml.nodes.NodeId;
public class ComposerImplTest extends TestCase {
- public void testGetNode() {
- String data = "american:\n - Boston Red Sox";
- Yaml yaml = new Yaml();
- Node node = yaml.compose(new StringReader(data));
- assertNotNull(node);
- assertTrue(node instanceof MappingNode);
- String data2 = "---\namerican:\n- Boston Red Sox";
- Node node2 = yaml.compose(new StringReader(data2));
- assertNotNull(node2);
- assertFalse(node.equals(node2));
- }
+ public void testGetNode() {
+ String data = "american:\n - Boston Red Sox";
+ Yaml yaml = new Yaml();
+ Node node = yaml.compose(new StringReader(data));
+ assertNotNull(node);
+ assertTrue(node instanceof MappingNode);
+ String data2 = "---\namerican:\n- Boston Red Sox";
+ Node node2 = yaml.compose(new StringReader(data2));
+ assertNotNull(node2);
+ assertNotEquals(node, node2);
+ }
- public void testComposeBean() {
- String data = "!!org.yaml.snakeyaml.composer.ComposerImplTest$BeanToCompose {name: Bill, age: 18}";
- Yaml yaml = new Yaml();
- Node node = yaml.compose(new StringReader(data));
- assertNotNull(node);
- assertTrue(node instanceof MappingNode);
- assertEquals(
- "tag:yaml.org,2002:org.yaml.snakeyaml.composer.ComposerImplTest$BeanToCompose",
- node.getTag().getValue());
- assertEquals(NodeId.mapping, node.getNodeId());
- assertEquals(Object.class, node.getType());
- }
+ public void testComposeBean() {
+ String data =
+ "!!org.yaml.snakeyaml.composer.ComposerImplTest$BeanToCompose {name: Bill, age: 18}";
+ Yaml yaml = new Yaml();
+ Node node = yaml.compose(new StringReader(data));
+ assertNotNull(node);
+ assertTrue(node instanceof MappingNode);
+ assertEquals("tag:yaml.org,2002:org.yaml.snakeyaml.composer.ComposerImplTest$BeanToCompose",
+ node.getTag().getValue());
+ assertEquals(NodeId.mapping, node.getNodeId());
+ assertEquals(Object.class, node.getType());
+ }
- public static class BeanToCompose {
- private String name;
- private int age;
+ public void testNodeAnchor() {
+ String data = "--- &113\n{name: Bill, age: 18}";
+ Yaml yaml = new Yaml();
+ Node node = yaml.compose(new StringReader(data));
+ assertNotNull(node);
+ assertTrue(node instanceof MappingNode);
+ assertEquals("113", node.getAnchor());
+ }
- public String getName() {
- return name;
- }
+ public static class BeanToCompose {
- public void setName(String name) {
- this.name = name;
- }
+ private String name;
+ private int age;
- public int getAge() {
- return age;
- }
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
- public void setAge(int age) {
- this.age = age;
- }
+ public void setAge(int age) {
+ this.age = age;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/AbstractConstructTest.java b/src/test/java/org/yaml/snakeyaml/constructor/AbstractConstructTest.java
index d0c58937..4d7e5f54 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/AbstractConstructTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/AbstractConstructTest.java
@@ -1,59 +1,62 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
+import java.util.ArrayList;
import junit.framework.TestCase;
+import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.error.YAMLException;
import org.yaml.snakeyaml.nodes.Node;
import org.yaml.snakeyaml.nodes.SequenceNode;
import org.yaml.snakeyaml.nodes.Tag;
-import java.util.ArrayList;
-
public class AbstractConstructTest extends TestCase {
- public void testNotRecursive() {
- AbstractConstruct abstractConstruct = new AbstractConstruct() {
- public Object construct(Node node) {
- return null;
- }
- };
- Node node = new SequenceNode(Tag.SEQ, true, new ArrayList<Node>(), null, null, false);
- try {
- abstractConstruct.construct2ndStep(node, "");
- fail();
- } catch (YAMLException e) {
- assertEquals("Unexpected recursive structure for Node: <org.yaml.snakeyaml.nodes.SequenceNode (tag=tag:yaml.org,2002:seq, value=[])>", e.getMessage());
- }
+ public void testNotRecursive() {
+ AbstractConstruct abstractConstruct = new AbstractConstruct() {
+ public Object construct(Node node) {
+ return null;
+ }
+ };
+ Node node = new SequenceNode(Tag.SEQ, true, new ArrayList<Node>(), null, null,
+ DumperOptions.FlowStyle.BLOCK);
+ try {
+ abstractConstruct.construct2ndStep(node, "");
+ fail();
+ } catch (YAMLException e) {
+ assertEquals(
+ "Unexpected recursive structure for Node: <org.yaml.snakeyaml.nodes.SequenceNode (tag=tag:yaml.org,2002:seq, value=[])>",
+ e.getMessage());
}
+ }
- public void testRecursive() {
- AbstractConstruct abstractConstruct = new AbstractConstruct() {
+ public void testRecursive() {
+ AbstractConstruct abstractConstruct = new AbstractConstruct() {
- public Object construct(Node node) {
- return null;
- }
- };
- Node node = new SequenceNode(Tag.SEQ, true, new ArrayList<Node>(), null, null, false);
- node.setTwoStepsConstruction(true);
- try {
- abstractConstruct.construct2ndStep(node, "");
- fail();
- } catch (IllegalStateException e) {
- assertEquals("Not Implemented in org.yaml.snakeyaml.constructor.AbstractConstructTest$2", e.getMessage());
- }
+ public Object construct(Node node) {
+ return null;
+ }
+ };
+ Node node = new SequenceNode(Tag.SEQ, true, new ArrayList<Node>(), null, null,
+ DumperOptions.FlowStyle.BLOCK);
+ node.setTwoStepsConstruction(true);
+ try {
+ abstractConstruct.construct2ndStep(node, "");
+ fail();
+ } catch (IllegalStateException e) {
+ assertEquals("Not Implemented in org.yaml.snakeyaml.constructor.AbstractConstructTest$2",
+ e.getMessage());
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/ArrayTagsTest.java b/src/test/java/org/yaml/snakeyaml/constructor/ArrayTagsTest.java
index ce4e2503..7d73ab02 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/ArrayTagsTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/ArrayTagsTest.java
@@ -1,24 +1,20 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
import java.util.List;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.FlowStyle;
import org.yaml.snakeyaml.TypeDescription;
@@ -27,86 +23,86 @@ import org.yaml.snakeyaml.Yaml;
public class ArrayTagsTest extends TestCase {
- public void testDefaultRepresenter() {
- CarWithArray car = new CarWithArray();
- car.setPlate("12-XP-F4");
- Wheel[] wheels = new Wheel[5];
- for (int i = 1; i < 6; i++) {
- Wheel wheel = new Wheel();
- wheel.setId(i);
- wheels[i - 1] = wheel;
- }
- car.setWheels(wheels);
- assertEquals(Util.getLocalResource("constructor/cararray-with-tags-flow-auto.yaml"),
- new Yaml().dump(car));
+ public void testDefaultRepresenter() {
+ CarWithArray car = new CarWithArray();
+ car.setPlate("12-XP-F4");
+ Wheel[] wheels = new Wheel[5];
+ for (int i = 1; i < 6; i++) {
+ Wheel wheel = new Wheel();
+ wheel.setId(i);
+ wheels[i - 1] = wheel;
}
+ car.setWheels(wheels);
+ assertEquals(Util.getLocalResource("constructor/cararray-with-tags-flow-auto.yaml"),
+ new Yaml().dump(car));
+ }
- public void testFlowBlock() {
- CarWithArray car = new CarWithArray();
- car.setPlate("12-XP-F4");
- Wheel[] wheels = new Wheel[5];
- for (int i = 1; i < 6; i++) {
- Wheel wheel = new Wheel();
- wheel.setId(i);
- wheels[i - 1] = wheel;
- }
- car.setWheels(wheels);
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(FlowStyle.BLOCK);
- Yaml yaml = new Yaml(options);
- assertEquals(Util.getLocalResource("constructor/cararray-with-tags.yaml"), yaml.dump(car));
+ public void testFlowBlock() {
+ CarWithArray car = new CarWithArray();
+ car.setPlate("12-XP-F4");
+ Wheel[] wheels = new Wheel[5];
+ for (int i = 1; i < 6; i++) {
+ Wheel wheel = new Wheel();
+ wheel.setId(i);
+ wheels[i - 1] = wheel;
}
+ car.setWheels(wheels);
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(options);
+ assertEquals(Util.getLocalResource("constructor/cararray-with-tags.yaml"), yaml.dump(car));
+ }
- public void testLoadClassTag() {
- Constructor constructor = new Constructor();
- constructor.addTypeDescription(new TypeDescription(Car.class, "!car"));
- Yaml yaml = new Yaml(constructor);
- Car car = (Car) yaml.load(Util.getLocalResource("constructor/car-without-tags.yaml"));
- assertEquals("12-XP-F4", car.getPlate());
- List<Wheel> wheels = car.getWheels();
- assertNotNull(wheels);
- assertEquals(5, wheels.size());
- }
+ public void testLoadClassTag() {
+ Constructor constructor = new Constructor();
+ constructor.addTypeDescription(new TypeDescription(Car.class, "!car"));
+ Yaml yaml = new Yaml(constructor);
+ Car car = yaml.load(Util.getLocalResource("constructor/car-without-tags.yaml"));
+ assertEquals("12-XP-F4", car.getPlate());
+ List<Wheel> wheels = car.getWheels();
+ assertNotNull(wheels);
+ assertEquals(5, wheels.size());
+ }
- public void testNullDescription() {
- Constructor constructor = new Constructor();
- try {
- constructor.addTypeDescription(null);
- fail("Description is required.");
- } catch (Exception e) {
- assertEquals("TypeDescription is required.", e.getMessage());
- }
+ public void testNullDescription() {
+ Constructor constructor = new Constructor();
+ try {
+ constructor.addTypeDescription(null);
+ fail("Description is required.");
+ } catch (Exception e) {
+ assertEquals("TypeDescription is required.", e.getMessage());
}
+ }
- public void testLoadClassNoRoot() {
- Constructor constructor = new Constructor(new TypeDescription(CarWithArray.class));
- Yaml yaml = new Yaml(constructor);
- CarWithArray car = (CarWithArray) yaml.load(Util
- .getLocalResource("constructor/car-no-root-class.yaml"));
- assertEquals("12-XP-F4", car.getPlate());
- Wheel[] wheels = car.getWheels();
- assertNotNull(wheels);
- assertEquals(5, wheels.length);
- }
+ public void testLoadClassNoRoot() {
+ Constructor constructor = new Constructor(new TypeDescription(CarWithArray.class));
+ Yaml yaml = new Yaml(constructor);
+ CarWithArray car = yaml.load(Util.getLocalResource("constructor/car-no-root-class.yaml"));
+ assertEquals("12-XP-F4", car.getPlate());
+ Wheel[] wheels = car.getWheels();
+ assertNotNull(wheels);
+ assertEquals(5, wheels.length);
+ }
- public static class CarWithArray {
- private String plate;
- private Wheel[] wheels;
+ public static class CarWithArray {
- public String getPlate() {
- return plate;
- }
+ private String plate;
+ private Wheel[] wheels;
- public void setPlate(String plate) {
- this.plate = plate;
- }
+ public String getPlate() {
+ return plate;
+ }
+
+ public void setPlate(String plate) {
+ this.plate = plate;
+ }
- public Wheel[] getWheels() {
- return wheels;
- }
+ public Wheel[] getWheels() {
+ return wheels;
+ }
- public void setWheels(Wheel[] wheels) {
- this.wheels = wheels;
- }
+ public void setWheels(Wheel[] wheels) {
+ this.wheels = wheels;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/AtomicJavaBean.java b/src/test/java/org/yaml/snakeyaml/constructor/AtomicJavaBean.java
index 946ff25a..221df5e8 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/AtomicJavaBean.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/AtomicJavaBean.java
@@ -1,44 +1,43 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
import java.util.concurrent.atomic.AtomicLong;
public class AtomicJavaBean {
- private float amount;
- private AtomicLong atomic;
-
- public float getAmount() {
- return amount;
- }
-
- public void setAmount(float amount) {
- this.amount = amount;
- }
-
- public AtomicLong getAtomic() {
- return atomic;
- }
-
- public void setAtomic(AtomicLong atomic) {
- this.atomic = atomic;
- }
-
- @Override
- public String toString() {
- return "AtomicJavaBean";
- }
-} \ No newline at end of file
+
+ private float amount;
+ private AtomicLong atomic;
+
+ public float getAmount() {
+ return amount;
+ }
+
+ public void setAmount(float amount) {
+ this.amount = amount;
+ }
+
+ public AtomicLong getAtomic() {
+ return atomic;
+ }
+
+ public void setAtomic(AtomicLong atomic) {
+ this.atomic = atomic;
+ }
+
+ @Override
+ public String toString() {
+ return "AtomicJavaBean";
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/BeanConstructorTest.java b/src/test/java/org/yaml/snakeyaml/constructor/BeanConstructorTest.java
index d36c733f..c2d3aa93 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/BeanConstructorTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/BeanConstructorTest.java
@@ -1,24 +1,20 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
import java.math.BigInteger;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
@@ -26,225 +22,224 @@ import org.yaml.snakeyaml.error.YAMLException;
public class BeanConstructorTest extends TestCase {
- public void testPrimitivesConstructor() {
- Yaml yaml = new Yaml(new Constructor(TestBean1.class));
- String document = Util.getLocalResource("constructor/test-primitives1.yaml");
- TestBean1 result = (TestBean1) yaml.load(document);
- assertNotNull(result);
- assertEquals(new Byte((byte) 1), result.getByteClass());
- assertEquals((byte) -3, result.getBytePrimitive());
- assertEquals(new Short((short) 0), result.getShortClass());
- assertEquals((short) -13, result.getShortPrimitive());
- assertEquals(new Integer(5), result.getInteger());
- assertEquals(17, result.getIntPrimitive());
- assertEquals("the text", result.getText());
- assertEquals("13", result.getId());
- assertEquals(new Long(11111111111L), result.getLongClass());
- assertEquals(9999999999L, result.getLongPrimitive());
- assertEquals(Boolean.TRUE, result.getBooleanClass());
- assertTrue(result.isBooleanPrimitive());
- assertEquals(Character.valueOf('2'), result.getCharClass());
- assertEquals('#', result.getCharPrimitive());
- assertEquals(new BigInteger("1234567890123456789012345678901234567890"),
- result.getBigInteger());
- assertEquals(new Float(2), result.getFloatClass());
- assertEquals(new Float(3.1416), result.getFloatPrimitive());
- assertEquals(new Double(4), result.getDoubleClass());
- assertEquals(new Double(11200), result.getDoublePrimitive());
- assertEquals(1199836800000L, result.getDate().getTime());
- assertEquals("public", result.publicField);
- //
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- Yaml yamlToDump = new Yaml(options);
- String output = yamlToDump.dump(result);
- TestBean1 result2 = (TestBean1) yaml.load(output);
- assertNotNull(result2);
- TestBean1 result3 = (TestBean1) new Yaml().load(output);
- assertNotNull(result3);
- }
-
- public void testNoClassConstructor() {
- try {
- new Yaml(new Constructor((Class<? extends Object>) null));
- fail("Class must be provided.");
- } catch (NullPointerException e) {
- assertEquals("Root class must be provided.", e.getMessage());
- }
- }
-
- public void testNoClassConstructorString() throws ClassNotFoundException {
- try {
- new Yaml(new Constructor((String) null));
- fail("Class must be provided.");
- } catch (NullPointerException e) {
- assertEquals("Root type must be provided.", e.getMessage());
- }
- }
-
- public void testNoClassConstructorEmptyString() throws ClassNotFoundException {
- try {
- new Yaml(new Constructor(" "));
- fail("Class must be provided.");
- } catch (YAMLException e) {
- assertEquals("Root type must be provided.", e.getMessage());
- }
- }
-
- public void testCharacter() {
- Yaml yaml = new Yaml(new Constructor(TestBean1.class));
- String document = "charClass: id";
- try {
- yaml.load(document);
- fail("Only one char must be allowed.");
- } catch (Exception e) {
- assertTrue(e.getMessage(),
- e.getMessage().contains("Invalid node Character: 'id'; length: 2"));
- }
- document = "charClass: #";
- TestBean1 bean = (TestBean1) yaml.load(document);
- assertNull("Null must be accepted.", bean.getCharClass());
- document = "charClass: ''";
- bean = (TestBean1) yaml.load(document);
- assertNull("Null must be accepted.", bean.getCharClass());
- document = "charClass:\n";
- bean = (TestBean1) yaml.load(document);
- assertNull("Null must be accepted.", bean.getCharClass());
- document = "charClass: 1\n";
- bean = (TestBean1) yaml.load(document);
- assertEquals(Character.valueOf('1'), bean.getCharClass());
- }
-
- public void testNoEmptyConstructor() {
- Yaml yaml = new Yaml(new Constructor(TestBean2.class));
- String document = "text: qwerty";
- try {
- yaml.load(document);
- fail("No empty constructor available");
- } catch (Exception e) {
- assertTrue(e.getMessage(), e.getMessage().contains("NoSuchMethodException"));
- }
- TestBean2 bean = new TestBean2();
- assertEquals("", bean.getText());
- }
-
- private class TestBean2 {
- private String text;
-
- public TestBean2() {
- setText("");
- }
-
- public String getText() {
- return text;
- }
-
- public void setText(String text) {
- this.text = text;
- }
- }
-
- public void testPrivateMethod() {
- // TODO: Are we sure no private ????
- Yaml yaml = new Yaml(new Constructor(TestBean2.class));
- String document = "text: qwerty";
- try {
- yaml.load(document);
- fail("Private method cannot be called.");
- } catch (Exception e) {
- assertTrue(e.getMessage(), e.getMessage().contains("NoSuchMethodException"));
- }
- }
-
- public void testKeyNotScalar() {
- Yaml yaml = new Yaml(new Constructor(TestBean1.class));
- String document = "[1, 2]: qwerty";
- try {
- yaml.load(document);
- fail("Keys must be scalars.");
- } catch (Exception e) {
- assertTrue(e.getMessage(), e.getMessage().contains("Keys must be scalars but found"));
- }
- }
-
- public void testInvalidKey() {
- Yaml yaml = new Yaml(new Constructor(TestBean1.class));
- String document = "something: qwerty";
- try {
- yaml.load(document);
- fail("Non-existing property must fail.");
- } catch (Exception e) {
- assertTrue(e.getMessage(),
- e.getMessage().contains("Unable to find property 'something'"));
- }
- }
-
- public void testStaticField() {
- Yaml yaml = new Yaml(new Constructor(TestBean1.class));
- String document = "staticInteger: 123";
- try {
- yaml.load(document);
- fail("Staic variables must not be used.");
- } catch (Exception e) {
- assertTrue(e.getMessage(),
- e.getMessage().contains("Unable to find property 'staticInteger'"));
- }
- }
-
- public void testScalarContructor() {
- Yaml yaml = new Yaml(new Constructor(Parent1.class));
- String document = "id: 123\nchild: 25";
- Parent1 parent = (Parent1) yaml.load(document);
- assertEquals("123", parent.getId());
- Child1 child = parent.getChild();
- assertEquals(new Integer(25), child.getCode());
- }
-
- public void testScalarContructorException() {
- Yaml yaml = new Yaml(new Constructor(ExceptionParent.class));
- String document = "id: 123\nchild: 25";
- try {
- yaml.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"));
- }
- }
-
- static public class ExceptionParent {
- private String id;
- private ExceptionChild child;
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public ExceptionChild getChild() {
- return child;
- }
-
- public void setChild(ExceptionChild child) {
- this.child = child;
- }
-
- }
-
- public static class ExceptionChild {
- private Integer code;
-
- public ExceptionChild(Integer code) {
- throw new RuntimeException("ExceptionChild cannot be created.");
- }
-
- public Integer getCode() {
- return code;
- }
+ public void testPrimitivesConstructor() {
+ Yaml yaml = new Yaml(new Constructor(TestBean1.class));
+ String document = Util.getLocalResource("constructor/test-primitives1.yaml");
+ TestBean1 result = yaml.load(document);
+ assertNotNull(result);
+ assertEquals(Byte.valueOf((byte) 1), result.getByteClass());
+ assertEquals((byte) -3, result.getBytePrimitive());
+ assertEquals(Short.valueOf((short) 0), result.getShortClass());
+ assertEquals((short) -13, result.getShortPrimitive());
+ assertEquals(Integer.valueOf(5), result.getInteger());
+ assertEquals(17, result.getIntPrimitive());
+ assertEquals("the text", result.getText());
+ assertEquals("13", result.getId());
+ assertEquals(Long.valueOf(11111111111L), result.getLongClass());
+ assertEquals(9999999999L, result.getLongPrimitive());
+ assertEquals(Boolean.TRUE, result.getBooleanClass());
+ assertTrue(result.isBooleanPrimitive());
+ assertEquals(Character.valueOf('2'), result.getCharClass());
+ assertEquals('#', result.getCharPrimitive());
+ assertEquals(new BigInteger("1234567890123456789012345678901234567890"),
+ result.getBigInteger());
+ assertEquals(Float.valueOf(2), result.getFloatClass());
+ assertEquals(Float.valueOf(3.1416f), result.getFloatPrimitive());
+ assertEquals(Double.valueOf(4), result.getDoubleClass());
+ assertEquals(Double.valueOf(11200), result.getDoublePrimitive());
+ assertEquals(1199836800000L, result.getDate().getTime());
+ assertEquals("public", result.publicField);
+ //
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ Yaml yamlToDump = new Yaml(options);
+ String output = yamlToDump.dump(result);
+ TestBean1 result2 = yaml.load(output);
+ assertNotNull(result2);
+ TestBean1 result3 = new Yaml().load(output);
+ assertNotNull(result3);
+ }
+
+ public void testNoClassConstructor() {
+ try {
+ new Yaml(new Constructor((Class<? extends Object>) null));
+ fail("Class must be provided.");
+ } catch (NullPointerException e) {
+ assertEquals("Root class must be provided.", e.getMessage());
+ }
+ }
+
+ public void testNoClassConstructorString() throws ClassNotFoundException {
+ try {
+ new Yaml(new Constructor((String) null));
+ fail("Class must be provided.");
+ } catch (NullPointerException e) {
+ assertEquals("Root type must be provided.", e.getMessage());
+ }
+ }
+
+ public void testNoClassConstructorEmptyString() throws ClassNotFoundException {
+ try {
+ new Yaml(new Constructor(" "));
+ fail("Class must be provided.");
+ } catch (YAMLException e) {
+ assertEquals("Root type must be provided.", e.getMessage());
+ }
+ }
+
+ public void testCharacter() {
+ Yaml yaml = new Yaml(new Constructor(TestBean1.class));
+ String document = "charClass: id";
+ try {
+ yaml.load(document);
+ fail("Only one char must be allowed.");
+ } catch (Exception e) {
+ assertTrue(e.getMessage(),
+ e.getMessage().contains("Invalid node Character: 'id'; length: 2"));
+ }
+ document = "charClass: #";
+ TestBean1 bean = yaml.load(document);
+ assertNull("Null must be accepted.", bean.getCharClass());
+ document = "charClass: ''";
+ bean = yaml.load(document);
+ assertNull("Null must be accepted.", bean.getCharClass());
+ document = "charClass:\n";
+ bean = yaml.load(document);
+ assertNull("Null must be accepted.", bean.getCharClass());
+ document = "charClass: 1\n";
+ bean = yaml.load(document);
+ assertEquals(Character.valueOf('1'), bean.getCharClass());
+ }
+
+ public void testNoEmptyConstructor() {
+ Yaml yaml = new Yaml(new Constructor(TestBean2.class));
+ String document = "text: qwerty";
+ try {
+ yaml.load(document);
+ fail("No empty constructor available");
+ } catch (Exception e) {
+ assertTrue(e.getMessage(), e.getMessage().contains("NoSuchMethodException"));
+ }
+ TestBean2 bean = new TestBean2();
+ assertEquals("", bean.getText());
+ }
+
+ private class TestBean2 {
+
+ private String text;
+
+ public TestBean2() {
+ setText("");
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+ }
+
+ public void testPrivateMethod() {
+ Yaml yaml = new Yaml(new Constructor(TestBean2.class));
+ String document = "text: qwerty";
+ try {
+ yaml.load(document);
+ fail("Private method cannot be called.");
+ } catch (Exception e) {
+ assertTrue(e.getMessage(), e.getMessage().contains("NoSuchMethodException"));
+ }
+ }
+
+ public void testKeyNotScalar() {
+ Yaml yaml = new Yaml(new Constructor(TestBean1.class));
+ String document = "[1, 2]: qwerty";
+ try {
+ yaml.load(document);
+ fail("Keys must be scalars.");
+ } catch (Exception e) {
+ assertTrue(e.getMessage(), e.getMessage().contains("Keys must be scalars but found"));
+ }
+ }
+
+ public void testInvalidKey() {
+ Yaml yaml = new Yaml(new Constructor(TestBean1.class));
+ String document = "something: qwerty";
+ try {
+ yaml.load(document);
+ fail("Non-existing property must fail.");
+ } catch (Exception e) {
+ assertTrue(e.getMessage(), e.getMessage().contains("Unable to find property 'something'"));
+ }
+ }
+
+ public void testStaticField() {
+ Yaml yaml = new Yaml(new Constructor(TestBean1.class));
+ String document = "staticInteger: 123";
+ try {
+ yaml.load(document);
+ fail("Staic variables must not be used.");
+ } catch (Exception e) {
+ assertTrue(e.getMessage(),
+ e.getMessage().contains("Unable to find property 'staticInteger'"));
+ }
+ }
+
+ public void testScalarContructor() {
+ Yaml yaml = new Yaml(new Constructor(Parent1.class));
+ String document = "id: 123\nchild: 25";
+ Parent1 parent = yaml.load(document);
+ assertEquals("123", parent.getId());
+ Child1 child = parent.getChild();
+ assertEquals(Integer.valueOf(25), child.getCode());
+ }
+
+ public void testScalarContructorException() {
+ Yaml yaml = new Yaml(new Constructor(ExceptionParent.class));
+ String document = "id: 123\nchild: 25";
+ try {
+ yaml.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"));
+ }
+ }
+
+ static public class ExceptionParent {
+
+ private String id;
+ private ExceptionChild child;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public ExceptionChild getChild() {
+ return child;
+ }
+
+ public void setChild(ExceptionChild child) {
+ this.child = child;
+ }
+
+ }
+
+ public static class ExceptionChild {
+
+ private final Integer code;
+
+ public ExceptionChild(Integer code) {
+ throw new RuntimeException("ExceptionChild cannot be created.");
+ }
+
+ public Integer getCode() {
+ return code;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/BigDecimalBeanConstructorTest.java b/src/test/java/org/yaml/snakeyaml/constructor/BigDecimalBeanConstructorTest.java
index e5f0fb46..543bcd47 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/BigDecimalBeanConstructorTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/BigDecimalBeanConstructorTest.java
@@ -1,58 +1,53 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
import java.math.BigDecimal;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class BigDecimalBeanConstructorTest extends TestCase {
- public void testRepresentor() {
- BigDecimalJavaBean bean = new BigDecimalJavaBean();
- bean.setAmount(1.5f);
- bean.setNumber(new BigDecimal("3.1416"));
- Yaml yaml = new Yaml();
- String output = yaml.dump(bean);
- String className = this.getClass().getPackage().getName();
- assertEquals("!!" + className + ".BigDecimalJavaBean {amount: 1.5, number: 3.1416}\n",
- output);
- }
+ public void testRepresentor() {
+ BigDecimalJavaBean bean = new BigDecimalJavaBean();
+ bean.setAmount(1.5f);
+ bean.setNumber(new BigDecimal("3.1416"));
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(bean);
+ String className = this.getClass().getPackage().getName();
+ assertEquals("!!" + className + ".BigDecimalJavaBean {amount: 1.5, number: 3.1416}\n", output);
+ }
- public void testConstructor() {
- String className = "!!" + this.getClass().getPackage().getName()
- + ".BigDecimalJavaBean {amount: 1.5, number: 3.1416}";
- Yaml yaml = new Yaml();
- BigDecimalJavaBean bean = (BigDecimalJavaBean) yaml.load(className);
- assertNotNull(bean);
- assertTrue(1.5 - bean.getAmount() < 0.0000001);
- assertTrue((new BigDecimal("3.1416")).add(bean.getNumber().negate()).doubleValue() < 0.0000001);
- }
+ public void testConstructor() {
+ String className = "!!" + this.getClass().getPackage().getName()
+ + ".BigDecimalJavaBean {amount: 1.5, number: 3.1416}";
+ Yaml yaml = new Yaml();
+ BigDecimalJavaBean bean = yaml.load(className);
+ assertNotNull(bean);
+ assertTrue(1.5 - bean.getAmount() < 0.0000001);
+ assertTrue((new BigDecimal("3.1416")).add(bean.getNumber().negate()).doubleValue() < 0.0000001);
+ }
- public void testConstructorAtomic() {
- String className = "!!" + this.getClass().getPackage().getName()
- + ".AtomicJavaBean {amount: 1.5, atomic: 0}";
- Yaml yaml = new Yaml();
- try {
- yaml.load(className);
- fail("AtomicLong is not supported.");
- } catch (Exception e) {
- assertEquals("argument type mismatch", e.getCause().getMessage());
- }
+ public void testConstructorAtomic() {
+ String className =
+ "!!" + this.getClass().getPackage().getName() + ".AtomicJavaBean {amount: 1.5, atomic: 0}";
+ Yaml yaml = new Yaml();
+ try {
+ yaml.load(className);
+ fail("AtomicLong is not supported.");
+ } catch (Exception e) {
+ assertEquals("argument type mismatch", e.getCause().getMessage());
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/BigDecimalJavaBean.java b/src/test/java/org/yaml/snakeyaml/constructor/BigDecimalJavaBean.java
index 516f4cd3..b558c487 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/BigDecimalJavaBean.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/BigDecimalJavaBean.java
@@ -1,39 +1,38 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
import java.math.BigDecimal;
public class BigDecimalJavaBean {
- private BigDecimal number;
- private float amount;
- public BigDecimal getNumber() {
- return number;
- }
+ private BigDecimal number;
+ private float amount;
- public void setNumber(BigDecimal number) {
- this.number = number;
- }
+ public BigDecimal getNumber() {
+ return number;
+ }
- public float getAmount() {
- return amount;
- }
+ public void setNumber(BigDecimal number) {
+ this.number = number;
+ }
- public void setAmount(float amount) {
- this.amount = amount;
- }
-} \ No newline at end of file
+ public float getAmount() {
+ return amount;
+ }
+
+ public void setAmount(float amount) {
+ this.amount = amount;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/Car.java b/src/test/java/org/yaml/snakeyaml/constructor/Car.java
index d19a713a..c58d1ffa 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/Car.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/Car.java
@@ -1,39 +1,38 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
import java.util.List;
public class Car {
- private String plate;
- private List<Wheel> wheels;
- public String getPlate() {
- return plate;
- }
+ private String plate;
+ private List<Wheel> wheels;
- public void setPlate(String plate) {
- this.plate = plate;
- }
+ public String getPlate() {
+ return plate;
+ }
- public List<Wheel> getWheels() {
- return wheels;
- }
+ public void setPlate(String plate) {
+ this.plate = plate;
+ }
- public void setWheels(List<Wheel> wheels) {
- this.wheels = wheels;
- }
+ public List<Wheel> getWheels() {
+ return wheels;
+ }
+
+ public void setWheels(List<Wheel> wheels) {
+ this.wheels = wheels;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/Child1.java b/src/test/java/org/yaml/snakeyaml/constructor/Child1.java
index 592265c7..2ba4a9c1 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/Child1.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/Child1.java
@@ -1,28 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
public class Child1 {
- private Integer code;
- public Child1(Integer code) {
- this.code = code;
- }
+ private final Integer code;
- public Integer getCode() {
- return code;
- }
-} \ No newline at end of file
+ public Child1(Integer code) {
+ this.code = code;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/ClassTagsTest.java b/src/test/java/org/yaml/snakeyaml/constructor/ClassTagsTest.java
index b14c5e79..07b69059 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/ClassTagsTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/ClassTagsTest.java
@@ -1,25 +1,21 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
import java.util.ArrayList;
import java.util.List;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.TypeDescription;
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
@@ -29,77 +25,77 @@ import org.yaml.snakeyaml.representer.Representer;
public class ClassTagsTest extends TestCase {
- public void testDefaultRepresenter() {
- Car car = new Car();
- car.setPlate("12-XP-F4");
- List<Wheel> wheels = new ArrayList<Wheel>();
- for (int i = 1; i < 6; i++) {
- Wheel wheel = new Wheel();
- wheel.setId(i);
- wheels.add(wheel);
- }
- car.setWheels(wheels);
- assertEquals(Util.getLocalResource("constructor/car-with-tags.yaml"), new Yaml().dump(car));
+ public void testDefaultRepresenter() {
+ Car car = new Car();
+ car.setPlate("12-XP-F4");
+ List<Wheel> wheels = new ArrayList<Wheel>();
+ for (int i = 1; i < 6; i++) {
+ Wheel wheel = new Wheel();
+ wheel.setId(i);
+ wheels.add(wheel);
}
+ car.setWheels(wheels);
+ assertEquals(Util.getLocalResource("constructor/car-with-tags.yaml"), new Yaml().dump(car));
+ }
- public void testDumpClassTag() {
- Car car = new Car();
- car.setPlate("12-XP-F4");
- List<Wheel> wheels = new ArrayList<Wheel>();
- for (int i = 1; i < 6; i++) {
- Wheel wheel = new Wheel();
- wheel.setId(i);
- wheels.add(wheel);
- }
- car.setWheels(wheels);
- Representer representer = new Representer();
- representer.addClassTag(Car.class, new Tag("!car"));
- representer.addClassTag(Wheel.class, Tag.MAP);
- Yaml yaml = new Yaml(representer);
- String output = yaml.dump(car);
- assertEquals(Util.getLocalResource("constructor/car-without-tags.yaml"), output);
+ public void testDumpClassTag() {
+ Car car = new Car();
+ car.setPlate("12-XP-F4");
+ List<Wheel> wheels = new ArrayList<Wheel>();
+ for (int i = 1; i < 6; i++) {
+ Wheel wheel = new Wheel();
+ wheel.setId(i);
+ wheels.add(wheel);
}
+ car.setWheels(wheels);
+ Representer representer = new Representer();
+ representer.addClassTag(Car.class, new Tag("!car"));
+ representer.addClassTag(Wheel.class, Tag.MAP);
+ Yaml yaml = new Yaml(representer);
+ String output = yaml.dump(car);
+ assertEquals(Util.getLocalResource("constructor/car-without-tags.yaml"), output);
+ }
- public void testLoadUnknounClassTag() {
- try {
- Yaml yaml = new Yaml();
- yaml.load(Util.getLocalResource("constructor/car-without-tags.yaml"));
- fail("Must fail because of unknown tag: !car");
- } catch (YAMLException e) {
- assertTrue(e.getMessage().contains("Invalid tag: !car"));
- }
-
+ public void testLoadUnknounClassTag() {
+ try {
+ Yaml yaml = new Yaml();
+ yaml.load(Util.getLocalResource("constructor/car-without-tags.yaml"));
+ fail("Must fail because of unknown tag: !car");
+ } catch (YAMLException e) {
+ assertTrue(e.getMessage().contains("Invalid tag: !car"));
}
- public void testLoadClassTag() {
- Constructor constructor = new Constructor();
- constructor.addTypeDescription(new TypeDescription(Car.class, "!car"));
- Yaml yaml = new Yaml(constructor);
- String source = Util.getLocalResource("constructor/car-without-tags.yaml");
- Car car = (Car) yaml.load(source);
- assertEquals("12-XP-F4", car.getPlate());
- List<Wheel> wheels = car.getWheels();
- assertNotNull(wheels);
- assertEquals(5, wheels.size());
- }
+ }
- public void testNullDescription() {
- Constructor constructor = new Constructor();
- try {
- constructor.addTypeDescription(null);
- fail("Description is required.");
- } catch (Exception e) {
- assertEquals("TypeDescription is required.", e.getMessage());
- }
- }
+ public void testLoadClassTag() {
+ Constructor constructor = new Constructor();
+ constructor.addTypeDescription(new TypeDescription(Car.class, "!car"));
+ Yaml yaml = new Yaml(constructor);
+ String source = Util.getLocalResource("constructor/car-without-tags.yaml");
+ Car car = yaml.load(source);
+ assertEquals("12-XP-F4", car.getPlate());
+ List<Wheel> wheels = car.getWheels();
+ assertNotNull(wheels);
+ assertEquals(5, wheels.size());
+ }
- public void testLoadClassNoRoot() {
- Constructor constructor = new Constructor(new TypeDescription(Car.class));
- Yaml yaml = new Yaml(constructor);
- Car car = (Car) yaml.load(Util.getLocalResource("constructor/car-no-root-class.yaml"));
- assertEquals("12-XP-F4", car.getPlate());
- List<Wheel> wheels = car.getWheels();
- assertNotNull(wheels);
- assertEquals(5, wheels.size());
+ public void testNullDescription() {
+ Constructor constructor = new Constructor();
+ try {
+ constructor.addTypeDescription(null);
+ fail("Description is required.");
+ } catch (Exception e) {
+ assertEquals("TypeDescription is required.", e.getMessage());
}
+ }
+
+ public void testLoadClassNoRoot() {
+ Constructor constructor = new Constructor(new TypeDescription(Car.class));
+ Yaml yaml = new Yaml(constructor);
+ Car car = yaml.load(Util.getLocalResource("constructor/car-no-root-class.yaml"));
+ assertEquals("12-XP-F4", car.getPlate());
+ List<Wheel> wheels = car.getWheels();
+ assertNotNull(wheels);
+ assertEquals(5, wheels.size());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/ConstructorMappingTest.java b/src/test/java/org/yaml/snakeyaml/constructor/ConstructorMappingTest.java
index 7d6b1f39..6a68ab92 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/ConstructorMappingTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/ConstructorMappingTest.java
@@ -1,26 +1,22 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.composer.Composer;
import org.yaml.snakeyaml.parser.Parser;
import org.yaml.snakeyaml.parser.ParserImpl;
@@ -29,39 +25,40 @@ import org.yaml.snakeyaml.resolver.Resolver;
public class ConstructorMappingTest extends TestCase {
- @SuppressWarnings("unchecked")
- public void testGetDefaultMap() {
- String data = "{ one: 1, two: 2, three: 3 }";
- Map<Object, Object> map = (Map<Object, Object>) construct(new CustomConstructor(), data);
- assertNotNull(map);
- assertTrue(map.getClass().toString(), map instanceof TreeMap);
- }
+ @SuppressWarnings("unchecked")
+ public void testGetDefaultMap() {
+ String data = "{ one: 1, two: 2, three: 3 }";
+ Map<Object, Object> map = (Map<Object, Object>) construct(new CustomConstructor(), data);
+ assertNotNull(map);
+ assertTrue(map.getClass().toString(), map instanceof TreeMap);
+ }
- @SuppressWarnings("unchecked")
- public void testGetArrayList() {
- String data = "{ one: 1, two: 2, three: 3 }";
- Map<Object, Object> map = (Map<Object, Object>) construct(data);
- assertNotNull(map);
- assertTrue(map.getClass().toString(), map instanceof LinkedHashMap);
- }
+ @SuppressWarnings("unchecked")
+ public void testGetArrayList() {
+ String data = "{ one: 1, two: 2, three: 3 }";
+ Map<Object, Object> map = (Map<Object, Object>) construct(data);
+ assertNotNull(map);
+ assertTrue(map.getClass().toString(), map instanceof LinkedHashMap);
+ }
- private Object construct(String data) {
- return construct(new Constructor(), data);
- }
+ private Object construct(String data) {
+ return construct(new Constructor(), data);
+ }
- private Object construct(Constructor constructor, String data) {
- StreamReader reader = new StreamReader(data);
- Parser parser = new ParserImpl(reader);
- Resolver resolver = new Resolver();
- Composer composer = new Composer(parser, resolver);
- constructor.setComposer(composer);
- return constructor.getSingleData(Object.class);
- }
+ private Object construct(Constructor constructor, String data) {
+ StreamReader reader = new StreamReader(data);
+ Parser parser = new ParserImpl(reader);
+ Resolver resolver = new Resolver();
+ Composer composer = new Composer(parser, resolver);
+ constructor.setComposer(composer);
+ return constructor.getSingleData(Object.class);
+ }
+
+ class CustomConstructor extends Constructor {
- class CustomConstructor extends Constructor {
- @Override
- protected Map<Object, Object> createDefaultMap() {
- return new TreeMap<Object, Object>();
- }
+ @Override
+ protected Map<Object, Object> createDefaultMap(int initSize) {
+ return new TreeMap<Object, Object>();
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/ConstructorSequenceTest.java b/src/test/java/org/yaml/snakeyaml/constructor/ConstructorSequenceTest.java
index 26412015..45459b61 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/ConstructorSequenceTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/ConstructorSequenceTest.java
@@ -1,25 +1,21 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
import java.util.ArrayList;
import java.util.List;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.composer.Composer;
import org.yaml.snakeyaml.parser.Parser;
@@ -29,57 +25,58 @@ import org.yaml.snakeyaml.resolver.Resolver;
public class ConstructorSequenceTest extends TestCase {
- public void testGetList() {
- String data = "[ 1, 2, 3 ]";
- List<Object> list = construct(new CustomConstructor(), data);
- assertNotNull(list);
- assertTrue(list.getClass().toString(), list instanceof ArrayList<?>);
- }
+ public void testGetList() {
+ String data = "[ 1, 2, 3 ]";
+ List<Object> list = construct(new CustomConstructor(), data);
+ assertNotNull(list);
+ assertTrue(list.getClass().toString(), list instanceof ArrayList<?>);
+ }
- public void testGetArrayList() {
- String data = "[ 1, 2, 3 ]";
- List<Object> list = construct(data);
- assertNotNull(list);
- assertTrue(list.getClass().toString(), list instanceof ArrayList<?>);
- }
+ public void testGetArrayList() {
+ String data = "[ 1, 2, 3 ]";
+ List<Object> list = construct(data);
+ assertNotNull(list);
+ assertTrue(list.getClass().toString(), list instanceof ArrayList<?>);
+ }
- public void testDumpList() {
- List<Integer> l = new ArrayList<Integer>(2);
- l.add(1);
- l.add(2);
- Yaml yaml = new Yaml();
- String result = yaml.dump(l);
- assertEquals("[1, 2]\n", result);
- }
+ public void testDumpList() {
+ List<Integer> l = new ArrayList<Integer>(2);
+ l.add(1);
+ l.add(2);
+ Yaml yaml = new Yaml();
+ String result = yaml.dump(l);
+ assertEquals("[1, 2]\n", result);
+ }
- public void testDumpListSameIntegers() {
- List<Integer> l = new ArrayList<Integer>(2);
- l.add(1);
- l.add(1);
- Yaml yaml = new Yaml();
- String result = yaml.dump(l);
- assertEquals("[1, 1]\n", result);
- }
+ public void testDumpListSameIntegers() {
+ List<Integer> l = new ArrayList<Integer>(2);
+ l.add(1);
+ l.add(1);
+ Yaml yaml = new Yaml();
+ String result = yaml.dump(l);
+ assertEquals("[1, 1]\n", result);
+ }
- private List<Object> construct(String data) {
- return construct(new Constructor(), data);
- }
+ private List<Object> construct(String data) {
+ return construct(new Constructor(), data);
+ }
- @SuppressWarnings("unchecked")
- private List<Object> construct(Constructor constructor, String data) {
- StreamReader reader = new StreamReader(data);
- Parser parser = new ParserImpl(reader);
- Resolver resolver = new Resolver();
- Composer composer = new Composer(parser, resolver);
- constructor.setComposer(composer);
- List<Object> result = (List<Object>) constructor.getSingleData(Object.class);
- return result;
- }
+ @SuppressWarnings("unchecked")
+ private List<Object> construct(Constructor constructor, String data) {
+ StreamReader reader = new StreamReader(data);
+ Parser parser = new ParserImpl(reader);
+ Resolver resolver = new Resolver();
+ Composer composer = new Composer(parser, resolver);
+ constructor.setComposer(composer);
+ List<Object> result = (List<Object>) constructor.getSingleData(Object.class);
+ return result;
+ }
+
+ class CustomConstructor extends Constructor {
- class CustomConstructor extends Constructor {
- @Override
- protected List<Object> createDefaultList(int initSize) {
- return new ArrayList<Object>(initSize);
- }
+ @Override
+ protected List<Object> createDefaultList(int initSize) {
+ return new ArrayList<Object>(initSize);
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/ConstructorTest.java b/src/test/java/org/yaml/snakeyaml/constructor/ConstructorTest.java
index 47f9805b..c9b362cd 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/ConstructorTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/ConstructorTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
@@ -19,102 +17,99 @@ import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TimeZone;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class ConstructorTest extends TestCase {
- @SuppressWarnings("unchecked")
- public void testMapOrder() {
- String data = "one: zzz\ntwo: ccc\nthree: bbb\nfour: aaa";
- Object map = construct(data);
- assertNotNull(map);
- assertTrue(map.getClass().toString(), map instanceof LinkedHashMap);
- Map<String, String> m = (Map<String, String>) map;
- assertEquals(4, m.keySet().size());
- Iterator<String> iter = m.keySet().iterator();
- assertEquals("one", iter.next());
- assertEquals("two", iter.next());
- assertEquals("three", iter.next());
- assertEquals("four", iter.next());
- }
+ @SuppressWarnings("unchecked")
+ public void testMapOrder() {
+ String data = "one: zzz\ntwo: ccc\nthree: bbb\nfour: aaa";
+ Object map = construct(data);
+ assertNotNull(map);
+ assertTrue(map.getClass().toString(), map instanceof LinkedHashMap);
+ Map<String, String> m = (Map<String, String>) map;
+ assertEquals(4, m.keySet().size());
+ Iterator<String> iter = m.keySet().iterator();
+ assertEquals("one", iter.next());
+ assertEquals("two", iter.next());
+ assertEquals("three", iter.next());
+ assertEquals("four", iter.next());
+ }
- /**
- * create JavaBean
- */
- public void testGetBeanAssumeClass() {
- String data = "--- !!org.yaml.snakeyaml.constructor.Person\nfirstName: Andrey\nage: 99";
- Object obj = construct(data);
- assertNotNull(obj);
- assertTrue("Unexpected: " + obj.getClass().toString(), obj instanceof Person);
- Person person = (Person) obj;
- assertEquals("Andrey", person.getFirstName());
- assertNull(person.getLastName());
- assertEquals(99, person.getAge().intValue());
- }
+ /**
+ * create JavaBean
+ */
+ public void testGetBeanAssumeClass() {
+ String data = "--- !!org.yaml.snakeyaml.constructor.Person\nfirstName: Andrey\nage: 99";
+ Object obj = construct(data);
+ assertNotNull(obj);
+ assertTrue("Unexpected: " + obj.getClass().toString(), obj instanceof Person);
+ Person person = (Person) obj;
+ assertEquals("Andrey", person.getFirstName());
+ assertNull(person.getLastName());
+ assertEquals(99, person.getAge().intValue());
+ }
- /**
- * create instance using constructor arguments
- */
- public void testGetConstructorBean() {
- String data = "--- !!org.yaml.snakeyaml.constructor.Person [ Andrey, Somov, 99 ]";
- Object obj = construct(data);
- assertNotNull(obj);
- assertTrue(obj.getClass().toString(), obj instanceof Person);
- Person person = (Person) obj;
- assertEquals("Andrey", person.getFirstName());
- assertEquals("Somov", person.getLastName());
- assertEquals(99, person.getAge().intValue());
- }
+ /**
+ * create instance using constructor arguments
+ */
+ public void testGetConstructorBean() {
+ String data = "--- !!org.yaml.snakeyaml.constructor.Person [ Andrey, Somov, 99 ]";
+ Object obj = construct(data);
+ assertNotNull(obj);
+ assertTrue(obj.getClass().toString(), obj instanceof Person);
+ Person person = (Person) obj;
+ assertEquals("Andrey", person.getFirstName());
+ assertEquals("Somov", person.getLastName());
+ assertEquals(99, person.getAge().intValue());
+ }
- /**
- * create instance using scalar argument
- */
- public void testGetConstructorFromScalar() {
- String data = "--- !!org.yaml.snakeyaml.constructor.Person 'Somov'";
- Object obj = construct(data);
- assertNotNull(obj);
- assertTrue(obj.getClass().toString(), obj instanceof Person);
- Person person = (Person) obj;
- assertNull("Andrey", person.getFirstName());
- assertEquals("Somov", person.getLastName());
- assertNull(person.getAge());
- }
+ /**
+ * create instance using scalar argument
+ */
+ public void testGetConstructorFromScalar() {
+ String data = "--- !!org.yaml.snakeyaml.constructor.Person 'Somov'";
+ Object obj = construct(data);
+ assertNotNull(obj);
+ assertTrue(obj.getClass().toString(), obj instanceof Person);
+ Person person = (Person) obj;
+ assertNull("Andrey", person.getFirstName());
+ assertEquals("Somov", person.getLastName());
+ assertNull(person.getAge());
+ }
- public void testJavaBeanLoad() {
- java.util.Calendar cal = java.util.Calendar.getInstance(TimeZone.getTimeZone("UTC"));
- cal.clear();
- cal.set(1982, 5 - 1, 3); // Java's months are zero-based...
+ public void testJavaBeanLoad() {
+ java.util.Calendar cal = java.util.Calendar.getInstance(TimeZone.getTimeZone("UTC"));
+ cal.clear();
+ cal.set(1982, 5 - 1, 3); // Java's months are zero-based...
- TestBean expected = new TestBean("Ola Bini", 24, cal.getTime());
- assertEquals(
- expected,
- construct("--- !!org.yaml.snakeyaml.constructor.TestBean\nname: Ola Bini\nage: 24\nborn: 1982-05-03\n"));
- }
+ TestBean expected = new TestBean("Ola Bini", 24, cal.getTime());
+ assertEquals(expected, construct(
+ "--- !!org.yaml.snakeyaml.constructor.TestBean\nname: Ola Bini\nage: 24\nborn: 1982-05-03\n"));
+ }
- public void testWrongName() {
- try {
- construct("--- !!org.yaml.snakeyaml.constructor.TestBean\nwrongName: No one\nage: 24\nborn: 1982-05-03\n");
- fail("IntrospectionException expected.");
- } catch (Exception e) {
- // TODO improve the error message - the pointer should be at the
- // property name, not value
- assertEquals(
- "Cannot create property=wrongName for JavaBean=#<org.jvyaml.TestBean name=\"null\" age=0 born=\"null\">\n"
- + " in 'string', line 1, column 5:\n"
- + " --- !!org.yaml.snakeyaml.constructor ... \n"
- + " ^\n"
- + "Unable to find property 'wrongName' on class: org.yaml.snakeyaml.constructor.TestBean\n"
- + " in 'string', line 2, column 12:\n"
- + " wrongName: No one\n"
- + " ^\n", e.getMessage());
- }
+ public void testWrongName() {
+ try {
+ construct(
+ "--- !!org.yaml.snakeyaml.constructor.TestBean\nwrongName: No one\nage: 24\nborn: 1982-05-03\n");
+ fail("IntrospectionException expected.");
+ } catch (Exception e) {
+ // TODO improve the error message - the pointer should be at the
+ // property name, not value
+ assertEquals(
+ "Cannot create property=wrongName for JavaBean=#<org.jvyaml.TestBean name=\"null\" age=0 born=\"null\">\n"
+ + " in 'string', line 1, column 5:\n"
+ + " --- !!org.yaml.snakeyaml.constructor ... \n" + " ^\n"
+ + "Unable to find property 'wrongName' on class: org.yaml.snakeyaml.constructor.TestBean\n"
+ + " in 'string', line 2, column 12:\n" + " wrongName: No one\n"
+ + " ^\n",
+ e.getMessage());
}
+ }
- private Object construct(String data) {
- Yaml yaml = new Yaml();
- return yaml.load(data);
- }
+ private Object construct(String data) {
+ Yaml yaml = new Yaml();
+ return yaml.load(data);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/CustomClassLoaderConstructorTest.java b/src/test/java/org/yaml/snakeyaml/constructor/CustomClassLoaderConstructorTest.java
index c236e234..2287aa9a 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/CustomClassLoaderConstructorTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/CustomClassLoaderConstructorTest.java
@@ -1,83 +1,81 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class CustomClassLoaderConstructorTest extends TestCase {
- public void testGetClassForNameNull() {
- try {
- new CustomClassLoaderConstructor(null);
- fail();
- } catch (Exception e) {
- assertEquals("Loader must be provided.", e.getMessage());
- }
+ public void testGetClassForNameNull() {
+ try {
+ new CustomClassLoaderConstructor(null);
+ fail();
+ } catch (Exception e) {
+ assertEquals("Loader must be provided.", e.getMessage());
}
+ }
- public void testGetClassForName() {
- CustomClassLoaderConstructor constr = new CustomClassLoaderConstructor(
- CustomClassLoaderConstructorTest.class.getClassLoader());
- Yaml yaml = new Yaml(constr);
- String s = (String) yaml.load("abc");
- assertEquals("abc", s);
- }
+ public void testGetClassForName() {
+ CustomClassLoaderConstructor constr =
+ new CustomClassLoaderConstructor(CustomClassLoaderConstructorTest.class.getClassLoader());
+ Yaml yaml = new Yaml(constr);
+ String s = yaml.load("abc");
+ assertEquals("abc", s);
+ }
- public void testGetClassForNameWithRoot() throws ClassNotFoundException {
- Class<?> clazz = Class.forName(
- "org.yaml.snakeyaml.constructor.CustomClassLoaderConstructorTest$LoaderBean", true,
- CustomClassLoaderConstructorTest.class.getClassLoader());
- CustomClassLoaderConstructor constr = new CustomClassLoaderConstructor(clazz,
- CustomClassLoaderConstructorTest.class.getClassLoader());
- Yaml yaml = new Yaml(constr);
- LoaderBean bean = (LoaderBean) yaml.load("{name: Andrey, number: 555}");
- assertEquals("Andrey", bean.getName());
- assertEquals(555, bean.getNumber());
- }
+ public void testGetClassForNameWithRoot() throws ClassNotFoundException {
+ Class<?> clazz =
+ Class.forName("org.yaml.snakeyaml.constructor.CustomClassLoaderConstructorTest$LoaderBean",
+ true, CustomClassLoaderConstructorTest.class.getClassLoader());
+ CustomClassLoaderConstructor constr = new CustomClassLoaderConstructor(clazz,
+ CustomClassLoaderConstructorTest.class.getClassLoader());
+ Yaml yaml = new Yaml(constr);
+ LoaderBean bean = yaml.load("{name: Andrey, number: 555}");
+ assertEquals("Andrey", bean.getName());
+ assertEquals(555, bean.getNumber());
+ }
- public void testGetClassForNameBean() {
- CustomClassLoaderConstructor constr = new CustomClassLoaderConstructor(
- CustomClassLoaderConstructorTest.class.getClassLoader());
- Yaml yaml = new Yaml(constr);
- LoaderBean bean = (LoaderBean) yaml
- .load("!!org.yaml.snakeyaml.constructor.CustomClassLoaderConstructorTest$LoaderBean {name: Andrey, number: 555}");
- assertEquals("Andrey", bean.getName());
- assertEquals(555, bean.getNumber());
- }
+ public void testGetClassForNameBean() {
+ CustomClassLoaderConstructor constr =
+ new CustomClassLoaderConstructor(CustomClassLoaderConstructorTest.class.getClassLoader());
+ Yaml yaml = new Yaml(constr);
+ LoaderBean bean = yaml.load(
+ "!!org.yaml.snakeyaml.constructor.CustomClassLoaderConstructorTest$LoaderBean {name: Andrey, number: 555}");
+ assertEquals("Andrey", bean.getName());
+ assertEquals(555, bean.getNumber());
+ }
- public static class LoaderBean {
- private String name;
- private int number;
+ public static class LoaderBean {
- public String getName() {
- return name;
- }
+ private String name;
+ private int number;
- public void setName(String name) {
- this.name = name;
- }
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
- public int getNumber() {
- return number;
- }
+ public int getNumber() {
+ return number;
+ }
- public void setNumber(int number) {
- this.number = number;
- }
+ public void setNumber(int number) {
+ this.number = number;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/FilterClassesConstructorTest.java b/src/test/java/org/yaml/snakeyaml/constructor/FilterClassesConstructorTest.java
index 734a58e4..edf1e192 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/FilterClassesConstructorTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/FilterClassesConstructorTest.java
@@ -1,74 +1,74 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class FilterClassesConstructorTest extends TestCase {
- public void testGetClassForName() {
- Yaml yaml = new Yaml(new FilterConstructor(true));
- String input = "!!org.yaml.snakeyaml.constructor.FilterClassesConstructorTest$FilteredBean {name: Andrey, number: 543}";
- try {
- yaml.load(input);
- fail("Filter is expected.");
- } catch (Exception e) {
- assertTrue(e.getMessage().contains("Filter is applied."));
- }
- yaml = new Yaml(new FilterConstructor(false));
- FilteredBean s = (FilteredBean) yaml.load(input);
- assertEquals("Andrey", s.getName());
+ public void testGetClassForName() {
+ Yaml yaml = new Yaml(new FilterConstructor(true));
+ String input =
+ "!!org.yaml.snakeyaml.constructor.FilterClassesConstructorTest$FilteredBean {name: Andrey, number: 543}";
+ try {
+ yaml.load(input);
+ fail("Filter is expected.");
+ } catch (Exception e) {
+ assertTrue(e.getMessage().contains("Filter is applied."));
}
+ yaml = new Yaml(new FilterConstructor(false));
+ FilteredBean s = yaml.load(input);
+ assertEquals("Andrey", s.getName());
+ }
+
+ class FilterConstructor extends Constructor {
- class FilterConstructor extends Constructor {
- private boolean filter;
+ private final boolean filter;
- public FilterConstructor(boolean f) {
- filter = f;
- }
+ public FilterConstructor(boolean f) {
+ filter = f;
+ }
- @Override
- protected Class<?> getClassForName(String name) throws ClassNotFoundException {
- if (filter && name.startsWith("org.yaml")) {
- throw new RuntimeException("Filter is applied.");
- }
- return super.getClassForName(name);
- }
+ @Override
+ protected Class<?> getClassForName(String name) throws ClassNotFoundException {
+ if (filter && name.startsWith("org.yaml")) {
+ throw new RuntimeException("Filter is applied.");
+ }
+ return super.getClassForName(name);
}
+ }
- public static class FilteredBean {
- private String name;
- private int number;
+ public static class FilteredBean {
- public String getName() {
- return name;
- }
+ private String name;
+ private int number;
- public void setName(String name) {
- this.name = name;
- }
+ public String getName() {
+ return name;
+ }
- public int getNumber() {
- return number;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getNumber() {
+ return number;
+ }
- public void setNumber(int number) {
- this.number = number;
- }
+ public void setNumber(int number) {
+ this.number = number;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/ImplicitTagsTest.java b/src/test/java/org/yaml/snakeyaml/constructor/ImplicitTagsTest.java
index 0c1482de..6f5d7463 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/ImplicitTagsTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/ImplicitTagsTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
@@ -19,9 +17,7 @@ import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions.FlowStyle;
import org.yaml.snakeyaml.TypeDescription;
import org.yaml.snakeyaml.Util;
@@ -31,129 +27,130 @@ import org.yaml.snakeyaml.representer.Representer;
public class ImplicitTagsTest extends TestCase {
- public void testDefaultRepresenter() {
- CarWithWheel car1 = new CarWithWheel();
- car1.setPlate("12-XP-F4");
- Wheel wheel = new Wheel();
- wheel.setId(2);
- car1.setWheel(wheel);
- Map<String, Integer> map = new HashMap<String, Integer>();
- map.put("id", 3);
- car1.setMap(map);
- car1.setPart(new Wheel(4));
- car1.setYear("2008");
- String carYaml1 = new Yaml().dump(car1);
- assertEquals(Util.getLocalResource("constructor/carwheel-without-tags.yaml"), carYaml1);
- CarWithWheel car2 = (CarWithWheel) new Yaml().load(carYaml1);
- String carYaml2 = new Yaml().dump(car2);
- assertEquals(carYaml1, carYaml2);
+ public void testDefaultRepresenter() {
+ CarWithWheel car1 = new CarWithWheel();
+ car1.setPlate("12-XP-F4");
+ Wheel wheel = new Wheel();
+ wheel.setId(2);
+ car1.setWheel(wheel);
+ Map<String, Integer> map = new HashMap<String, Integer>();
+ map.put("id", 3);
+ car1.setMap(map);
+ car1.setPart(new Wheel(4));
+ car1.setYear("2008");
+ String carYaml1 = new Yaml().dump(car1);
+ assertEquals(Util.getLocalResource("constructor/carwheel-without-tags.yaml"), carYaml1);
+ CarWithWheel car2 = new Yaml().load(carYaml1);
+ String carYaml2 = new Yaml().dump(car2);
+ assertEquals(carYaml1, carYaml2);
+ }
+
+ public void testNoRootTag() {
+ CarWithWheel car1 = new CarWithWheel();
+ car1.setPlate("12-XP-F4");
+ Wheel wheel = new Wheel();
+ wheel.setId(2);
+ car1.setWheel(wheel);
+ Map<String, Integer> map = new HashMap<String, Integer>();
+ map.put("id", 3);
+ car1.setMap(map);
+ car1.setYear("2008");
+ String carYaml1 = new Yaml().dumpAs(car1, Tag.MAP, FlowStyle.AUTO);
+ assertEquals(Util.getLocalResource("constructor/car-without-root-tag.yaml"), carYaml1);
+ //
+ Constructor contructor = new Constructor(CarWithWheel.class);
+ CarWithWheel car2 = new Yaml(contructor).load(carYaml1);
+ String carYaml2 = new Yaml().dumpAs(car2, Tag.MAP, FlowStyle.AUTO);
+ assertEquals(carYaml1, carYaml2);
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testRootMap() {
+ Map<Object, Object> car1 = new LinkedHashMap<Object, Object>();
+ Wheel wheel = new Wheel();
+ wheel.setId(2);
+ Map<String, Integer> map = new HashMap<String, Integer>();
+ map.put("id", 3);
+
+ car1.put("wheel", wheel);
+ car1.put("map", map);
+ car1.put("plate", "12-XP-F4");
+
+ String carYaml1 = new Yaml().dump(car1);
+ assertEquals(Util.getLocalResource("constructor/carwheel-root-map.yaml"), carYaml1);
+ Map<Object, Object> car2 = new Yaml().load(carYaml1);
+ assertEquals(car1, car2);
+ assertEquals(carYaml1, new Yaml().dump(car2));
+ }
+
+ public void testLoadClassTag() {
+ Constructor constructor = new Constructor();
+ constructor.addTypeDescription(new TypeDescription(Car.class, "!car"));
+ Yaml yaml = new Yaml(constructor);
+ Car car = yaml.load(Util.getLocalResource("constructor/car-without-tags.yaml"));
+ assertEquals("12-XP-F4", car.getPlate());
+ List<Wheel> wheels = car.getWheels();
+ assertNotNull(wheels);
+ assertEquals(5, wheels.size());
+ Wheel w1 = wheels.get(0);
+ assertEquals(1, w1.getId());
+ //
+ String carYaml1 = new Yaml().dump(car);
+ assertTrue(carYaml1.startsWith("!!org.yaml.snakeyaml.constructor.Car"));
+ //
+ Representer representer = new Representer();
+ representer.addClassTag(Car.class, new Tag("!car"));
+ yaml = new Yaml(representer);
+ String carYaml2 = yaml.dump(car);
+ assertEquals(Util.getLocalResource("constructor/car-without-tags.yaml"), carYaml2);
+ }
+
+ public static class CarWithWheel {
+
+ private String plate;
+ private String year;
+ private Wheel wheel;
+ private Object part;
+ private Map<String, Integer> map;
+
+ public String getPlate() {
+ return plate;
}
- public void testNoRootTag() {
- CarWithWheel car1 = new CarWithWheel();
- car1.setPlate("12-XP-F4");
- Wheel wheel = new Wheel();
- wheel.setId(2);
- car1.setWheel(wheel);
- Map<String, Integer> map = new HashMap<String, Integer>();
- map.put("id", 3);
- car1.setMap(map);
- car1.setYear("2008");
- String carYaml1 = new Yaml().dumpAs(car1, Tag.MAP, FlowStyle.AUTO);
- assertEquals(Util.getLocalResource("constructor/car-without-root-tag.yaml"), carYaml1);
- //
- Constructor contructor = new Constructor(CarWithWheel.class);
- CarWithWheel car2 = (CarWithWheel) new Yaml(contructor).load(carYaml1);
- String carYaml2 = new Yaml().dumpAs(car2, Tag.MAP, FlowStyle.AUTO);
- assertEquals(carYaml1, carYaml2);
+ public void setPlate(String plate) {
+ this.plate = plate;
}
- @SuppressWarnings("unchecked")
- public void testRootMap() {
- Map<Object, Object> car1 = new LinkedHashMap<Object, Object>();
- Wheel wheel = new Wheel();
- wheel.setId(2);
- Map<String, Integer> map = new HashMap<String, Integer>();
- map.put("id", 3);
-
- car1.put("wheel", wheel);
- car1.put("map", map);
- car1.put("plate", "12-XP-F4");
-
- String carYaml1 = new Yaml().dump(car1);
- assertEquals(Util.getLocalResource("constructor/carwheel-root-map.yaml"), carYaml1);
- Map<Object, Object> car2 = (Map<Object, Object>) new Yaml().load(carYaml1);
- assertEquals(car1, car2);
- assertEquals(carYaml1, new Yaml().dump(car2));
+ public Wheel getWheel() {
+ return wheel;
}
- public void testLoadClassTag() {
- Constructor constructor = new Constructor();
- constructor.addTypeDescription(new TypeDescription(Car.class, "!car"));
- Yaml yaml = new Yaml(constructor);
- Car car = (Car) yaml.load(Util.getLocalResource("constructor/car-without-tags.yaml"));
- assertEquals("12-XP-F4", car.getPlate());
- List<Wheel> wheels = car.getWheels();
- assertNotNull(wheels);
- assertEquals(5, wheels.size());
- Wheel w1 = wheels.get(0);
- assertEquals(1, w1.getId());
- //
- String carYaml1 = new Yaml().dump(car);
- assertTrue(carYaml1.startsWith("!!org.yaml.snakeyaml.constructor.Car"));
- //
- Representer representer = new Representer();
- representer.addClassTag(Car.class, new Tag("!car"));
- yaml = new Yaml(representer);
- String carYaml2 = yaml.dump(car);
- assertEquals(Util.getLocalResource("constructor/car-without-tags.yaml"), carYaml2);
+ public void setWheel(Wheel wheel) {
+ this.wheel = wheel;
}
- public static class CarWithWheel {
- private String plate;
- private String year;
- private Wheel wheel;
- private Object part;
- private Map<String, Integer> map;
-
- public String getPlate() {
- return plate;
- }
-
- public void setPlate(String plate) {
- this.plate = plate;
- }
-
- public Wheel getWheel() {
- return wheel;
- }
-
- public void setWheel(Wheel wheel) {
- this.wheel = wheel;
- }
-
- public Map<String, Integer> getMap() {
- return map;
- }
+ public Map<String, Integer> getMap() {
+ return map;
+ }
- public void setMap(Map<String, Integer> map) {
- this.map = map;
- }
+ public void setMap(Map<String, Integer> map) {
+ this.map = map;
+ }
- public Object getPart() {
- return part;
- }
+ public Object getPart() {
+ return part;
+ }
- public void setPart(Object part) {
- this.part = part;
- }
+ public void setPart(Object part) {
+ this.part = part;
+ }
- public String getYear() {
- return year;
- }
+ public String getYear() {
+ return year;
+ }
- public void setYear(String year) {
- this.year = year;
- }
+ public void setYear(String year) {
+ this.year = year;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/IncompleteBeanConstructorTest.java b/src/test/java/org/yaml/snakeyaml/constructor/IncompleteBeanConstructorTest.java
index d3c8ba03..db79b408 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/IncompleteBeanConstructorTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/IncompleteBeanConstructorTest.java
@@ -1,59 +1,56 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.error.YAMLException;
public class IncompleteBeanConstructorTest extends TestCase {
- public void testRepresentor() {
- IncompleteJavaBean bean = new IncompleteJavaBean();
- DumperOptions options = new DumperOptions();
- options.setAllowReadOnlyProperties(true);
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(bean);
- String className = this.getClass().getPackage().getName();
- assertEquals("!!" + className + ".IncompleteJavaBean {name: No name}\n", output);
- }
+ public void testRepresentor() {
+ IncompleteJavaBean bean = new IncompleteJavaBean();
+ DumperOptions options = new DumperOptions();
+ options.setAllowReadOnlyProperties(true);
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(bean);
+ String className = this.getClass().getPackage().getName();
+ assertEquals("!!" + className + ".IncompleteJavaBean {name: No name}\n", output);
+ }
- public void testConstructor() {
- String className = "!!" + this.getClass().getPackage().getName()
- + ".IncompleteJavaBean {number: 2}";
- Yaml yaml = new Yaml();
- IncompleteJavaBean bean = (IncompleteJavaBean) yaml.load(className);
- assertNotNull(bean);
- assertEquals("No name", bean.getName());
- assertEquals(2, bean.obtainNumber());
- }
+ public void testConstructor() {
+ String className =
+ "!!" + this.getClass().getPackage().getName() + ".IncompleteJavaBean {number: 2}";
+ Yaml yaml = new Yaml();
+ IncompleteJavaBean bean = yaml.load(className);
+ assertNotNull(bean);
+ assertEquals("No name", bean.getName());
+ assertEquals(2, bean.obtainNumber());
+ }
- public void testConstructor2() {
- String className = "!!" + this.getClass().getPackage().getName()
- + ".IncompleteJavaBean {number: 2, name: Bill}";
- Yaml yaml = new Yaml();
- try {
- yaml.load(className);
- fail("'name' property does not have setter.");
- } catch (YAMLException e) {
- assertEquals(
- "Unable to find property 'name' on class: org.yaml.snakeyaml.constructor.IncompleteJavaBean",
- e.getCause().getMessage());
- }
+ public void testConstructor2() {
+ String className = "!!" + this.getClass().getPackage().getName()
+ + ".IncompleteJavaBean {number: 2, name: Bill}";
+ Yaml yaml = new Yaml();
+ try {
+ yaml.load(className);
+ fail("'name' property does not have setter.");
+ } catch (YAMLException e) {
+ assertEquals(
+ "No writable property 'name' on class: org.yaml.snakeyaml.constructor.IncompleteJavaBean",
+ e.getCause().getMessage());
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/IncompleteJavaBean.java b/src/test/java/org/yaml/snakeyaml/constructor/IncompleteJavaBean.java
index d849680e..a9dfbc85 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/IncompleteJavaBean.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/IncompleteJavaBean.java
@@ -1,40 +1,39 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
public class IncompleteJavaBean {
- private int number;
- private String name = "No name";
- private float amount;
- public String getName() {
- return name;
- }
+ private int number;
+ private final String name = "No name";
+ private float amount;
- public void setNumber(int number) {
- this.number = number;
- amount += number;
- }
+ public String getName() {
+ return name;
+ }
- public int obtainNumber() {
- return number;
- }
+ public void setNumber(int number) {
+ this.number = number;
+ amount += number;
+ }
- @Override
- public String toString() {
- return "<IncompleteJavaBean name=" + name + ">";
- }
-} \ No newline at end of file
+ public int obtainNumber() {
+ return number;
+ }
+
+ @Override
+ public String toString() {
+ return "<IncompleteJavaBean name=" + name + ">";
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/MockDateBeanConstructorTest.java b/src/test/java/org/yaml/snakeyaml/constructor/MockDateBeanConstructorTest.java
index 9b8d7941..f8846a87 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/MockDateBeanConstructorTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/MockDateBeanConstructorTest.java
@@ -1,72 +1,71 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
import java.util.Date;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class MockDateBeanConstructorTest extends TestCase {
- public void testConstructor() {
- String className = "!!org.yaml.snakeyaml.constructor.MockDateBeanConstructorTest$DateBean {number: 24, date: 2009-07-24}";
- Yaml yaml = new Yaml();
- try {
- yaml.load(className);
- fail("MockDate cannot be constructed.");
- } catch (Exception e) {
- assertEquals(
- "Cannot construct: 'class org.yaml.snakeyaml.constructor.MockDateBeanConstructorTest$MockDate'",
- e.getCause().getMessage());
- }
+ public void testConstructor() {
+ String className =
+ "!!org.yaml.snakeyaml.constructor.MockDateBeanConstructorTest$DateBean {number: 24, date: 2009-07-24}";
+ Yaml yaml = new Yaml();
+ try {
+ yaml.load(className);
+ fail("MockDate cannot be constructed.");
+ } catch (Exception e) {
+ assertEquals(
+ "Cannot construct: 'class org.yaml.snakeyaml.constructor.MockDateBeanConstructorTest$MockDate'",
+ e.getCause().getMessage());
}
+ }
- public static class DateBean {
- private int number;
- private MockDate date;
+ public static class DateBean {
- public int getNumber() {
- return number;
- }
+ private int number;
+ private MockDate date;
+
+ public int getNumber() {
+ return number;
+ }
- public void setNumber(int number) {
- this.number = number;
- }
+ public void setNumber(int number) {
+ this.number = number;
+ }
- public MockDate getDate() {
- return date;
- }
+ public MockDate getDate() {
+ return date;
+ }
- public void setDate(MockDate date) {
- this.date = date;
- }
+ public void setDate(MockDate date) {
+ this.date = date;
+ }
- @Override
- public String toString() {
- return "<DateBean n=" + number + ">";
- }
+ @Override
+ public String toString() {
+ return "<DateBean n=" + number + ">";
}
+ }
+
+ public static class MockDate extends Date {
- public static class MockDate extends Date {
- private static final long serialVersionUID = 621384692653658062L;
+ private static final long serialVersionUID = 621384692653658062L;
- public MockDate(long date) {
- throw new RuntimeException("Test error.");
- }
+ public MockDate(long date) {
+ throw new RuntimeException("Test error.");
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/MyCar.java b/src/test/java/org/yaml/snakeyaml/constructor/MyCar.java
index 4753f3e1..34a7badd 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/MyCar.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/MyCar.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
@@ -19,31 +17,32 @@ import java.util.Date;
import java.util.Map;
public class MyCar {
- private String plate;
- private Map<MyWheel, Date> wheels;
- private Map<String, Integer> windows;
- public String getPlate() {
- return plate;
- }
+ private String plate;
+ private Map<MyWheel, Date> wheels;
+ private Map<String, Integer> windows;
- public void setPlate(String plate) {
- this.plate = plate;
- }
+ public String getPlate() {
+ return plate;
+ }
- public Map<MyWheel, Date> getWheels() {
- return wheels;
- }
+ public void setPlate(String plate) {
+ this.plate = plate;
+ }
- public void setWheels(Map<MyWheel, Date> wheels) {
- this.wheels = wheels;
- }
+ public Map<MyWheel, Date> getWheels() {
+ return wheels;
+ }
- public Map<String, Integer> getWindows() {
- return windows;
- }
+ public void setWheels(Map<MyWheel, Date> wheels) {
+ this.wheels = wheels;
+ }
- public void setWindows(Map<String, Integer> windows) {
- this.windows = windows;
- }
+ public Map<String, Integer> getWindows() {
+ return windows;
+ }
+
+ public void setWindows(Map<String, Integer> windows) {
+ this.windows = windows;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/MyWheel.java b/src/test/java/org/yaml/snakeyaml/constructor/MyWheel.java
index 67fbeaba..098d88c0 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/MyWheel.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/MyWheel.java
@@ -1,65 +1,64 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
public class MyWheel implements Comparable<MyWheel> {
- private int id;
- private String brand;
- public MyWheel() {
- brand = "Pirelli";
- }
+ private int id;
+ private String brand;
- public int getId() {
- return id;
- }
+ public MyWheel() {
+ brand = "Pirelli";
+ }
- public void setId(int id) {
- this.id = id;
- }
+ public int getId() {
+ return id;
+ }
- @Override
- public String toString() {
- return "Wheel id=" + id;
- }
+ public void setId(int id) {
+ this.id = id;
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof MyWheel) {
- MyWheel wheel = (MyWheel) obj;
- return id == wheel.getId();
- } else {
- return false;
- }
- }
+ @Override
+ public String toString() {
+ return "Wheel id=" + id;
+ }
- @Override
- public int hashCode() {
- return new Integer(id).hashCode();
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof MyWheel) {
+ MyWheel wheel = (MyWheel) obj;
+ return id == wheel.getId();
+ } else {
+ return false;
}
+ }
- public String getBrand() {
- return brand;
- }
+ @Override
+ public int hashCode() {
+ return Integer.valueOf(id).hashCode();
+ }
- public void setBrand(String brand) {
- this.brand = brand;
- }
+ public String getBrand() {
+ return brand;
+ }
- public int compareTo(MyWheel arg0) {
- return new Integer(id).compareTo(new Integer(arg0.id));
- }
+ public void setBrand(String brand) {
+ this.brand = brand;
+ }
+
+ public int compareTo(MyWheel arg0) {
+ return Integer.valueOf(id).compareTo(Integer.valueOf(arg0.id));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/Parent1.java b/src/test/java/org/yaml/snakeyaml/constructor/Parent1.java
index 3703dbc0..c8230930 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/Parent1.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/Parent1.java
@@ -1,37 +1,36 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
public class Parent1 {
- private String id;
- private Child1 child;
- public String getId() {
- return id;
- }
+ private String id;
+ private Child1 child;
- public void setId(String id) {
- this.id = id;
- }
+ public String getId() {
+ return id;
+ }
- public Child1 getChild() {
- return child;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- public void setChild(Child1 child) {
- this.child = child;
- }
-} \ No newline at end of file
+ public Child1 getChild() {
+ return child;
+ }
+
+ public void setChild(Child1 child) {
+ this.child = child;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/Person.java b/src/test/java/org/yaml/snakeyaml/constructor/Person.java
index a681ac8d..06ba846f 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/Person.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/Person.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
@@ -19,45 +17,45 @@ package org.yaml.snakeyaml.constructor;
* Test JavaBean
*/
public class Person {
- private String firstName;
- private String lastName;
- private Integer age;
-
- public Person(String firstName, String lastName, Integer age) {
- this.firstName = firstName;
- this.lastName = lastName;
- this.age = age;
- }
-
- public Person() {
- }
-
- public Person(String lastName) {
- this.lastName = lastName;
- }
-
- public String getFirstName() {
- return firstName;
- }
-
- public void setFirstName(String firstName) {
- this.firstName = firstName;
- }
-
- public String getLastName() {
- return lastName;
- }
-
- public void setLastName(String lastName) {
- this.lastName = lastName;
- }
-
- public Integer getAge() {
- return age;
- }
-
- public void setAge(Integer age) {
- this.age = age;
- }
+
+ private String firstName;
+ private String lastName;
+ private Integer age;
+
+ public Person(String firstName, String lastName, Integer age) {
+ this.firstName = firstName;
+ this.lastName = lastName;
+ this.age = age;
+ }
+
+ public Person() {}
+
+ public Person(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public Integer getAge() {
+ return age;
+ }
+
+ public void setAge(Integer age) {
+ this.age = age;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/PrefixConstructorTest.java b/src/test/java/org/yaml/snakeyaml/constructor/PrefixConstructorTest.java
index 6a6a5e06..10ecdaca 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/PrefixConstructorTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/PrefixConstructorTest.java
@@ -1,24 +1,20 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
import java.util.List;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.nodes.Node;
import org.yaml.snakeyaml.nodes.ScalarNode;
@@ -26,111 +22,115 @@ import org.yaml.snakeyaml.nodes.SequenceNode;
import org.yaml.snakeyaml.nodes.Tag;
/**
- * Example to process a family of tags with the same prefix with one constructor
- * (PrefixConstruct)
+ * Example to process a family of tags with the same prefix with one constructor (PrefixConstruct)
*/
public class PrefixConstructorTest extends TestCase {
- @SuppressWarnings("unchecked")
- public void test1() {
- Yaml yaml = new Yaml(new CustomConstructor());
- String input = "- !org.yaml.Foo 123\n- !org.yaml.Bar 456\n- !org.yaml.Exact 789\n- !Immutable [aaa, bbb]";
- List<Extra> list = (List<Extra>) yaml.load(input);
- assertEquals(4, list.size());
- Extra foo = list.get(0);
- assertEquals("Foo", foo.getName());
- assertEquals("123", foo.getValue());
- //
- Extra bar = list.get(1);
- assertEquals("Bar", bar.getName());
- assertEquals("456", bar.getValue());
- //
- Extra item = list.get(2);
- assertEquals("Item", item.getName());
- assertEquals("789", item.getValue());
- //
- Extra immut = list.get(3);
- assertEquals("aaa", immut.getName());
- assertEquals("bbb", immut.getValue());
+ @SuppressWarnings("unchecked")
+ public void test1() {
+ Yaml yaml = new Yaml(new CustomConstructor());
+ String input =
+ "- !org.yaml.Foo 123\n- !org.yaml.Bar 456\n- !org.yaml.Exact 789\n- !Immutable [aaa, bbb]";
+ List<Extra> list = yaml.load(input);
+ assertEquals(4, list.size());
+ Extra foo = list.get(0);
+ assertEquals("Foo", foo.getName());
+ assertEquals("123", foo.getValue());
+ //
+ Extra bar = list.get(1);
+ assertEquals("Bar", bar.getName());
+ assertEquals("456", bar.getValue());
+ //
+ Extra item = list.get(2);
+ assertEquals("Item", item.getName());
+ assertEquals("789", item.getValue());
+ //
+ Extra immut = list.get(3);
+ assertEquals("aaa", immut.getName());
+ assertEquals("bbb", immut.getValue());
+ }
+
+ private class CustomConstructor extends SafeConstructor {
+
+ public CustomConstructor() {
+ // define tags which begin with !org.yaml.
+ String prefix = "!org.yaml.";
+ this.yamlMultiConstructors.put(prefix, new PrefixConstruct(prefix, CustomConstructor.this));
+ this.yamlConstructors.put(null, new ConstructUnknown(CustomConstructor.this));
+ this.yamlConstructors.put(new Tag("!org.yaml.Exact"),
+ new ExactConstruct(CustomConstructor.this));
}
+ }
+
+ /**
+ * Process tags which start with '!org.yaml.'
+ */
+ private class PrefixConstruct extends AbstractConstruct {
- private class CustomConstructor extends SafeConstructor {
- public CustomConstructor() {
- // define tags which begin with !org.yaml.
- String prefix = "!org.yaml.";
- this.yamlMultiConstructors.put(prefix, new PrefixConstruct(prefix,
- CustomConstructor.this));
- this.yamlConstructors.put(null, new ConstructUnknown(CustomConstructor.this));
- this.yamlConstructors.put(new Tag("!org.yaml.Exact"), new ExactConstruct(
- CustomConstructor.this));
- }
+ private final String prefix;
+ private final BaseConstructor con;
+
+ public PrefixConstruct(String prefix, BaseConstructor con) {
+ this.prefix = prefix;
+ this.con = con;
}
- /**
- * Process tags which start with '!org.yaml.'
- */
- private class PrefixConstruct extends AbstractConstruct {
- private String prefix;
- private BaseConstructor con;
-
- public PrefixConstruct(String prefix, BaseConstructor con) {
- this.prefix = prefix;
- this.con = con;
- }
-
- public Object construct(Node node) {
- String suffix = node.getTag().getValue().substring(prefix.length());
- return new Extra(suffix, con.constructScalar((ScalarNode) node).toString());
- }
+ public Object construct(Node node) {
+ String suffix = node.getTag().getValue().substring(prefix.length());
+ return new Extra(suffix, con.constructScalar((ScalarNode) node));
}
+ }
- /**
- * This has more priority then PrefixConstruct
- */
- private class ExactConstruct extends AbstractConstruct {
- private BaseConstructor con;
+ /**
+ * This has more priority then PrefixConstruct
+ */
+ private class ExactConstruct extends AbstractConstruct {
- public ExactConstruct(BaseConstructor con) {
- this.con = con;
- }
+ private final BaseConstructor con;
- public Object construct(Node node) {
- return new Extra("Item", con.constructScalar((ScalarNode) node).toString());
- }
+ public ExactConstruct(BaseConstructor con) {
+ this.con = con;
}
- /**
- * Process unrecognised tags
- */
- private class ConstructUnknown extends AbstractConstruct {
- private BaseConstructor con;
-
- public ConstructUnknown(BaseConstructor con) {
- this.con = con;
- }
-
- @SuppressWarnings("unchecked")
- public Object construct(Node node) {
- List<String> list = (List<String>) con.constructSequence((SequenceNode) node);
- return new Extra(list.get(0), list.get(1));
- }
+ public Object construct(Node node) {
+ return new Extra("Item", con.constructScalar((ScalarNode) node));
}
+ }
+
+ /**
+ * Process unrecognised tags
+ */
+ private class ConstructUnknown extends AbstractConstruct {
- private class Extra {
- private String name;
- private String value;
+ private final BaseConstructor con;
- public Extra(String name, String value) {
- this.name = name;
- this.value = value;
- }
+ public ConstructUnknown(BaseConstructor con) {
+ this.con = con;
+ }
- public String getValue() {
- return value;
- }
+ @SuppressWarnings("unchecked")
+ public Object construct(Node node) {
+ List<String> list = (List<String>) con.constructSequence((SequenceNode) node);
+ return new Extra(list.get(0), list.get(1));
+ }
+ }
+
+ private class Extra {
+
+ private final String name;
+ private final String value;
+
+ public Extra(String name, String value) {
+ this.name = name;
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
- public String getName() {
- return name;
- }
+ public String getName() {
+ return name;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/SafeConstructorTest.java b/src/test/java/org/yaml/snakeyaml/constructor/SafeConstructorTest.java
index 32fb36f8..9fe8a90c 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/SafeConstructorTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/SafeConstructorTest.java
@@ -1,50 +1,45 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class SafeConstructorTest extends TestCase {
- public void testConstructFloat() {
- Yaml yaml = new Yaml();
- assertEquals(3.1416, yaml.load("+3.1416"));
- assertEquals(Double.POSITIVE_INFINITY, yaml.load("+.inf"));
- assertEquals(Double.POSITIVE_INFINITY, yaml.load(".inf"));
- assertEquals(Double.NEGATIVE_INFINITY, yaml.load("-.inf"));
- }
+ public void testConstructFloat() {
+ Yaml yaml = new Yaml();
+ assertEquals(3.1416, yaml.load("+3.1416"));
+ assertEquals(Double.POSITIVE_INFINITY, yaml.load("+.inf"));
+ assertEquals(Double.POSITIVE_INFINITY, yaml.load(".inf"));
+ assertEquals(Double.NEGATIVE_INFINITY, yaml.load("-.inf"));
+ }
- public void testSafeConstruct() {
- Yaml yaml = new Yaml(new SafeConstructor());
- assertEquals(3.1416, yaml.load("+3.1416"));
- }
+ public void testSafeConstruct() {
+ Yaml yaml = new Yaml(new SafeConstructor());
+ assertEquals(3.1416, yaml.load("+3.1416"));
+ }
- public void testSafeConstructJavaBean() {
- Yaml yaml = new Yaml(new SafeConstructor());
- String data = "--- !!org.yaml.snakeyaml.constructor.Person\nfirstName: Andrey\nage: 99";
- try {
- yaml.load(data);
- fail("JavaBeans cannot be created by SafeConstructor.");
- } catch (ConstructorException e) {
- assertTrue(e
- .getMessage()
- .contains(
- "could not determine a constructor for the tag tag:yaml.org,2002:org.yaml.snakeyaml.constructor.Person"));
- }
+ public void testSafeConstructJavaBean() {
+ Yaml yaml = new Yaml(new SafeConstructor());
+ String data = "--- !!org.yaml.snakeyaml.constructor.Person\nfirstName: Andrey\nage: 99";
+ try {
+ yaml.load(data);
+ fail("JavaBeans cannot be created by SafeConstructor.");
+ } catch (ConstructorException e) {
+ assertTrue(e.getMessage().contains(
+ "could not determine a constructor for the tag tag:yaml.org,2002:org.yaml.snakeyaml.constructor.Person"));
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/TestBean.java b/src/test/java/org/yaml/snakeyaml/constructor/TestBean.java
index 31d91941..8a45edec 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/TestBean.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/TestBean.java
@@ -1,83 +1,78 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
import java.util.Date;
-/**
- * @author <a href="mailto:ola.bini@ki.se">Ola Bini</a>
- */
public class TestBean {
- private String name;
- private int age;
- private Date born;
- public TestBean() {
- }
+ private String name;
+ private int age;
+ private Date born;
- public TestBean(final String name, final int age, final Date born) {
- this.name = name;
- this.age = age;
- this.born = born;
- }
+ public TestBean() {}
- public String getName() {
- return this.name;
- }
+ public TestBean(final String name, final int age, final Date born) {
+ this.name = name;
+ this.age = age;
+ this.born = born;
+ }
- public int getAge() {
- return age;
- }
+ public String getName() {
+ return this.name;
+ }
- public Date getBorn() {
- return born;
- }
+ public int getAge() {
+ return age;
+ }
- public void setName(final String name) {
- this.name = name;
- }
+ public Date getBorn() {
+ return born;
+ }
- public void setAge(final int age) {
- this.age = age;
- }
+ public void setName(final String name) {
+ this.name = name;
+ }
- public void setBorn(final Date born) {
- this.born = born;
- }
+ public void setAge(final int age) {
+ this.age = age;
+ }
- public boolean equals(final Object other) {
- boolean ret = this == other;
- if (!ret && other instanceof TestBean) {
- TestBean o = (TestBean) other;
- ret = this.name == null ? o.name == null : this.name.equals(o.name)
- && this.age == o.age && this.born == null ? o.born == null : this.born
- .equals(o.born);
- }
- return ret;
- }
+ public void setBorn(final Date born) {
+ this.born = born;
+ }
- public int hashCode() {
- int val = 3;
- val += 3 * (name == null ? 0 : name.hashCode());
- val += 3 * age;
- val += 3 * (born == null ? 0 : born.hashCode());
- return val;
+ public boolean equals(final Object other) {
+ boolean ret = this == other;
+ if (!ret && other instanceof TestBean) {
+ TestBean o = (TestBean) other;
+ ret = this.name == null ? o.name == null
+ : this.name.equals(o.name) && this.age == o.age && this.born == null ? o.born == null
+ : this.born.equals(o.born);
}
+ return ret;
+ }
- public String toString() {
- return "#<org.jvyaml.TestBean name=\"" + name + "\" age=" + age + " born=\"" + born + "\">";
- }
+ public int hashCode() {
+ int val = 3;
+ val += 3 * (name == null ? 0 : name.hashCode());
+ val += 3 * age;
+ val += 3 * (born == null ? 0 : born.hashCode());
+ return val;
+ }
+
+ public String toString() {
+ return "#<org.jvyaml.TestBean name=\"" + name + "\" age=" + age + " born=\"" + born + "\">";
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/TestBean1.java b/src/test/java/org/yaml/snakeyaml/constructor/TestBean1.java
index be9cf975..173d1453 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/TestBean1.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/TestBean1.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
@@ -19,186 +17,187 @@ import java.math.BigInteger;
import java.util.Date;
public class TestBean1 {
- private String text;
- private String id;
- private Byte byteClass;
- private byte bytePrimitive;
- private Short shortClass;
- private short shortPrimitive;
- private Integer integer;
- private int intPrimitive;
- private Long longClass;
- private long longPrimitive;
- private Boolean booleanClass;
- private boolean booleanPrimitive;
- private Character charClass;
- private char charPrimitive;
- private BigInteger bigInteger;
- private Float floatClass;
- private float floatPrimitive;
- private Double doubleClass;
- private double doublePrimitive;
- private Date date;
- public String publicField;
- static public Integer staticInteger;
-
- public String getText() {
- return text;
- }
-
- public void setText(String text) {
- this.text = text;
- }
-
- public Integer getInteger() {
- return integer;
- }
-
- public void setInteger(Integer integer) {
- this.integer = integer;
- }
-
- public int getIntPrimitive() {
- return intPrimitive;
- }
-
- public void setIntPrimitive(int intPrimitive) {
- this.intPrimitive = intPrimitive;
- }
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public Byte getByteClass() {
- return byteClass;
- }
-
- public void setByteClass(Byte byteClass) {
- this.byteClass = byteClass;
- }
-
- public byte getBytePrimitive() {
- return bytePrimitive;
- }
-
- public void setBytePrimitive(byte bytePrimitive) {
- this.bytePrimitive = bytePrimitive;
- }
-
- public Short getShortClass() {
- return shortClass;
- }
-
- public void setShortClass(Short shortClass) {
- this.shortClass = shortClass;
- }
-
- public short getShortPrimitive() {
- return shortPrimitive;
- }
-
- public void setShortPrimitive(short shortPrimitive) {
- this.shortPrimitive = shortPrimitive;
- }
-
- public Long getLongClass() {
- return longClass;
- }
-
- public void setLongClass(Long longClass) {
- this.longClass = longClass;
- }
-
- public long getLongPrimitive() {
- return longPrimitive;
- }
-
- public void setLongPrimitive(long longPrimitive) {
- this.longPrimitive = longPrimitive;
- }
-
- public Boolean getBooleanClass() {
- return booleanClass;
- }
-
- public void setBooleanClass(Boolean booleanClass) {
- this.booleanClass = booleanClass;
- }
-
- public boolean isBooleanPrimitive() {
- return booleanPrimitive;
- }
-
- public void setBooleanPrimitive(boolean booleanPrimitive) {
- this.booleanPrimitive = booleanPrimitive;
- }
-
- public Character getCharClass() {
- return charClass;
- }
- public void setCharClass(Character charClass) {
- this.charClass = charClass;
- }
+ private String text;
+ private String id;
+ private Byte byteClass;
+ private byte bytePrimitive;
+ private Short shortClass;
+ private short shortPrimitive;
+ private Integer integer;
+ private int intPrimitive;
+ private Long longClass;
+ private long longPrimitive;
+ private Boolean booleanClass;
+ private boolean booleanPrimitive;
+ private Character charClass;
+ private char charPrimitive;
+ private BigInteger bigInteger;
+ private Float floatClass;
+ private float floatPrimitive;
+ private Double doubleClass;
+ private double doublePrimitive;
+ private Date date;
+ public String publicField;
+ static public Integer staticInteger;
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ public Integer getInteger() {
+ return integer;
+ }
+
+ public void setInteger(Integer integer) {
+ this.integer = integer;
+ }
+
+ public int getIntPrimitive() {
+ return intPrimitive;
+ }
+
+ public void setIntPrimitive(int intPrimitive) {
+ this.intPrimitive = intPrimitive;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public Byte getByteClass() {
+ return byteClass;
+ }
+
+ public void setByteClass(Byte byteClass) {
+ this.byteClass = byteClass;
+ }
+
+ public byte getBytePrimitive() {
+ return bytePrimitive;
+ }
+
+ public void setBytePrimitive(byte bytePrimitive) {
+ this.bytePrimitive = bytePrimitive;
+ }
+
+ public Short getShortClass() {
+ return shortClass;
+ }
+
+ public void setShortClass(Short shortClass) {
+ this.shortClass = shortClass;
+ }
+
+ public short getShortPrimitive() {
+ return shortPrimitive;
+ }
+
+ public void setShortPrimitive(short shortPrimitive) {
+ this.shortPrimitive = shortPrimitive;
+ }
+
+ public Long getLongClass() {
+ return longClass;
+ }
+
+ public void setLongClass(Long longClass) {
+ this.longClass = longClass;
+ }
+
+ public long getLongPrimitive() {
+ return longPrimitive;
+ }
+
+ public void setLongPrimitive(long longPrimitive) {
+ this.longPrimitive = longPrimitive;
+ }
+
+ public Boolean getBooleanClass() {
+ return booleanClass;
+ }
+
+ public void setBooleanClass(Boolean booleanClass) {
+ this.booleanClass = booleanClass;
+ }
+
+ public boolean isBooleanPrimitive() {
+ return booleanPrimitive;
+ }
+
+ public void setBooleanPrimitive(boolean booleanPrimitive) {
+ this.booleanPrimitive = booleanPrimitive;
+ }
+
+ public Character getCharClass() {
+ return charClass;
+ }
- public char getCharPrimitive() {
- return charPrimitive;
- }
+ public void setCharClass(Character charClass) {
+ this.charClass = charClass;
+ }
- public void setCharPrimitive(char charPrimitive) {
- this.charPrimitive = charPrimitive;
- }
+ public char getCharPrimitive() {
+ return charPrimitive;
+ }
- public BigInteger getBigInteger() {
- return bigInteger;
- }
+ public void setCharPrimitive(char charPrimitive) {
+ this.charPrimitive = charPrimitive;
+ }
- public void setBigInteger(BigInteger bigInteger) {
- this.bigInteger = bigInteger;
- }
+ public BigInteger getBigInteger() {
+ return bigInteger;
+ }
- public Float getFloatClass() {
- return floatClass;
- }
+ public void setBigInteger(BigInteger bigInteger) {
+ this.bigInteger = bigInteger;
+ }
- public void setFloatClass(Float floatClass) {
- this.floatClass = floatClass;
- }
+ public Float getFloatClass() {
+ return floatClass;
+ }
- public float getFloatPrimitive() {
- return floatPrimitive;
- }
+ public void setFloatClass(Float floatClass) {
+ this.floatClass = floatClass;
+ }
- public void setFloatPrimitive(float floatPrimitive) {
- this.floatPrimitive = floatPrimitive;
- }
+ public float getFloatPrimitive() {
+ return floatPrimitive;
+ }
- public Double getDoubleClass() {
- return doubleClass;
- }
+ public void setFloatPrimitive(float floatPrimitive) {
+ this.floatPrimitive = floatPrimitive;
+ }
- public void setDoubleClass(Double doubleClass) {
- this.doubleClass = doubleClass;
- }
+ public Double getDoubleClass() {
+ return doubleClass;
+ }
- public double getDoublePrimitive() {
- return doublePrimitive;
- }
+ public void setDoubleClass(Double doubleClass) {
+ this.doubleClass = doubleClass;
+ }
- public void setDoublePrimitive(double doublePrimitive) {
- this.doublePrimitive = doublePrimitive;
- }
+ public double getDoublePrimitive() {
+ return doublePrimitive;
+ }
- public Date getDate() {
- return date;
- }
+ public void setDoublePrimitive(double doublePrimitive) {
+ this.doublePrimitive = doublePrimitive;
+ }
- public void setDate(Date date) {
- this.date = date;
- }
-} \ No newline at end of file
+ public Date getDate() {
+ return date;
+ }
+
+ public void setDate(Date date) {
+ this.date = date;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/TypeSafeCollectionsTest.java b/src/test/java/org/yaml/snakeyaml/constructor/TypeSafeCollectionsTest.java
index 8afe3cef..35c56dcb 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/TypeSafeCollectionsTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/TypeSafeCollectionsTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
@@ -19,9 +17,7 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.TypeDescription;
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
@@ -30,74 +26,108 @@ import org.yaml.snakeyaml.representer.Representer;
public class TypeSafeCollectionsTest extends TestCase {
- public void testTypeSafeList() {
- Constructor constructor = new Constructor(Car.class);
- TypeDescription carDescription = new TypeDescription(Car.class);
- carDescription.putListPropertyType("wheels", Wheel.class);
- constructor.addTypeDescription(carDescription);
- Yaml yaml = new Yaml(constructor);
- Car car = (Car) yaml.load(Util.getLocalResource("constructor/car-no-root-class.yaml"));
- assertEquals("12-XP-F4", car.getPlate());
- List<Wheel> wheels = car.getWheels();
- assertNotNull(wheels);
- assertEquals(5, wheels.size());
- for (Wheel wheel : wheels) {
- assertTrue(wheel.getId() > 0);
- }
+ public void testTypeSafeList() {
+ Constructor constructor = new Constructor(Car.class);
+ TypeDescription carDescription = new TypeDescription(Car.class);
+ carDescription.putListPropertyType("wheels", Wheel.class);
+ constructor.addTypeDescription(carDescription);
+ Yaml yaml = new Yaml(constructor);
+ Car car = yaml.load(Util.getLocalResource("constructor/car-no-root-class.yaml"));
+ assertEquals("12-XP-F4", car.getPlate());
+ List<Wheel> wheels = car.getWheels();
+ assertNotNull(wheels);
+ assertEquals(5, wheels.size());
+ for (Wheel wheel : wheels) {
+ assertTrue(wheel.getId() > 0);
+ }
+ }
+
+ public void testTypeSafeMap() {
+ Constructor constructor = new Constructor(MyCar.class);
+ TypeDescription carDescription = new TypeDescription(MyCar.class);
+ carDescription.putMapPropertyType("wheels", MyWheel.class, Object.class);
+ constructor.addTypeDescription(carDescription);
+ Yaml yaml = new Yaml(constructor);
+ MyCar car = yaml.load(Util.getLocalResource("constructor/car-no-root-class-map.yaml"));
+ assertEquals("00-FF-Q2", car.getPlate());
+ Map<MyWheel, Date> wheels = car.getWheels();
+ assertNotNull(wheels);
+ assertEquals(5, wheels.size());
+ for (MyWheel wheel : wheels.keySet()) {
+ assertTrue(wheel.getId() > 0);
+ Date date = wheels.get(wheel);
+ long time = date.getTime();
+ assertEquals("It must be midnight.", 0, time % 10000);
}
+ }
- public void testTypeSafeMap() {
- Constructor constructor = new Constructor(MyCar.class);
- TypeDescription carDescription = new TypeDescription(MyCar.class);
- carDescription.putMapPropertyType("wheels", MyWheel.class, Object.class);
- constructor.addTypeDescription(carDescription);
- Yaml yaml = new Yaml(constructor);
- MyCar car = (MyCar) yaml.load(Util
- .getLocalResource("constructor/car-no-root-class-map.yaml"));
- assertEquals("00-FF-Q2", car.getPlate());
- Map<MyWheel, Date> wheels = car.getWheels();
- assertNotNull(wheels);
- assertEquals(5, wheels.size());
- for (MyWheel wheel : wheels.keySet()) {
- assertTrue(wheel.getId() > 0);
- Date date = wheels.get(wheel);
- long time = date.getTime();
- assertTrue("It must be midnight.", time % 10000 == 0);
- }
+ public void testTypeSafeList2() {
+ Constructor constructor = new Constructor(Car.class);
+ TypeDescription carDescription = new TypeDescription(Car.class);
+ carDescription.addPropertyParameters("wheels", Wheel.class);
+ constructor.addTypeDescription(carDescription);
+ Yaml yaml = new Yaml(constructor);
+ Car car = yaml.load(Util.getLocalResource("constructor/car-no-root-class.yaml"));
+ assertEquals("12-XP-F4", car.getPlate());
+ List<Wheel> wheels = car.getWheels();
+ assertNotNull(wheels);
+ assertEquals(5, wheels.size());
+ for (Wheel wheel : wheels) {
+ assertTrue(wheel.getId() > 0);
}
+ }
- public void testWithGlobalTag() {
- Map<MyWheel, Date> wheels = new TreeMap<MyWheel, Date>();
- long time = 1248212168084L;
- for (int i = 1; i < 6; i++) {
- MyWheel mw = new MyWheel();
- mw.setId(i);
- mw.setBrand(mw.getBrand() + String.valueOf(i));
- wheels.put(mw, new Date(time + i));
- }
- MyCar c = new MyCar();
- c.setPlate("00-FF-Q2");
- c.setWheels(wheels);
- Representer representer = new Representer();
- representer.addClassTag(MyWheel.class, Tag.MAP);
- Yaml yaml = new Yaml(representer);
- String output = yaml.dump(c);
- assertEquals(Util.getLocalResource("javabeans/mycar-with-global-tag1.yaml"), output);
- // load
- Yaml beanLoader = new Yaml();
- MyCar car = beanLoader.loadAs(output, MyCar.class);
- assertNotNull(car);
- assertEquals("00-FF-Q2", car.getPlate());
- assertEquals(5, car.getWheels().size());
- for (Date d : car.getWheels().values()) {
- // give a day for any timezone
- assertTrue(d.before(new Date(time + 1000 * 60 * 60 * 24)));
- assertTrue(d.after(new Date(time)));
- }
- Object wheel = car.getWheels().keySet().iterator().next();
- assertTrue(wheel instanceof MyWheel);
- MyWheel w = (MyWheel) wheel;
- assertEquals(1, w.getId());
- assertEquals("Pirelli1", w.getBrand());
+ public void testTypeSafeMap2() {
+ Constructor constructor = new Constructor(MyCar.class);
+ TypeDescription carDescription = new TypeDescription(MyCar.class);
+ carDescription.addPropertyParameters("wheels", MyWheel.class, Object.class);
+ constructor.addTypeDescription(carDescription);
+ Yaml yaml = new Yaml(constructor);
+ MyCar car = yaml.load(Util.getLocalResource("constructor/car-no-root-class-map.yaml"));
+ assertEquals("00-FF-Q2", car.getPlate());
+ Map<MyWheel, Date> wheels = car.getWheels();
+ assertNotNull(wheels);
+ assertEquals(5, wheels.size());
+ for (MyWheel wheel : wheels.keySet()) {
+ assertTrue(wheel.getId() > 0);
+ Date date = wheels.get(wheel);
+ long time = date.getTime();
+ assertEquals("It must be midnight.", 0, time % 10000);
+ }
+ }
+
+ public void testWithGlobalTag() {
+ Map<MyWheel, Date> wheels = new TreeMap<MyWheel, Date>();
+ long time = 1248212168084L;
+ for (int i = 1; i < 6; i++) {
+ MyWheel mw = new MyWheel();
+ mw.setId(i);
+ mw.setBrand(mw.getBrand() + i);
+ wheels.put(mw, new Date(time + i));
+ }
+ MyCar c = new MyCar();
+ c.setPlate("00-FF-Q2");
+ c.setWheels(wheels);
+ Representer representer = new Representer();
+ representer.addClassTag(MyWheel.class, Tag.MAP);
+ Yaml yaml = new Yaml(representer);
+ String output = yaml.dump(c);
+ assertEquals(Util.getLocalResource("javabeans/mycar-with-global-tag1.yaml"), output);
+ // load
+ Yaml beanLoader = new Yaml();
+ MyCar car = beanLoader.loadAs(output, MyCar.class);
+ assertNotNull(car);
+ assertEquals("00-FF-Q2", car.getPlate());
+ assertEquals(5, car.getWheels().size());
+ for (Date d : car.getWheels().values()) {
+ // give a day for any timezone
+ assertTrue(d.before(new Date(time + 1000 * 60 * 60 * 24)));
+ assertTrue(d.after(new Date(time)));
}
+ Object wheel = car.getWheels().keySet().iterator().next();
+ assertTrue(wheel instanceof MyWheel);
+ MyWheel w = (MyWheel) wheel;
+ assertEquals(1, w.getId());
+ assertEquals("Pirelli1", w.getBrand());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/VectorTest.java b/src/test/java/org/yaml/snakeyaml/constructor/VectorTest.java
index 0edb6b9f..e413d175 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/VectorTest.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/VectorTest.java
@@ -1,46 +1,42 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
import java.util.Vector;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class VectorTest extends TestCase {
- @SuppressWarnings("unchecked")
- public void testVector() throws ClassNotFoundException {
- // Data to serialise
- Vector<String> srcVector = new Vector<String>();
- srcVector.add("this");
- srcVector.add("is");
- srcVector.add("a");
- srcVector.add("test");
- // System.out.println("Source Vector: " + srcVector);
- Yaml yaml = new Yaml();
- String instance = yaml.dump(srcVector);
- //System.out.println("YAML String: " + instance);
- yaml = new Yaml(new Constructor("java.util.Vector"));
- // If I try to get a Vector I receive a class cast exception.
- Vector<String> vector = (Vector<String>) yaml.load(instance);
- // System.out.println("Vector: " + vector);
- assertEquals(4, vector.size());
- assertEquals("this", vector.firstElement());
- assertEquals("test", vector.lastElement());
- }
+ @SuppressWarnings("unchecked")
+ public void testVector() throws ClassNotFoundException {
+ // Data to serialise
+ Vector<String> srcVector = new Vector<String>();
+ srcVector.add("this");
+ srcVector.add("is");
+ srcVector.add("a");
+ srcVector.add("test");
+ // System.out.println("Source Vector: " + srcVector);
+ Yaml yaml = new Yaml();
+ String instance = yaml.dump(srcVector);
+ // System.out.println("YAML String: " + instance);
+ yaml = new Yaml(new Constructor("java.util.Vector"));
+ // If I try to get a Vector I receive a class cast exception.
+ Vector<String> vector = yaml.load(instance);
+ // System.out.println("Vector: " + vector);
+ assertEquals(4, vector.size());
+ assertEquals("this", vector.firstElement());
+ assertEquals("test", vector.lastElement());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/constructor/Wheel.java b/src/test/java/org/yaml/snakeyaml/constructor/Wheel.java
index 91c740e7..30031151 100644
--- a/src/test/java/org/yaml/snakeyaml/constructor/Wheel.java
+++ b/src/test/java/org/yaml/snakeyaml/constructor/Wheel.java
@@ -1,56 +1,55 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.constructor;
public class Wheel {
- private int id;
- public Wheel(int id) {
- this.id = id;
- }
+ private int id;
- public Wheel() {
- this(0);
- }
+ public Wheel(int id) {
+ this.id = id;
+ }
- public int getId() {
- return id;
- }
+ public Wheel() {
+ this(0);
+ }
- public void setId(int id) {
- this.id = id;
- }
+ public int getId() {
+ return id;
+ }
- @Override
- public String toString() {
- return "Wheel id=" + id;
- }
+ public void setId(int id) {
+ this.id = id;
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof Wheel) {
- Wheel wheel = (Wheel) obj;
- return id == wheel.getId();
- } else {
- return false;
- }
- }
+ @Override
+ public String toString() {
+ return "Wheel id=" + id;
+ }
- @Override
- public int hashCode() {
- return new Integer(id).hashCode();
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof Wheel) {
+ Wheel wheel = (Wheel) obj;
+ return id == wheel.getId();
+ } else {
+ return false;
}
+ }
+
+ @Override
+ public int hashCode() {
+ return Integer.valueOf(id).hashCode();
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/emitter/EmitterMultiLineTest.java b/src/test/java/org/yaml/snakeyaml/emitter/EmitterMultiLineTest.java
index 77c5d2e2..716457af 100644
--- a/src/test/java/org/yaml/snakeyaml/emitter/EmitterMultiLineTest.java
+++ b/src/test/java/org/yaml/snakeyaml/emitter/EmitterMultiLineTest.java
@@ -1,109 +1,106 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.emitter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.FlowStyle;
import org.yaml.snakeyaml.Yaml;
public class EmitterMultiLineTest extends TestCase {
- public void testWriteMultiLineLiteral() {
- String plain = "mama\nmila\nramu";
- Yaml yaml = new Yaml();
- String output = yaml.dump(plain);
- // System.out.println(output);
- assertEquals("|-\n mama\n mila\n ramu\n", output);
- String parsed = (String) yaml.load(output);
- // System.out.println(parsed);
- assertEquals(plain, parsed);
- }
+ public void testWriteMultiLineLiteral() {
+ String plain = "mama\nmila\nramu";
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(plain);
+ // System.out.println(output);
+ assertEquals("|-\n mama\n mila\n ramu\n", output);
+ String parsed = yaml.load(output);
+ // System.out.println(parsed);
+ assertEquals(plain, parsed);
+ }
- public void testWriteMultiLineList() {
- String one = "first\nsecond\nthird";
- String two = "one\ntwo\nthree\n";
- byte[] binary = { 8, 14, 15, 10, 126, 32, 65, 65, 65 };
- List<Object> list = new ArrayList<Object>(2);
- list.add(one);
- list.add(two);
- list.add(binary);
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(FlowStyle.BLOCK);
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(list);
- // System.out.println(output);
- String etalon = "- |-\n first\n second\n third\n- |\n one\n two\n three\n- !!binary |-\n CA4PCn4gQUFB\n";
- assertEquals(etalon, output);
- @SuppressWarnings("unchecked")
- List<Object> parsed = (List<Object>) yaml.load(etalon);
- assertEquals(3, parsed.size());
- assertEquals(one, parsed.get(0));
- assertEquals(two, parsed.get(1));
- assertEquals(new String(binary), new String((byte[]) parsed.get(2)));
- }
+ public void testWriteMultiLineList() {
+ String one = "first\nsecond\nthird";
+ String two = "one\ntwo\nthree\n";
+ byte[] binary = {8, 14, 15, 10, 126, 32, 65, 65, 65};
+ List<Object> list = new ArrayList<Object>(2);
+ list.add(one);
+ list.add(two);
+ list.add(binary);
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(list);
+ // System.out.println(output);
+ String etalon =
+ "- |-\n first\n second\n third\n- |\n one\n two\n three\n- !!binary |-\n CA4PCn4gQUFB\n";
+ assertEquals(etalon, output);
+ @SuppressWarnings("unchecked")
+ List<Object> parsed = yaml.load(etalon);
+ assertEquals(3, parsed.size());
+ assertEquals(one, parsed.get(0));
+ assertEquals(two, parsed.get(1));
+ assertEquals(new String(binary), new String((byte[]) parsed.get(2)));
+ }
- public void testWriteMultiLineLiteralWithClipChomping() {
- String source = "a: 1\nb: |\n mama\n mila\n ramu\n";
- // System.out.println("Source:\n" + source);
- Yaml yaml = new Yaml();
- @SuppressWarnings("unchecked")
- Map<String, Object> parsed = (Map<String, Object>) yaml.load(source);
- String value = (String) parsed.get("b");
- // System.out.println(value);
- assertEquals("mama\nmila\nramu\n", value);
- String dumped = yaml.dump(parsed);
- // System.out.println(dumped);
- assertEquals("a: 1\nb: |\n mama\n mila\n ramu\n", dumped);
- }
+ public void testWriteMultiLineLiteralWithClipChomping() {
+ String source = "a: 1\nb: |\n mama\n mila\n ramu\n";
+ // System.out.println("Source:\n" + source);
+ Yaml yaml = new Yaml();
+ @SuppressWarnings("unchecked")
+ Map<String, Object> parsed = yaml.load(source);
+ String value = (String) parsed.get("b");
+ // System.out.println(value);
+ assertEquals("mama\nmila\nramu\n", value);
+ String dumped = yaml.dump(parsed);
+ // System.out.println(dumped);
+ assertEquals("a: 1\nb: |\n mama\n mila\n ramu\n", dumped);
+ }
- public void testWriteMultiLineQuotedInFlowContext() {
- String source = "{a: 1, b: 'mama\n\n mila\n\n ramu'}\n";
- // System.out.println("Source:\n" + source);
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(FlowStyle.FLOW);
- Yaml yaml = new Yaml(options);
- @SuppressWarnings("unchecked")
- Map<String, Object> parsed = (Map<String, Object>) yaml.load(source);
- String value = (String) parsed.get("b");
- // System.out.println(value);
- assertEquals("mama\nmila\nramu", value);
- String dumped = yaml.dump(parsed);
- // System.out.println(dumped);
- assertEquals("{a: 1, b: \"mama\\nmila\\nramu\"}\n", dumped);
- }
+ public void testWriteMultiLineQuotedInFlowContext() {
+ String source = "{a: 1, b: 'mama\n\n mila\n\n ramu'}\n";
+ // System.out.println("Source:\n" + source);
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(FlowStyle.FLOW);
+ Yaml yaml = new Yaml(options);
+ @SuppressWarnings("unchecked")
+ Map<String, Object> parsed = yaml.load(source);
+ String value = (String) parsed.get("b");
+ // System.out.println(value);
+ assertEquals("mama\nmila\nramu", value);
+ String dumped = yaml.dump(parsed);
+ // System.out.println(dumped);
+ assertEquals("{a: 1, b: \"mama\\nmila\\nramu\"}\n", dumped);
+ }
- public void testWriteMultiLineLiteralWithStripChomping() {
- String source = "a: 1\nb: |-\n mama\n mila\n ramu\n";
- // System.out.println("Source:\n" + source);
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(FlowStyle.BLOCK);
- Yaml yaml = new Yaml(options);
- @SuppressWarnings("unchecked")
- Map<String, Object> parsed = (Map<String, Object>) yaml.load(source);
- String value = (String) parsed.get("b");
- // System.out.println(value);
- assertEquals("mama\nmila\nramu", value);
- String dumped = yaml.dump(parsed);
- // System.out.println(dumped);
- assertEquals(source, dumped);
- }
+ public void testWriteMultiLineLiteralWithStripChomping() {
+ String source = "a: 1\nb: |-\n mama\n mila\n ramu\n";
+ // System.out.println("Source:\n" + source);
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(options);
+ @SuppressWarnings("unchecked")
+ Map<String, Object> parsed = yaml.load(source);
+ String value = (String) parsed.get("b");
+ // System.out.println(value);
+ assertEquals("mama\nmila\nramu", value);
+ String dumped = yaml.dump(parsed);
+ // System.out.println(dumped);
+ assertEquals(source, dumped);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/emitter/EmitterTest.java b/src/test/java/org/yaml/snakeyaml/emitter/EmitterTest.java
index b50310eb..2c5f2432 100644
--- a/src/test/java/org/yaml/snakeyaml/emitter/EmitterTest.java
+++ b/src/test/java/org/yaml/snakeyaml/emitter/EmitterTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.emitter;
@@ -23,13 +21,11 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
-import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.DumperOptions.FlowStyle;
import org.yaml.snakeyaml.DumperOptions.ScalarStyle;
+import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.events.DocumentStartEvent;
import org.yaml.snakeyaml.events.ImplicitTuple;
import org.yaml.snakeyaml.events.ScalarEvent;
@@ -37,227 +33,256 @@ import org.yaml.snakeyaml.events.StreamStartEvent;
public class EmitterTest extends TestCase {
- public void testWriteFolded() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(ScalarStyle.FOLDED);
- String folded = "0123456789 0123456789\n0123456789 0123456789";
- Map<String, String> map = new LinkedHashMap<String, String>();
- map.put("aaa", folded);
- map.put("bbb", "\nbla-bla\n");
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(map);
- String etalon = "\"aaa\": >-\n 0123456789 0123456789\n\n 0123456789 0123456789\n\"bbb\": >2\n\n bla-bla\n";
- assertEquals(etalon, output);
- }
+ public void testWriteFolded() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(ScalarStyle.FOLDED);
+ String folded = "0123456789 0123456789\n0123456789 0123456789";
+ Map<String, String> map = new LinkedHashMap<String, String>();
+ map.put("aaa", folded);
+ map.put("bbb", "\nbla-bla\n");
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(map);
+ String etalon =
+ "\"aaa\": >-\n 0123456789 0123456789\n\n 0123456789 0123456789\n\"bbb\": >2\n\n bla-bla\n";
+ assertEquals(etalon, output);
+ }
- public void testWriteLiteral() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(ScalarStyle.LITERAL);
- String folded = "0123456789 0123456789 0123456789 0123456789";
- Map<String, String> map = new LinkedHashMap<String, String>();
- map.put("aaa", folded);
- map.put("bbb", "\nbla-bla\n");
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(map);
- String etalon = "\"aaa\": |-\n 0123456789 0123456789 0123456789 0123456789\n\"bbb\": |2\n\n bla-bla\n";
- assertEquals(etalon, output);
- }
+ public void testWriteLiteral() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(ScalarStyle.LITERAL);
+ String folded = "0123456789 0123456789 0123456789 0123456789";
+ Map<String, String> map = new LinkedHashMap<String, String>();
+ map.put("aaa", folded);
+ map.put("bbb", "\nbla-bla\n");
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(map);
+ String etalon =
+ "\"aaa\": |-\n 0123456789 0123456789 0123456789 0123456789\n\"bbb\": |2\n\n bla-bla\n";
+ assertEquals(etalon, output);
+ }
- public void testWritePlain() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(ScalarStyle.PLAIN);
- String folded = "0123456789 0123456789\n0123456789 0123456789";
- Map<String, String> map = new LinkedHashMap<String, String>();
- map.put("aaa", folded);
- map.put("bbb", "\nbla-bla");
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(map);
- String etalon = "aaa: |-\n 0123456789 0123456789\n 0123456789 0123456789\nbbb: |2-\n\n bla-bla\n";
- assertEquals(etalon, output);
- }
+ public void testWritePlain() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(ScalarStyle.PLAIN);
+ String folded = "0123456789 0123456789\n0123456789 0123456789";
+ Map<String, String> map = new LinkedHashMap<String, String>();
+ map.put("aaa", folded);
+ map.put("bbb", "\nbla-bla");
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(map);
+ String etalon =
+ "aaa: |-\n 0123456789 0123456789\n 0123456789 0123456789\nbbb: |2-\n\n bla-bla\n";
+ assertEquals(etalon, output);
+ }
- public void testWritePlainPretty() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(ScalarStyle.PLAIN);
- options.setPrettyFlow(true);
+ public void testWritePlainPretty() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(ScalarStyle.PLAIN);
+ options.setPrettyFlow(true);
- String folded = "0123456789 0123456789\n0123456789 0123456789";
- Map<String, String> map = new LinkedHashMap<String, String>();
- map.put("aaa", folded);
- map.put("bbb", "\nbla-bla");
+ String folded = "0123456789 0123456789\n0123456789 0123456789";
+ Map<String, String> map = new LinkedHashMap<String, String>();
+ map.put("aaa", folded);
+ map.put("bbb", "\nbla-bla");
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(map);
- String etalon = "aaa: |-\n 0123456789 0123456789\n 0123456789 0123456789\nbbb: |2-\n\n bla-bla\n";
- assertEquals(etalon, output);
- }
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(map);
+ String etalon =
+ "aaa: |-\n 0123456789 0123456789\n 0123456789 0123456789\nbbb: |2-\n\n bla-bla\n";
+ assertEquals(etalon, output);
+ }
- public void testWriteSingleQuoted() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(ScalarStyle.SINGLE_QUOTED);
- String folded = "0123456789 0123456789\n0123456789 0123456789";
- Map<String, String> map = new LinkedHashMap<String, String>();
- map.put("aaa", folded);
- map.put("bbb", "\nbla-bla");
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(map);
- String etalon = "'aaa': '0123456789 0123456789\n\n 0123456789 0123456789'\n'bbb': '\n\n bla-bla'\n";
- assertEquals(etalon, output);
- }
+ public void testWriteSingleQuoted() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(ScalarStyle.SINGLE_QUOTED);
+ String folded = "0123456789 0123456789\n0123456789 0123456789";
+ Map<String, String> map = new LinkedHashMap<String, String>();
+ map.put("aaa", folded);
+ map.put("bbb", "\nbla-bla");
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(map);
+ String etalon =
+ "'aaa': '0123456789 0123456789\n\n 0123456789 0123456789'\n'bbb': '\n\n bla-bla'\n";
+ assertEquals(etalon, output);
+ }
- public void testWriteDoubleQuoted() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED);
- String folded = "0123456789 0123456789\n0123456789 0123456789";
- Map<String, String> map = new LinkedHashMap<String, String>();
- map.put("aaa", folded);
- map.put("bbb", "\nbla-bla");
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(map);
- String etalon = "\"aaa\": \"0123456789 0123456789\\n0123456789 0123456789\"\n\"bbb\": \"\\nbla-bla\"\n";
- assertEquals(etalon, output);
- }
+ public void testWriteDoubleQuoted() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED);
+ String folded = "0123456789 0123456789\n0123456789 0123456789";
+ Map<String, String> map = new LinkedHashMap<String, String>();
+ map.put("aaa", folded);
+ map.put("bbb", "\nbla-bla");
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(map);
+ String etalon =
+ "\"aaa\": \"0123456789 0123456789\\n0123456789 0123456789\"\n\"bbb\": \"\\nbla-bla\"\n";
+ assertEquals(etalon, output);
+ }
- // Issue #158
- public void testWriteSupplementaryUnicode() throws IOException {
- DumperOptions options = new DumperOptions();
- String burger = new String(Character.toChars(0x1f354));
- String halfBurger = "\uD83C";
- StringWriter output = new StringWriter();
- Emitter emitter = new Emitter(output, options);
+ // Issue #158
+ public void testWriteSupplementaryUnicode() throws IOException {
+ DumperOptions options = new DumperOptions();
+ String burger = new String(Character.toChars(0x1f354));
+ String halfBurger = "\uD83C";
+ StringWriter output = new StringWriter();
+ Emitter emitter = new Emitter(output, options);
- emitter.emit(new StreamStartEvent(null, null));
- emitter.emit(new DocumentStartEvent(null, null, false, null, null));
- emitter.emit(new ScalarEvent(null, null, new ImplicitTuple(true, false), burger
- + halfBurger, null, null, '"'));
- String expected = "! \"\\U0001f354\\ud83c\"";
- assertEquals(expected, output.toString());
- }
+ emitter.emit(new StreamStartEvent(null, null));
+ emitter.emit(new DocumentStartEvent(null, null, false, null, null));
+ emitter.emit(new ScalarEvent(null, null, new ImplicitTuple(true, false), burger + halfBurger,
+ null, null, DumperOptions.ScalarStyle.DOUBLE_QUOTED));
+ String expected = "! \"🍔\\ud83c\"";
+ assertEquals(expected, output.toString());
+ }
- public void testSplitLineExpectFirstFlowSequenceItem() {
+ public void testSplitLineExpectFirstFlowSequenceItem() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
+ options.setWidth(8);
+ Yaml yaml;
+ String output;
+ Map<String, Object> map = new TreeMap<String, Object>();
+ map.put("12345", Collections.singletonList("1111111111"));
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
- options.setWidth(8);
- Yaml yaml;
- String output;
- Map<String, Object> map = new TreeMap<String, Object>();
- map.put("12345", Arrays.asList("1111111111"));
+ // Split lines enabled (default)
+ yaml = new Yaml(options);
+ output = yaml.dump(map);
+ assertEquals("{\"12345\": [\n \"1111111111\"]}\n", output);
- // Split lines enabled (default)
- yaml = new Yaml(options);
- output = yaml.dump(map);
- assertEquals("{\"12345\": [\n \"1111111111\"]}\n", output);
+ // Split lines disabled
+ options.setSplitLines(false);
+ assertFalse(options.getSplitLines());
+ yaml = new Yaml(options);
+ output = yaml.dump(map);
+ assertEquals("{\"12345\": [\"1111111111\"]}\n", output);
+ }
- // Split lines disabled
- options.setSplitLines(false);
- assertFalse(options.getSplitLines());
- yaml = new Yaml(options);
- output = yaml.dump(map);
- assertEquals("{\"12345\": [\"1111111111\"]}\n", output);
- }
+ public void testWriteIndicatorIndent() {
+ DumperOptions options = new DumperOptions();
+ options.setIndent(5);
+ options.setIndicatorIndent(2);
+ options.setDefaultFlowStyle(FlowStyle.BLOCK);
+ List<?> topLevel =
+ Arrays.asList(Collections.singletonMap("k1", "v1"), Collections.singletonMap("k2", "v2"));
+ Map<String, ?> map = Collections.singletonMap("aaa", topLevel);
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(map);
+ String etalon = "aaa:\n - k1: v1\n - k2: v2\n";
+ assertEquals(etalon, output);
+ }
- public void testWriteIndicatorIndent() {
- DumperOptions options = new DumperOptions();
- options.setIndent(5);
- options.setIndicatorIndent(2);
- options.setDefaultFlowStyle(FlowStyle.BLOCK);
- List<?> topLevel = Arrays.asList(Collections.singletonMap("k1", "v1"), Collections.singletonMap("k2", "v2"));
- Map<String, ?> map = Collections.singletonMap("aaa", topLevel);
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(map);
- String etalon = "aaa:\n - k1: v1\n - k2: v2\n";
- assertEquals(etalon, output);
- }
+ public void testSplitLineExpectFlowSequenceItem() {
- public void testSplitLineExpectFlowSequenceItem() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
+ options.setWidth(8);
+ Yaml yaml;
+ String output;
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
- options.setWidth(8);
- Yaml yaml;
- String output;
+ // Split lines enabled (default)
+ yaml = new Yaml(options);
+ output = yaml.dump(Arrays.asList("1111111111", "2222222222"));
+ assertEquals("[\"1111111111\",\n \"2222222222\"]\n", output);
+ output = yaml.dump(Arrays.asList("1", "2"));
+ assertEquals("[\"1\", \"2\"]\n", output);
- // Split lines enabled (default)
- yaml = new Yaml(options);
- output = yaml.dump(Arrays.asList("1111111111", "2222222222"));
- assertEquals("[\"1111111111\",\n \"2222222222\"]\n", output);
- output = yaml.dump(Arrays.asList("1", "2"));
- assertEquals("[\"1\", \"2\"]\n", output);
+ // Split lines disabled
+ options.setSplitLines(false);
+ assertFalse(options.getSplitLines());
+ yaml = new Yaml(options);
+ output = yaml.dump(Arrays.asList("1111111111", "2222222222"));
+ assertEquals("[\"1111111111\", \"2222222222\"]\n", output);
+ output = yaml.dump(Arrays.asList("1", "2"));
+ assertEquals("[\"1\", \"2\"]\n", output);
+ }
- // Split lines disabled
- options.setSplitLines(false);
- assertFalse(options.getSplitLines());
- yaml = new Yaml(options);
- output = yaml.dump(Arrays.asList("1111111111", "2222222222"));
- assertEquals("[\"1111111111\", \"2222222222\"]\n", output);
- output = yaml.dump(Arrays.asList("1", "2"));
- assertEquals("[\"1\", \"2\"]\n", output);
- }
+ public void testSplitLineExpectFirstFlowMappingKey() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
+ options.setWidth(16);
+ Yaml yaml;
+ String output;
+ Map<String, String> nonSplitMap = new TreeMap<String, String>();
+ nonSplitMap.put("3", "4");
+ Map<String, Map<String, String>> nonSplitContainerMap =
+ new TreeMap<String, Map<String, String>>();
+ nonSplitContainerMap.put("1 2", nonSplitMap);
+ Map<String, String> splitMap = new TreeMap<String, String>();
+ splitMap.put("3333333333", "4444444444");
+ Map<String, Map<String, String>> splitContainerMap = new TreeMap<String, Map<String, String>>();
+ splitContainerMap.put("1111111111 2222222222", splitMap);
- public void testSplitLineExpectFirstFlowMappingKey() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
- options.setWidth(16);
- Yaml yaml;
- String output;
- Map<String, String> nonSplitMap = new TreeMap<String, String>();
- nonSplitMap.put("3", "4");
- Map<String, Map<String, String>> nonSplitContainerMap = new TreeMap<String, Map<String, String>>();
- nonSplitContainerMap.put("1 2", nonSplitMap);
- Map<String, String> splitMap = new TreeMap<String, String>();
- splitMap.put("3333333333", "4444444444");
- Map<String, Map<String, String>> splitContainerMap = new TreeMap<String, Map<String, String>>();
- splitContainerMap.put("1111111111 2222222222", splitMap);
+ // Split lines enabled (default)
+ yaml = new Yaml(options);
+ output = yaml.dump(splitContainerMap);
+ assertEquals("{\"1111111111 2222222222\": {\n \"3333333333\": \"4444444444\"}}\n", output);
+ output = yaml.dump(nonSplitContainerMap);
+ assertEquals("{\"1 2\": {\"3\": \"4\"}}\n", output);
- // Split lines enabled (default)
- yaml = new Yaml(options);
- output = yaml.dump(splitContainerMap);
- assertEquals("{\"1111111111 2222222222\": {\n \"3333333333\": \"4444444444\"}}\n", output);
- output = yaml.dump(nonSplitContainerMap);
- assertEquals("{\"1 2\": {\"3\": \"4\"}}\n", output);
+ // Split lines disabled
+ options.setSplitLines(false);
+ assertFalse(options.getSplitLines());
+ yaml = new Yaml(options);
+ output = yaml.dump(splitContainerMap);
+ assertEquals("{\"1111111111 2222222222\": {\"3333333333\": \"4444444444\"}}\n", output);
+ output = yaml.dump(nonSplitContainerMap);
+ assertEquals("{\"1 2\": {\"3\": \"4\"}}\n", output);
+ }
- // Split lines disabled
- options.setSplitLines(false);
- assertFalse(options.getSplitLines());
- yaml = new Yaml(options);
- output = yaml.dump(splitContainerMap);
- assertEquals("{\"1111111111 2222222222\": {\"3333333333\": \"4444444444\"}}\n", output);
- output = yaml.dump(nonSplitContainerMap);
- assertEquals("{\"1 2\": {\"3\": \"4\"}}\n", output);
- }
+ public void testSplitLineExpectFlowMappingKey() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
+ options.setWidth(16);
+ Yaml yaml;
+ String output;
+ Map<String, String> nonSplitMap = new TreeMap<String, String>();
+ nonSplitMap.put("1", "2");
+ nonSplitMap.put("3", "4");
+ Map<String, String> splitMap = new TreeMap<String, String>();
+ splitMap.put("1111111111", "2222222222");
+ splitMap.put("3333333333", "4444444444");
+
+ // Split lines enabled (default)
+ yaml = new Yaml(options);
+ output = yaml.dump(splitMap);
+ assertEquals("{\"1111111111\": \"2222222222\",\n \"3333333333\": \"4444444444\"}\n", output);
+ output = yaml.dump(nonSplitMap);
+ assertEquals("{\"1\": \"2\", \"3\": \"4\"}\n", output);
- public void testSplitLineExpectFlowMappingKey() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
- options.setWidth(16);
- Yaml yaml;
- String output;
- Map<String, String> nonSplitMap = new TreeMap<String, String>();
- nonSplitMap.put("1", "2");
- nonSplitMap.put("3", "4");
- Map<String, String> splitMap = new TreeMap<String, String>();
- splitMap.put("1111111111", "2222222222");
- splitMap.put("3333333333", "4444444444");
+ // Split lines disabled
+ options.setSplitLines(false);
+ assertFalse(options.getSplitLines());
+ yaml = new Yaml(options);
+ output = yaml.dump(splitMap);
+ assertEquals("{\"1111111111\": \"2222222222\", \"3333333333\": \"4444444444\"}\n", output);
+ output = yaml.dump(nonSplitMap);
+ assertEquals("{\"1\": \"2\", \"3\": \"4\"}\n", output);
+ }
- // Split lines enabled (default)
- yaml = new Yaml(options);
- output = yaml.dump(splitMap);
- assertEquals("{\"1111111111\": \"2222222222\",\n \"3333333333\": \"4444444444\"}\n", output);
- output = yaml.dump(nonSplitMap);
- assertEquals("{\"1\": \"2\", \"3\": \"4\"}\n", output);
+ public void testAnchors() {
+ assertEquals("a", Emitter.prepareAnchor("a"));
+ assertEquals("Anchor may not contain spaces: a ", checkAnchor("a "));
+ assertEquals("Anchor may not contain spaces: a \t", checkAnchor("a \t"));
+ assertEquals("Invalid character '[' in the anchor: a[", checkAnchor("a["));
+ assertEquals("Invalid character ']' in the anchor: a]", checkAnchor("a]"));
+ assertEquals("Invalid character '{' in the anchor: {a", checkAnchor("{a"));
+ assertEquals("Invalid character '}' in the anchor: }a", checkAnchor("}a"));
+ assertEquals("Invalid character ',' in the anchor: a,b", checkAnchor("a,b"));
+ assertEquals("Invalid character '*' in the anchor: a*b", checkAnchor("a*b"));
+ assertEquals("Invalid character '&' in the anchor: a&b", checkAnchor("a&b"));
+ }
- // Split lines disabled
- options.setSplitLines(false);
- assertFalse(options.getSplitLines());
- yaml = new Yaml(options);
- output = yaml.dump(splitMap);
- assertEquals("{\"1111111111\": \"2222222222\", \"3333333333\": \"4444444444\"}\n", output);
- output = yaml.dump(nonSplitMap);
- assertEquals("{\"1\": \"2\", \"3\": \"4\"}\n", output);
+ private String checkAnchor(String anchor) {
+ try {
+ Emitter.prepareAnchor(anchor);
+ throw new IllegalStateException("Invalid must not be accepted");
+ } catch (Exception e) {
+ return e.getMessage();
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/emitter/EmptyStringOutputTest.java b/src/test/java/org/yaml/snakeyaml/emitter/EmptyStringOutputTest.java
new file mode 100644
index 00000000..97788741
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/emitter/EmptyStringOutputTest.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.emitter;
+
+import java.io.IOException;
+import java.io.StringWriter;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.events.DocumentStartEvent;
+import org.yaml.snakeyaml.events.ImplicitTuple;
+import org.yaml.snakeyaml.events.ScalarEvent;
+import org.yaml.snakeyaml.events.StreamStartEvent;
+
+/**
+ * https://bitbucket.org/snakeyaml/snakeyaml-engine/issues/23/emitting-only-an-empty-string-adds-to
+ */
+public class EmptyStringOutputTest extends TestCase {
+
+ public void testOutputEmptyStringWithEmitter() throws IOException {
+ assertEquals("The empty output must contain ---", "---", dump(""));
+ }
+
+ public void testOutputStringWithEmitter() throws IOException {
+ assertEquals("The non-empty output must NOT contain ---", "v1234512345", dump("v1234512345"));
+ }
+
+ private String dump(String value) throws IOException {
+ DumperOptions options = new DumperOptions();
+ StringWriter output = new StringWriter();
+ Emitter emitter = new Emitter(output, options);
+ emitter.emit(new StreamStartEvent(null, null));
+ emitter.emit(new DocumentStartEvent(null, null, false, null, null));
+ emitter.emit(new ScalarEvent(null, null, new ImplicitTuple(true, false), value, null, null,
+ DumperOptions.ScalarStyle.PLAIN));
+ return output.toString();
+ }
+}
+
+
diff --git a/src/test/java/org/yaml/snakeyaml/emitter/EventConstructor.java b/src/test/java/org/yaml/snakeyaml/emitter/EventConstructor.java
index feb773d9..b59f3ded 100644
--- a/src/test/java/org/yaml/snakeyaml/emitter/EventConstructor.java
+++ b/src/test/java/org/yaml/snakeyaml/emitter/EventConstructor.java
@@ -1,24 +1,22 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.emitter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
+import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.Version;
import org.yaml.snakeyaml.constructor.AbstractConstruct;
import org.yaml.snakeyaml.constructor.Constructor;
@@ -41,88 +39,86 @@ import org.yaml.snakeyaml.nodes.ScalarNode;
public class EventConstructor extends Constructor {
- public EventConstructor() {
- this.yamlConstructors.put(null, new ConstructEvent());
- }
+ public EventConstructor() {
+ this.yamlConstructors.put(null, new ConstructEvent());
+ }
- private class ConstructEvent extends AbstractConstruct {
+ private class ConstructEvent extends AbstractConstruct {
- @SuppressWarnings("unchecked")
- public Object construct(Node node) {
- Map<Object, Object> mapping;
- if (node instanceof ScalarNode) {
- mapping = new HashMap<Object, Object>();
- } else {
- mapping = constructMapping((MappingNode) node);
- }
- String className = node.getTag().getValue().substring(1) + "Event";
- Event value;
- if (className.equals("AliasEvent")) {
- value = new AliasEvent((String) mapping.get("anchor"), null, null);
- } else if (className.equals("ScalarEvent")) {
- String tag = (String) mapping.get("tag");
- String v = (String) mapping.get("value");
- if (v == null) {
- v = "";
- }
- List<Boolean> implicitList = (List<Boolean>) mapping.get("implicit");
- ImplicitTuple implicit;
- if (implicitList == null) {
- implicit = new ImplicitTuple(false, true);
- } else {
- implicit = new ImplicitTuple((Boolean) implicitList.get(0),
- (Boolean) implicitList.get(1));
- }
- value = new ScalarEvent((String) mapping.get("anchor"), tag, implicit, v, null,
- null, null);
- } else if (className.equals("SequenceStartEvent")) {
- String tag = (String) mapping.get("tag");
- Boolean implicit = (Boolean) mapping.get("implicit");
- if (implicit == null) {
- implicit = true;
- }
- value = new SequenceStartEvent((String) mapping.get("anchor"), tag, implicit, null,
- null, false);
- } else if (className.equals("MappingStartEvent")) {
- String tag = (String) mapping.get("tag");
- Boolean implicit = (Boolean) mapping.get("implicit");
- if (implicit == null) {
- implicit = true;
- }
- value = new MappingStartEvent((String) mapping.get("anchor"), tag, implicit, null,
- null, false);
- } else if (className.equals("DocumentEndEvent")) {
- value = new DocumentEndEvent(null, null, false);
- } else if (className.equals("DocumentStartEvent")) {
- Map<String, String> tags = (Map<String, String>) mapping.get("tags");
- List<Integer> versionList = (List<Integer>) mapping.get("version");
- Version version = null;
- // TODO ???
- if (versionList != null) {
- Integer major = versionList.get(0).intValue();
- if (major != 1) {
- throw new YAMLException("Unsupported version.");
- }
- Integer minor = versionList.get(1).intValue();
- if (minor == 0) {
- version = Version.V1_0;
- } else {
- version = Version.V1_1;
- }
- }
- value = new DocumentStartEvent(null, null, false, version, tags);
- } else if (className.equals("MappingEndEvent")) {
- value = new MappingEndEvent(null, null);
- } else if (className.equals("SequenceEndEvent")) {
- value = new SequenceEndEvent(null, null);
- } else if (className.equals("StreamEndEvent")) {
- value = new StreamEndEvent(null, null);
- } else if (className.equals("StreamStartEvent")) {
- value = new StreamStartEvent(null, null);
- } else {
- throw new UnsupportedOperationException();
- }
- return value;
+ @SuppressWarnings("unchecked")
+ public Object construct(Node node) {
+ Map<Object, Object> mapping;
+ if (node instanceof ScalarNode) {
+ mapping = new HashMap<Object, Object>();
+ } else {
+ mapping = constructMapping((MappingNode) node);
+ }
+ String className = node.getTag().getValue().substring(1) + "Event";
+ Event value;
+ if (className.equals("AliasEvent")) {
+ value = new AliasEvent((String) mapping.get("anchor"), null, null);
+ } else if (className.equals("ScalarEvent")) {
+ String tag = (String) mapping.get("tag");
+ String v = (String) mapping.get("value");
+ if (v == null) {
+ v = "";
+ }
+ List<Boolean> implicitList = (List<Boolean>) mapping.get("implicit");
+ ImplicitTuple implicit;
+ if (implicitList == null) {
+ implicit = new ImplicitTuple(false, true);
+ } else {
+ implicit = new ImplicitTuple(implicitList.get(0), implicitList.get(1));
+ }
+ value = new ScalarEvent((String) mapping.get("anchor"), tag, implicit, v, null, null,
+ DumperOptions.ScalarStyle.PLAIN);
+ } else if (className.equals("SequenceStartEvent")) {
+ String tag = (String) mapping.get("tag");
+ Boolean implicit = (Boolean) mapping.get("implicit");
+ if (implicit == null) {
+ implicit = true;
+ }
+ value = new SequenceStartEvent((String) mapping.get("anchor"), tag, implicit, null, null,
+ DumperOptions.FlowStyle.BLOCK);
+ } else if (className.equals("MappingStartEvent")) {
+ String tag = (String) mapping.get("tag");
+ Boolean implicit = (Boolean) mapping.get("implicit");
+ if (implicit == null) {
+ implicit = true;
+ }
+ value = new MappingStartEvent((String) mapping.get("anchor"), tag, implicit, null, null,
+ DumperOptions.FlowStyle.BLOCK);
+ } else if (className.equals("DocumentEndEvent")) {
+ value = new DocumentEndEvent(null, null, false);
+ } else if (className.equals("DocumentStartEvent")) {
+ Map<String, String> tags = (Map<String, String>) mapping.get("tags");
+ List<Integer> versionList = (List<Integer>) mapping.get("version");
+ Version version = null;
+ if (versionList != null) {
+ Integer major = versionList.get(0).intValue();
+ if (major != 1) {
+ throw new YAMLException("Unsupported version.");
+ }
+ Integer minor = versionList.get(1).intValue();
+ if (minor == 0) {
+ version = Version.V1_0;
+ } else {
+ version = Version.V1_1;
+ }
}
+ value = new DocumentStartEvent(null, null, false, version, tags);
+ } else if (className.equals("MappingEndEvent")) {
+ value = new MappingEndEvent(null, null);
+ } else if (className.equals("SequenceEndEvent")) {
+ value = new SequenceEndEvent(null, null);
+ } else if (className.equals("StreamEndEvent")) {
+ value = new StreamEndEvent(null, null);
+ } else if (className.equals("StreamStartEvent")) {
+ value = new StreamStartEvent(null, null);
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ return value;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/emitter/template/MyBean.java b/src/test/java/org/yaml/snakeyaml/emitter/template/MyBean.java
index 188c3861..330ebba9 100644
--- a/src/test/java/org/yaml/snakeyaml/emitter/template/MyBean.java
+++ b/src/test/java/org/yaml/snakeyaml/emitter/template/MyBean.java
@@ -1,93 +1,88 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.emitter.template;
import java.util.ArrayList;
import java.util.List;
-
import org.yaml.snakeyaml.immutable.Point;
public class MyBean {
- private Point point;
- private List<String> list;
- private List<Integer> empty = new ArrayList<Integer>();
- private String id;
- public Point getPoint() {
- return point;
- }
+ private Point point;
+ private List<String> list;
+ private List<Integer> empty = new ArrayList<Integer>();
+ private String id;
- public void setPoint(Point point) {
- this.point = point;
- }
+ public Point getPoint() {
+ return point;
+ }
- public List<String> getList() {
- return list;
- }
+ public void setPoint(Point point) {
+ this.point = point;
+ }
- public void setList(List<String> list) {
- this.list = list;
- }
+ public List<String> getList() {
+ return list;
+ }
- public List<Integer> getEmpty() {
- return empty;
- }
+ public void setList(List<String> list) {
+ this.list = list;
+ }
- public void setEmpty(List<Integer> empty) {
- this.empty = empty;
- }
+ public List<Integer> getEmpty() {
+ return empty;
+ }
- public String getId() {
- return id;
- }
+ public void setEmpty(List<Integer> empty) {
+ this.empty = empty;
+ }
- public void setId(String id) {
- this.id = id;
- }
+ public String getId() {
+ return id;
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof MyBean) {
- MyBean bean = (MyBean) obj;
- if (!id.equals(bean.id)) {
- return false;
- }
- if (!point.equals(bean.point)) {
- return false;
- }
- if (!list.equals(bean.list)) {
- return false;
- }
- if (!empty.equals(bean.empty)) {
- return false;
- }
- return true;
- } else {
- return false;
- }
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- @Override
- public int hashCode() {
- return id.hashCode();
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof MyBean) {
+ MyBean bean = (MyBean) obj;
+ if (!id.equals(bean.id)) {
+ return false;
+ }
+ if (!point.equals(bean.point)) {
+ return false;
+ }
+ if (!list.equals(bean.list)) {
+ return false;
+ }
+ return empty.equals(bean.empty);
+ } else {
+ return false;
}
+ }
- @Override
- public String toString() {
- return id;
- }
+ @Override
+ public int hashCode() {
+ return id.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return id;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/emitter/template/VelocityTest.java b/src/test/java/org/yaml/snakeyaml/emitter/template/VelocityTest.java
index df8b310e..9ae01a97 100644
--- a/src/test/java/org/yaml/snakeyaml/emitter/template/VelocityTest.java
+++ b/src/test/java/org/yaml/snakeyaml/emitter/template/VelocityTest.java
@@ -1,26 +1,22 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.emitter.template;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
-
import junit.framework.TestCase;
-
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
@@ -31,48 +27,49 @@ import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.immutable.Point;
public class VelocityTest extends TestCase {
- public void testNoTemplate() {
- DumperOptions options = new DumperOptions();
- options.setAllowReadOnlyProperties(true);
- Yaml yaml = new Yaml(options);
- String output = yaml.dumpAsMap(createBean());
- // System.out.println(output);
- assertEquals(Util.getLocalResource("template/etalon1.yaml"), output);
- }
- public void testTemplate1() throws Exception {
- VelocityContext context = new VelocityContext();
- MyBean bean = createBean();
- context.put("bean", bean);
- Yaml yaml = new Yaml();
- context.put("list", yaml.dump(bean.getList()));
- VelocityEngine ve = new VelocityEngine();
- ve.setProperty("file.resource.loader.class", ClasspathResourceLoader.class.getName());
- ve.init();
- Template t = ve.getTemplate("template/mybean1.vm");
- StringWriter writer = new StringWriter();
- t.merge(context, writer);
- String output = writer.toString().trim().replaceAll("\\r\\n", "\n");
- // System.out.println(output);
- String etalon = Util.getLocalResource("template/etalon2-template.yaml").trim();
- assertEquals(etalon.length(), output.length());
- assertEquals(etalon, output);
- // parse the YAML document
- Yaml loader = new Yaml();
- MyBean parsedBean = loader.loadAs(output, MyBean.class);
- assertEquals(bean, parsedBean);
- }
+ public void testNoTemplate() {
+ DumperOptions options = new DumperOptions();
+ options.setAllowReadOnlyProperties(true);
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dumpAsMap(createBean());
+ // System.out.println(output);
+ assertEquals(Util.getLocalResource("template/etalon1.yaml"), output);
+ }
+
+ public void testTemplate1() throws Exception {
+ VelocityContext context = new VelocityContext();
+ MyBean bean = createBean();
+ context.put("bean", bean);
+ Yaml yaml = new Yaml();
+ context.put("list", yaml.dump(bean.getList()));
+ VelocityEngine ve = new VelocityEngine();
+ ve.setProperty("file.resource.loader.class", ClasspathResourceLoader.class.getName());
+ ve.init();
+ Template t = ve.getTemplate("template/mybean1.vm");
+ StringWriter writer = new StringWriter();
+ t.merge(context, writer);
+ String output = writer.toString().trim().replaceAll("\\r\\n", "\n");
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("template/etalon2-template.yaml").trim();
+ assertEquals(etalon.length(), output.length());
+ assertEquals(etalon, output);
+ // parse the YAML document
+ Yaml loader = new Yaml();
+ MyBean parsedBean = loader.loadAs(output, MyBean.class);
+ assertEquals(bean, parsedBean);
+ }
- private MyBean createBean() {
- MyBean bean = new MyBean();
- bean.setId("id123");
- List<String> list = new ArrayList<String>();
- list.add("aaa");
- list.add("bbb");
- list.add("ccc");
- bean.setList(list);
- Point p = new Point(1.0, 2.0);
- bean.setPoint(p);
- return bean;
- }
+ private MyBean createBean() {
+ MyBean bean = new MyBean();
+ bean.setId("id123");
+ List<String> list = new ArrayList<String>();
+ list.add("aaa");
+ list.add("bbb");
+ list.add("ccc");
+ bean.setList(list);
+ Point p = new Point(1.0, 2.0);
+ bean.setPoint(p);
+ return bean;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/env/ApplicationProperties.java b/src/test/java/org/yaml/snakeyaml/env/ApplicationProperties.java
new file mode 100644
index 00000000..39842781
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/env/ApplicationProperties.java
@@ -0,0 +1,31 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.env;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Builder
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ApplicationProperties {
+
+ private String kafkaBrokers;
+ private String kafkaTopicName;
+ private String kafkaGroupIdConfig;
+ private Integer workers;
+}
diff --git a/src/test/java/org/yaml/snakeyaml/env/EnvFormatTest.java b/src/test/java/org/yaml/snakeyaml/env/EnvFormatTest.java
new file mode 100644
index 00000000..f6b1854e
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/env/EnvFormatTest.java
@@ -0,0 +1,117 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.env;
+
+import static org.yaml.snakeyaml.env.EnvScalarConstructor.ENV_FORMAT;
+
+import java.util.regex.Matcher;
+import junit.framework.TestCase;
+
+/*
+ * ${VARIABLE:-default} evaluates to default if VARIABLE is unset or empty in the environment.
+ * ${VARIABLE-default} evaluates to default only if VARIABLE is unset in the environment.
+ *
+ * Similarly, the following syntax allows you to specify mandatory variables:
+ *
+ * ${VARIABLE:?err} exits with an error message containing err if VARIABLE is unset or empty in the
+ * environment. ${VARIABLE?err} exits with an error message containing err if VARIABLE is unset in
+ * the environment.
+ */
+public class EnvFormatTest extends TestCase {
+
+ public void testMatchBasic() {
+ assertTrue(ENV_FORMAT.matcher("${V}").matches());
+ assertTrue(ENV_FORMAT.matcher("${PATH}").matches());
+ assertTrue(ENV_FORMAT.matcher("${VARIABLE}").matches());
+ assertTrue(ENV_FORMAT.matcher("${ VARIABLE}").matches());
+ assertTrue(ENV_FORMAT.matcher("${ VARIABLE}").matches());
+ assertTrue(ENV_FORMAT.matcher("${ VARIABLE }").matches());
+ assertTrue(ENV_FORMAT.matcher("${ VARIABLE}").matches());
+ assertTrue(ENV_FORMAT.matcher("${\tVARIABLE }").matches());
+
+ Matcher matcher = ENV_FORMAT.matcher("${VARIABLE}");
+ matcher.matches();
+ assertEquals("VARIABLE", matcher.group("name"));
+ assertNull(matcher.group("value"));
+ assertNull(matcher.group("separator"));
+
+ assertFalse(ENV_FORMAT.matcher("${VARI ABLE}").matches());
+ }
+
+ public void testMatchDefault() {
+ assertTrue(ENV_FORMAT.matcher("${VARIABLE-default}").matches());
+ assertTrue(ENV_FORMAT.matcher("${ VARIABLE-default}").matches());
+ assertTrue(ENV_FORMAT.matcher("${ VARIABLE-default }").matches());
+ assertTrue(ENV_FORMAT.matcher("${ VARIABLE-default}").matches());
+ assertTrue(ENV_FORMAT.matcher("${ VARIABLE-}").matches());
+
+ Matcher matcher = ENV_FORMAT.matcher("${VARIABLE-default}");
+ matcher.matches();
+ assertEquals("VARIABLE", matcher.group("name"));
+ assertEquals("default", matcher.group("value"));
+ assertEquals("-", matcher.group("separator"));
+
+ assertFalse(ENV_FORMAT.matcher("${VARIABLE -default}").matches());
+ assertFalse(ENV_FORMAT.matcher("${VARIABLE - default}").matches());
+ assertFalse(ENV_FORMAT.matcher("${VARIABLE -default}").matches());
+ }
+
+ public void testMatchDefaultOrEmpty() {
+ assertTrue(ENV_FORMAT.matcher("${VARIABLE:-default}").matches());
+ assertTrue(ENV_FORMAT.matcher("${ VARIABLE:-default }").matches());
+ assertTrue(ENV_FORMAT.matcher("${ VARIABLE:-}").matches());
+
+ Matcher matcher = ENV_FORMAT.matcher("${VARIABLE:-default}");
+ matcher.matches();
+ assertEquals("VARIABLE", matcher.group("name"));
+ assertEquals("default", matcher.group("value"));
+ assertEquals(":-", matcher.group("separator"));
+
+ assertFalse(ENV_FORMAT.matcher("${VARIABLE :-default}").matches());
+ assertFalse(ENV_FORMAT.matcher("${VARIABLE : -default}").matches());
+ assertFalse(ENV_FORMAT.matcher("${VARIABLE : - default}").matches());
+ }
+
+ public void testMatchErrorDefaultOrEmpty() {
+ assertTrue(ENV_FORMAT.matcher("${VARIABLE:?err}").matches());
+ assertTrue(ENV_FORMAT.matcher("${ VARIABLE:?err }").matches());
+ assertTrue(ENV_FORMAT.matcher("${ VARIABLE:? }").matches());
+
+ Matcher matcher = ENV_FORMAT.matcher("${VARIABLE:?err}");
+ matcher.matches();
+ assertEquals("VARIABLE", matcher.group("name"));
+ assertEquals("err", matcher.group("value"));
+ assertEquals(":?", matcher.group("separator"));
+
+ assertFalse(ENV_FORMAT.matcher("${ VARIABLE :?err }").matches());
+ assertFalse(ENV_FORMAT.matcher("${ VARIABLE : ?err }").matches());
+ assertFalse(ENV_FORMAT.matcher("${ VARIABLE : ? err }").matches());
+ }
+
+ public void testMatchErrorDefault() {
+ assertTrue(ENV_FORMAT.matcher("${VARIABLE?err}").matches());
+ assertTrue(ENV_FORMAT.matcher("${ VARIABLE:?err }").matches());
+ assertTrue(ENV_FORMAT.matcher("${ VARIABLE:?}").matches());
+
+ Matcher matcher = ENV_FORMAT.matcher("${ VARIABLE?err }");
+ matcher.matches();
+ assertEquals("VARIABLE", matcher.group("name"));
+ assertEquals("err", matcher.group("value"));
+ assertEquals("?", matcher.group("separator"));
+
+ assertFalse(ENV_FORMAT.matcher("${ VARIABLE ?err }").matches());
+ assertFalse(ENV_FORMAT.matcher("${ VARIABLE ?err }").matches());
+ assertFalse(ENV_FORMAT.matcher("${ VARIABLE ? err }").matches());
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/env/EnvLombokTest.java b/src/test/java/org/yaml/snakeyaml/env/EnvLombokTest.java
new file mode 100644
index 00000000..19e2b140
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/env/EnvLombokTest.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.env;
+
+import static org.yaml.snakeyaml.env.EnvScalarConstructor.ENV_FORMAT;
+import static org.yaml.snakeyaml.env.EnvScalarConstructor.ENV_TAG;
+
+import java.util.ArrayList;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.TypeDescription;
+import org.yaml.snakeyaml.Yaml;
+
+public class EnvLombokTest extends TestCase {
+
+ public void testEnvConstructor() {
+ Yaml yaml = new Yaml(new EnvScalarConstructor(new TypeDescription(ApplicationProperties.class),
+ new ArrayList<TypeDescription>(), new LoaderOptions()));
+ yaml.addImplicitResolver(ENV_TAG, ENV_FORMAT, "$");
+ String yamlData =
+ "kafkaBrokers: ${KAFKA_URL:-kafka:9092}\n" + "kafkaGroupIdConfig: keycloak_group_id\n"
+ + "workers: 17\n" + "kafkaTopicName: ${TOPIC_NAME:-keycloakTestTopic}\n";
+ ApplicationProperties props = yaml.load(yamlData);
+ assertEquals("kafka:9092", props.getKafkaBrokers());
+ assertEquals("keycloakTestTopic", props.getKafkaTopicName());
+ assertEquals("keycloak_group_id", props.getKafkaGroupIdConfig());
+ assertEquals(Integer.valueOf(17), props.getWorkers());
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/env/EnvScalarConstructorTest.java b/src/test/java/org/yaml/snakeyaml/env/EnvScalarConstructorTest.java
new file mode 100644
index 00000000..530e3f24
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/env/EnvScalarConstructorTest.java
@@ -0,0 +1,37 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.env;
+
+import junit.framework.TestCase;
+
+public class EnvScalarConstructorTest extends TestCase {
+
+ private static final EnvScalarConstructor env = new EnvScalarConstructor() {
+ @Override
+ public String getEnv(String key) {
+ if (key.endsWith("Empty")) {
+ return "";
+ }
+ if (key.endsWith("Unset")) {
+ return null;
+ }
+ return key + "Value";
+ }
+ };
+
+ public void testEnvConstructor() {
+ assertEquals("URL", env.apply("VAR", "-", "default", "URL"));
+ }
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/env/EnvTagTest.java b/src/test/java/org/yaml/snakeyaml/env/EnvTagTest.java
new file mode 100644
index 00000000..30af22e5
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/env/EnvTagTest.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.env;
+
+import static org.yaml.snakeyaml.env.EnvScalarConstructor.ENV_FORMAT;
+
+import java.io.StringReader;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.nodes.Node;
+
+/**
+ * test that implicit resolver assigns the tag
+ */
+public class EnvTagTest extends TestCase {
+
+ public void testImplicitResolverForEnvConstructor() {
+ Yaml yaml = new Yaml();
+ yaml.addImplicitResolver(EnvScalarConstructor.ENV_TAG, ENV_FORMAT, "$");
+ Node loaded = yaml.compose(new StringReader("${PATH}"));
+ assertEquals(EnvScalarConstructor.ENV_TAG, loaded.getTag());
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/env/EnvVariableTest.java b/src/test/java/org/yaml/snakeyaml/env/EnvVariableTest.java
new file mode 100644
index 00000000..3642e3df
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/env/EnvVariableTest.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.env;
+
+import static org.yaml.snakeyaml.env.EnvScalarConstructor.ENV_FORMAT;
+
+import java.util.Map;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Util;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.error.MissingEnvironmentVariableException;
+
+public class EnvVariableTest extends TestCase {
+
+ // the variables EnvironmentKey1 and EnvironmentEmpty are set by Maven
+ private static final String KEY1 = "EnvironmentKey1";
+ private static final String EMPTY = "EnvironmentEmpty";
+ private static final String VALUE1 = "EnvironmentValue1";
+
+ private String load(String template) {
+ Yaml yaml = new Yaml(new EnvScalarConstructor());
+ yaml.addImplicitResolver(EnvScalarConstructor.ENV_TAG, ENV_FORMAT, "$");
+ String loaded = yaml.load(template);
+ return loaded;
+ }
+
+ public void testEnvironmentSet() {
+ assertEquals("Surefire plugin must set the variable.", VALUE1, System.getenv(KEY1));
+ assertEquals("Surefire plugin must set the variable.", "", System.getenv(EMPTY));
+ }
+
+ public void testEnvConstructor() {
+ assertEquals(VALUE1, load("${EnvironmentKey1}"));
+ assertEquals(VALUE1, load("${EnvironmentKey1-any}"));
+ assertEquals(VALUE1, load("${EnvironmentKey1:-any}"));
+ assertEquals(VALUE1, load("${EnvironmentKey1:?any}"));
+ assertEquals(VALUE1, load("${EnvironmentKey1?any}"));
+ }
+
+ public void testEnvConstructorForEmpty() {
+ assertEquals("", load("${EnvironmentEmpty}"));
+ assertEquals("", load("${EnvironmentEmpty?}"));
+ assertEquals("detected", load("${EnvironmentEmpty:-detected}"));
+ assertEquals("", load("${EnvironmentEmpty-detected}"));
+ assertEquals("", load("${EnvironmentEmpty?detectedError}"));
+ try {
+ load("${EnvironmentEmpty:?detectedError}");
+ } catch (MissingEnvironmentVariableException e) {
+ assertEquals("Empty mandatory variable EnvironmentEmpty: detectedError", e.getMessage());
+ }
+ }
+
+ public void testEnvConstructorForUnset() {
+ assertEquals("", load("${EnvironmentUnset}"));
+ assertEquals("", load("${EnvironmentUnset:- }"));
+ assertEquals("detected", load("${EnvironmentUnset:-detected}"));
+ assertEquals("detected", load("${EnvironmentUnset-detected}"));
+ try {
+ load("${EnvironmentUnset:?detectedError}");
+ } catch (MissingEnvironmentVariableException e) {
+ assertEquals("Missing mandatory variable EnvironmentUnset: detectedError", e.getMessage());
+ }
+ try {
+ load("${EnvironmentUnset?detectedError}");
+ } catch (MissingEnvironmentVariableException e) {
+ assertEquals("Missing mandatory variable EnvironmentUnset: detectedError", e.getMessage());
+ }
+ }
+
+ public void testDockerCompose() {
+ Yaml yaml = new Yaml(new EnvScalarConstructor());
+ yaml.addImplicitResolver(EnvScalarConstructor.ENV_TAG, ENV_FORMAT, "$");
+ String resource = Util.getLocalResource("env/docker-compose.yaml");
+ Map<String, Object> compose = yaml.load(resource);
+ String output = compose.toString();
+ assertTrue(output, output.endsWith(
+ "environment={URL1=EnvironmentValue1, URL2=, URL3=server3, URL4=, URL5=server5, URL6=server6}}}}"));
+ }
+
+ public void testIssue493() {
+ Yaml yaml = new Yaml(new EnvScalarConstructor());
+ yaml.addImplicitResolver(EnvScalarConstructor.ENV_TAG, ENV_FORMAT, "$");
+ String resource = Util.getLocalResource("env/env-493.yaml");
+ Map<String, Object> compose = yaml.load(resource);
+ String output = compose.toString();
+ assertEquals(
+ "{database={url=jdbc:postgresql://localhost:5432/server493, user=user493, password=password493}}",
+ output);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/error/MarkTest.java b/src/test/java/org/yaml/snakeyaml/error/MarkTest.java
index b67d8fa4..fa7b58c5 100644
--- a/src/test/java/org/yaml/snakeyaml/error/MarkTest.java
+++ b/src/test/java/org/yaml/snakeyaml/error/MarkTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.error;
@@ -19,25 +17,45 @@ import junit.framework.TestCase;
public class MarkTest extends TestCase {
- public void testGet_snippet() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- assertEquals(" *The first line.\n ^", mark.get_snippet());
- mark = new Mark("test1", 9, 0, 0, "The first*line.\nThe last line.", 9);
- assertEquals(" The first*line.\n ^", mark.get_snippet());
- }
+ public void testGet_snippet() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ assertEquals(" *The first line.\n ^", mark.get_snippet());
+ mark = new Mark("test1", 0, 0, 0, "The first*line.\nThe last line.".toCharArray(), 9);
+ assertEquals(" The first*line.\n ^", mark.get_snippet());
+ }
- public void testToString() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- String[] lines = mark.toString().split("\n");
- assertEquals(" in test1, line 1, column 1:", lines[0]);
- assertEquals("*The first line.", lines[1].trim());
- assertEquals("^", lines[2].trim());
- }
+ public void testToString() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ String[] lines = mark.toString().split("\n");
+ assertEquals(" in test1, line 1, column 1:", lines[0]);
+ assertEquals("*The first line.", lines[1].trim());
+ assertEquals("^", lines[2].trim());
+ }
- public void testPosition() {
- Mark mark = new Mark("test1", 17, 29, 213, "*The first line.\nThe last line.", 0);
- assertEquals(17, mark.getIndex());
- assertEquals(29, mark.getLine());
- assertEquals(213, mark.getColumn());
+ public void testPosition() {
+ Mark mark = new Mark("test1", 17, 29, 213, "*The first line.\nThe last line.".toCharArray(), 0);
+ assertEquals("index is used in JRuby", 17, mark.getIndex());
+ assertEquals(29, mark.getLine());
+ assertEquals(213, mark.getColumn());
+ }
+
+ public void testGetBuffer() {
+ Mark mark = new Mark("test1", 0, 29, 213, "*The first line.\nThe last line.".toCharArray(), 0);
+ int[] buffer = new int[] {42, 84, 104, 101, 32, 102, 105, 114, 115, 116, 32, 108, 105, 110, 101,
+ 46, 10, 84, 104, 101, 32, 108, 97, 115, 116, 32, 108, 105, 110, 101, 46};
+ assertEquals(buffer.length, mark.getBuffer().length);
+ boolean match = true;
+ for (int i = 0; i < buffer.length; i++) {
+ if (buffer[i] != mark.getBuffer()[i]) {
+ match = false;
+ break;
+ }
}
+ assertTrue(match);
+ }
+
+ public void testGetPointer() {
+ Mark mark = new Mark("test1", 0, 29, 213, "*The first line.\nThe last line.".toCharArray(), 5);
+ assertEquals(5, mark.getPointer());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/error/MarkedYAMLExceptionTest.java b/src/test/java/org/yaml/snakeyaml/error/MarkedYAMLExceptionTest.java
index 0725db24..ce6128fd 100644
--- a/src/test/java/org/yaml/snakeyaml/error/MarkedYAMLExceptionTest.java
+++ b/src/test/java/org/yaml/snakeyaml/error/MarkedYAMLExceptionTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.error;
@@ -19,43 +17,43 @@ import junit.framework.TestCase;
public class MarkedYAMLExceptionTest extends TestCase {
- public void testToString1() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- MarkedYAMLException exception = new MarkedYAMLException(null, null, "Error happened", mark);
- assertTrue(exception.toString().contains("Error happened"));
- assertTrue(exception.toString().contains("The first line"));
- assertTrue(exception.toString(), exception.toString().contains("test1"));
- }
+ public void testToString1() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ MarkedYAMLException exception = new MarkedYAMLException(null, null, "Error happened", mark);
+ assertTrue(exception.toString().contains("Error happened"));
+ assertTrue(exception.toString().contains("The first line"));
+ assertTrue(exception.toString(), exception.toString().contains("test1"));
+ }
- public void testToString2() {
- Mark mark = new Mark("search", 0, 0, 0, "*The first line.\nThe last line.", 0);
- MarkedYAMLException exception = new MarkedYAMLException("See http://www.google.com", mark,
- "Error2 happened", mark);
- assertTrue(exception.toString().contains("Error2 happened"));
- assertTrue(exception.toString().contains("The first line"));
- assertTrue(exception.toString().contains("search"));
- }
+ public void testToString2() {
+ Mark mark = new Mark("search", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ MarkedYAMLException exception =
+ new MarkedYAMLException("See http://www.google.com", mark, "Error2 happened", mark);
+ assertTrue(exception.toString().contains("Error2 happened"));
+ assertTrue(exception.toString().contains("The first line"));
+ assertTrue(exception.toString().contains("search"));
+ }
- public void testToString3() {
- MarkedYAMLException exception = new MarkedYAMLException("See http://www.google.com", null,
- null, null, "Note1");
- assertTrue(exception.toString().contains("Note1"));
- }
+ public void testToString3() {
+ MarkedYAMLException exception =
+ new MarkedYAMLException("See http://www.google.com", null, null, null, "Note1");
+ assertTrue(exception.toString().contains("Note1"));
+ }
- public void testToString4() {
- Mark mark = new Mark("search", 0, 0, 0, "*The first line.\nThe last line.", 0);
- MarkedYAMLException exception = new MarkedYAMLException("See http://www.google.com", mark,
- null, null, null, null);
- assertTrue(exception.toString().contains("first line"));
- }
+ public void testToString4() {
+ Mark mark = new Mark("search", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ MarkedYAMLException exception =
+ new MarkedYAMLException("See http://www.google.com", mark, null, null, null, null);
+ assertTrue(exception.toString().contains("first line"));
+ }
- public void testGetters() {
- Mark mark = new Mark("search", 0, 0, 0, "*The first line.\nThe last line.", 0);
- MarkedYAMLException exception = new MarkedYAMLException("See http://www.google.com", mark,
- "Error2 happened", mark);
- assertEquals("See http://www.google.com", exception.getContext());
- assertEquals(mark, exception.getContextMark());
- assertEquals("Error2 happened", exception.getProblem());
- assertEquals(mark, exception.getProblemMark());
- }
+ public void testGetters() {
+ Mark mark = new Mark("search", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ MarkedYAMLException exception =
+ new MarkedYAMLException("See http://www.google.com", mark, "Error2 happened", mark);
+ assertEquals("See http://www.google.com", exception.getContext());
+ assertEquals(mark, exception.getContextMark());
+ assertEquals("Error2 happened", exception.getProblem());
+ assertEquals(mark, exception.getProblemMark());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/error/WrappedExceptionsTest.java b/src/test/java/org/yaml/snakeyaml/error/WrappedExceptionsTest.java
new file mode 100644
index 00000000..1dd852c6
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/error/WrappedExceptionsTest.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.error;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import org.junit.Test;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Yaml;
+
+public class WrappedExceptionsTest {
+
+ private static final String INVALID_YAML = "!!seq abc";
+
+ @Test
+ public void testWrapped() {
+ try {
+ LoaderOptions options = new LoaderOptions();
+ options.setWrappedToRootException(true);
+ Yaml yaml = new Yaml(options);
+ yaml.load(INVALID_YAML);
+ fail();
+ } catch (YAMLException e) {
+ assertEquals(ClassCastException.class, e.getCause().getClass());
+ }
+ }
+
+ @Test(expected = ClassCastException.class)
+ public void testUnWrapped() {
+ LoaderOptions options = new LoaderOptions();
+ options.setWrappedToRootException(false);
+ Yaml yaml = new Yaml(options);
+ yaml.load(INVALID_YAML);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/events/ScalarEventTest.java b/src/test/java/org/yaml/snakeyaml/events/ScalarEventTest.java
index b167f900..9c1221ff 100644
--- a/src/test/java/org/yaml/snakeyaml/events/ScalarEventTest.java
+++ b/src/test/java/org/yaml/snakeyaml/events/ScalarEventTest.java
@@ -1,35 +1,36 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.events;
+import static org.junit.Assert.assertNotEquals;
+
import junit.framework.TestCase;
+import org.yaml.snakeyaml.DumperOptions;
public class ScalarEventTest extends TestCase {
- public void testToString() {
- ScalarEvent event = new ScalarEvent("a2", "str", new ImplicitTuple(true, true), "text",
- null, null, '"');
- assertEquals(
- "<org.yaml.snakeyaml.events.ScalarEvent(anchor=a2, tag=str, implicit=[true, true], value=text)>",
- event.toString());
- }
+ public void testToString() {
+ ScalarEvent event = new ScalarEvent("a2", "str", new ImplicitTuple(true, true), "text", null,
+ null, DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ assertEquals(
+ "<org.yaml.snakeyaml.events.ScalarEvent(anchor=a2, tag=str, implicit=[true, true], value=text)>",
+ event.toString());
+ }
- public void testNotEqual() {
- ScalarEvent event = new ScalarEvent("a2", "str", new ImplicitTuple(true, true), "text",
- null, null, '"');
- assertFalse(event.equals(event.toString()));
- }
+ public void testNotEqual() {
+ ScalarEvent event = new ScalarEvent("a2", "str", new ImplicitTuple(true, true), "text", null,
+ null, DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ assertNotEquals(event, event.toString());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Box.java b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Box.java
index 5bcc0367..718cb485 100644
--- a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Box.java
+++ b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Box.java
@@ -1,53 +1,52 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.extensions.compactnotation;
public class Box {
- private String id;
- private String name;
- private Item top;
- private Item bottom;
-
- public Box(String id, String name) {
- super();
- this.id = id;
- this.name = name;
- }
-
- public Item getTop() {
- return top;
- }
-
- public void setTop(Item top) {
- this.top = top;
- }
-
- public Item getBottom() {
- return bottom;
- }
-
- public void setBottom(Item bottom) {
- this.bottom = bottom;
- }
-
- public String getId() {
- return id;
- }
-
- public String getName() {
- return name;
- }
+
+ private final String id;
+ private final String name;
+ private Item top;
+ private Item bottom;
+
+ public Box(String id, String name) {
+ super();
+ this.id = id;
+ this.name = name;
+ }
+
+ public Item getTop() {
+ return top;
+ }
+
+ public void setTop(Item top) {
+ this.top = top;
+ }
+
+ public Item getBottom() {
+ return bottom;
+ }
+
+ public void setBottom(Item bottom) {
+ this.bottom = bottom;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/CompactConstructorErrorsTest.java b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/CompactConstructorErrorsTest.java
index 161286ca..f6b05caf 100644
--- a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/CompactConstructorErrorsTest.java
+++ b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/CompactConstructorErrorsTest.java
@@ -1,25 +1,21 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.extensions.compactnotation;
import java.util.List;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.BaseConstructor;
@@ -27,120 +23,113 @@ import org.yaml.snakeyaml.error.YAMLException;
public class CompactConstructorErrorsTest extends TestCase {
- public void test1() {
- BaseConstructor compact = new CompactConstructor();
- Yaml yaml = new Yaml(compact);
- String doc = Util.getLocalResource("compactnotation/error1.yaml");
- try {
- yaml.load(doc);
- fail("Package is not specified.");
- } catch (Exception e) {
- assertEquals("java.lang.ClassNotFoundException: Table", e.getMessage());
- }
- }
-
- private Object load(String fileName) {
- CompactConstructor compact = new PackageCompactConstructor(
- "org.yaml.snakeyaml.extensions.compactnotation");
- Yaml yaml = new Yaml(compact);
- String doc = Util.getLocalResource("compactnotation/" + fileName);
- Object obj = yaml.load(doc);
- assertNotNull(obj);
- return obj;
+ public void test1() {
+ BaseConstructor compact = new CompactConstructor();
+ Yaml yaml = new Yaml(compact);
+ String doc = Util.getLocalResource("compactnotation/error1.yaml");
+ try {
+ yaml.load(doc);
+ fail("Package is not specified.");
+ } catch (Exception e) {
+ assertEquals("java.lang.ClassNotFoundException: Table", e.getMessage());
}
-
- private void failLoad(String fileName, String failure) {
- load(fileName);
- fail(failure);
- }
-
- private void check(String fileName, String failure, String message) {
- check(fileName, failure, message, true);
- }
-
- private void check(String fileName, String failure, String message, boolean exactMatch) {
- try {
- failLoad(fileName, failure);
- } catch (YAMLException e) {
- String eMessage = e.getMessage();
- if (exactMatch) {
- assertEquals(message, eMessage);
- } else {
- assertNotNull("Exception message is NULL", eMessage);
- assertTrue(String.format(
- "\nException message\n%s\ndoes not contain expected value\n%s",
- e.getMessage(), message), eMessage.contains(message));
- }
- } catch (Exception e) {
- fail("Exception must be YAMLException");
- }
- }
-
- public void test2() {
- check("error2.yaml",
- "No single argument constructor provided.",
- "java.lang.NoSuchMethodException: org.yaml.snakeyaml.extensions.compactnotation.Table.<init>(java.lang.String)");
- }
-
- public void test3() {
- check("error3.yaml",
- "In-line parameters can only be Strings.",
- "org.yaml.snakeyaml.error.YAMLException: Cannot set property='size' with value='17' (class java.lang.String) in Row id=id111");
- }
-
- /**
- * Created Map instead of Row
- */
- @SuppressWarnings("unchecked")
- public void test4() {
- Table table = (Table) load("error4.yaml");
- List<Row> rows = table.getRows();
- assertEquals(1, rows.size());
- assertFalse("Row should not be created.", rows.get(0) instanceof Row);
- Map<String, String> map = (Map<String, String>) rows.get(0);
- assertEquals(1, map.size());
- assertEquals("15}", map.get("Row(id111, description = text) {size"));
- }
-
- /**
- * Wrong indent
- */
- @SuppressWarnings("unchecked")
- public void test5() {
- Table table = (Table) load("error5.yaml");
- List<Row> rows = table.getRows();
- assertEquals(1, rows.size());
- assertFalse("Row should not be created.", rows.get(0) instanceof Row);
- Map<String, String> map = (Map<String, String>) rows.get(0);
- assertEquals(4, map.size());
- // System.out.println(map);
- assertNull(map.get(new Row("id222")));
- assertTrue(map.containsKey(new Row("id222")));
- assertEquals(17, map.get("size"));
- }
-
- public void test6() {
- check("error6.yaml",
- "Invalid property.",
- "org.yaml.snakeyaml.error.YAMLException: Unable to find property 'foo' on class: org.yaml.snakeyaml.extensions.compactnotation.Table");
- }
-
- public void test7() {
- check("error7.yaml",
- "Invalid property.",
- "Unable to find property 'foo' on class: org.yaml.snakeyaml.extensions.compactnotation.Table",
- false);
- }
-
- public void test8() {
- check("error8.yaml",
- "No list property",
- "org.yaml.snakeyaml.error.YAMLException: No list property found in class org.yaml.snakeyaml.extensions.compactnotation.Row");
- }
-
- public void test9() {
- check("error9.yaml",
- "Many list properties found",
- "org.yaml.snakeyaml.error.YAMLException: Many list properties found in class org.yaml.snakeyaml.extensions.compactnotation.ManyListsTable; Please override getSequencePropertyName() to specify which property to use.");
+ }
+
+ private Object load(String fileName) {
+ CompactConstructor compact =
+ new PackageCompactConstructor("org.yaml.snakeyaml.extensions.compactnotation");
+ Yaml yaml = new Yaml(compact);
+ String doc = Util.getLocalResource("compactnotation/" + fileName);
+ Object obj = yaml.load(doc);
+ assertNotNull(obj);
+ return obj;
+ }
+
+ private void failLoad(String fileName, String failure) {
+ load(fileName);
+ fail(failure);
+ }
+
+ private void check(String fileName, String failure, String message) {
+ check(fileName, failure, message, true);
+ }
+
+ private void check(String fileName, String failure, String message, boolean exactMatch) {
+ try {
+ failLoad(fileName, failure);
+ } catch (YAMLException e) {
+ String eMessage = e.getMessage();
+ if (exactMatch) {
+ assertEquals(message, eMessage);
+ } else {
+ assertNotNull("Exception message is NULL", eMessage);
+ assertTrue(String.format("\nException message\n%s\ndoes not contain expected value\n%s",
+ e.getMessage(), message), eMessage.contains(message));
+ }
+ } catch (Exception e) {
+ fail("Exception must be YAMLException");
}
+ }
+
+ public void test2() {
+ check("error2.yaml", "No single argument constructor provided.",
+ "java.lang.NoSuchMethodException: org.yaml.snakeyaml.extensions.compactnotation.Table.<init>(java.lang.String)");
+ }
+
+ public void test3() {
+ check("error3.yaml", "In-line parameters can only be Strings.",
+ "org.yaml.snakeyaml.error.YAMLException: Cannot set property='size' with value='17' (class java.lang.String) in Row id=id111");
+ }
+
+ /**
+ * Created Map instead of Row
+ */
+ @SuppressWarnings("unchecked")
+ public void test4() {
+ Table table = (Table) load("error4.yaml");
+ List<Row> rows = table.getRows();
+ assertEquals(1, rows.size());
+ assertFalse("Row should not be created.", rows.get(0) instanceof Row);
+ Map<String, String> map = (Map<String, String>) rows.get(0);
+ assertEquals(1, map.size());
+ assertEquals("15}", map.get("Row(id111, description = text) {size"));
+ }
+
+ /**
+ * Wrong indent
+ */
+ @SuppressWarnings("unchecked")
+ public void test5() {
+ Table table = (Table) load("error5.yaml");
+ List<Row> rows = table.getRows();
+ assertEquals(1, rows.size());
+ assertFalse("Row should not be created.", rows.get(0) instanceof Row);
+ Map<String, String> map = (Map<String, String>) rows.get(0);
+ assertEquals(4, map.size());
+ // System.out.println(map);
+ assertNull(map.get(new Row("id222")));
+ assertTrue(map.containsKey(new Row("id222")));
+ assertEquals(17, map.get("size"));
+ }
+
+ public void test6() {
+ check("error6.yaml", "Invalid property.",
+ "org.yaml.snakeyaml.error.YAMLException: Unable to find property 'foo' on class: org.yaml.snakeyaml.extensions.compactnotation.Table");
+ }
+
+ public void test7() {
+ check("error7.yaml", "Invalid property.",
+ "Unable to find property 'foo' on class: org.yaml.snakeyaml.extensions.compactnotation.Table",
+ false);
+ }
+
+ public void test8() {
+ check("error8.yaml", "No list property",
+ "org.yaml.snakeyaml.error.YAMLException: No list property found in class org.yaml.snakeyaml.extensions.compactnotation.Row");
+ }
+
+ public void test9() {
+ check("error9.yaml", "Many list properties found",
+ "org.yaml.snakeyaml.error.YAMLException: Many list properties found in class org.yaml.snakeyaml.extensions.compactnotation.ManyListsTable; Please override getSequencePropertyName() to specify which property to use.");
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/CompactConstructorExampleTest.java b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/CompactConstructorExampleTest.java
index d8e355c0..bac0cd14 100644
--- a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/CompactConstructorExampleTest.java
+++ b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/CompactConstructorExampleTest.java
@@ -1,180 +1,176 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.extensions.compactnotation;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.Constructor;
public class CompactConstructorExampleTest extends TestCase {
- private Object load(String fileName) {
- CompactConstructor compact = new CompactConstructor();
- Yaml yaml = new Yaml(compact);
- String doc = Util.getLocalResource("compactnotation/" + fileName);
- Object obj = yaml.load(doc);
- assertNotNull(obj);
- return obj;
- }
-
- public void test1() {
- Object obj = load("example1.yaml");
- assertEquals(new Container(), obj);
- }
-
- public void test2() {
- Object obj = load("example2.yaml");
- assertEquals(new Container("title"), obj);
- }
-
- public void test3() {
- Container obj = (Container) load("example3.yaml");
- assertEquals(new Container("title3"), obj);
- assertEquals("title3", obj.getTitle());
- assertEquals("parent", obj.getName());
- assertEquals("123", obj.getId());
- }
-
- public void test4() {
- Object obj = load("example4.yaml");
- // System.out.println(obj);
- Container container = (Container) obj;
- assertNotNull(obj);
- assertEquals(new Container("title4"), obj);
- assertEquals("title4", container.getTitle());
- assertEquals("child4", container.getName());
- assertEquals("444", container.getId());
- }
-
- public void test5() {
- Object obj = load("example5.yaml");
- // System.out.println(obj);
- Container container = (Container) obj;
- assertNotNull(obj);
- assertEquals(new Container("title4"), obj);
- assertEquals("title4", container.getTitle());
- assertEquals("child5", container.getName());
- assertEquals("ID555", container.getId());
+ private Object load(String fileName) {
+ CompactConstructor compact = new CompactConstructor();
+ Yaml yaml = new Yaml(compact);
+ String doc = Util.getLocalResource("compactnotation/" + fileName);
+ Object obj = yaml.load(doc);
+ assertNotNull(obj);
+ return obj;
+ }
+
+ public void test1() {
+ Object obj = load("example1.yaml");
+ assertEquals(new Container(), obj);
+ }
+
+ public void test2() {
+ Object obj = load("example2.yaml");
+ assertEquals(new Container("title"), obj);
+ }
+
+ public void test3() {
+ Container obj = (Container) load("example3.yaml");
+ assertEquals(new Container("title3"), obj);
+ assertEquals("title3", obj.getTitle());
+ assertEquals("parent", obj.getName());
+ assertEquals("123", obj.getId());
+ }
+
+ public void test4() {
+ Object obj = load("example4.yaml");
+ // System.out.println(obj);
+ Container container = (Container) obj;
+ assertNotNull(obj);
+ assertEquals(new Container("title4"), obj);
+ assertEquals("title4", container.getTitle());
+ assertEquals("child4", container.getName());
+ assertEquals("444", container.getId());
+ }
+
+ public void test5() {
+ Object obj = load("example5.yaml");
+ // System.out.println(obj);
+ Container container = (Container) obj;
+ assertNotNull(obj);
+ assertEquals(new Container("title4"), obj);
+ assertEquals("title4", container.getTitle());
+ assertEquals("child5", container.getName());
+ assertEquals("ID555", container.getId());
+ }
+
+ public void test6() {
+ Object obj = load("example6.yaml");
+ // System.out.println(obj);
+ Container container = (Container) obj;
+ assertNotNull(obj);
+ assertEquals(new Container("title4"), obj);
+ assertEquals("title4", container.getTitle());
+ assertEquals("child6", container.getName());
+ assertEquals("ID6", container.getId());
+ }
+
+ public void test7() {
+ Object obj = load("example7.yaml");
+ // System.out.println(obj);
+ Container container = (Container) obj;
+ assertNotNull(obj);
+ assertEquals(new Container("The title"), obj);
+ assertEquals("The title", container.getTitle());
+ assertEquals("child7", container.getName());
+ assertEquals("id7", container.getId());
+ }
+
+ @SuppressWarnings("unchecked")
+ // TODO it is unclear how the result should look like for CON
+ public void test9() {
+ Map<String, Object> map = (Map<String, Object>) load("example9.yaml");
+ assertEquals(1, map.size());
+ Map<Container, Map<String, String>> containers =
+ (Map<Container, Map<String, String>>) map.get("something");
+ // System.out.println(obj);
+ assertEquals(2, containers.size());
+ for (Container c : containers.keySet()) {
+ assertTrue(c.getId().matches("id\\d"));
+ assertEquals(1, containers.get(c).size());
}
-
- public void test6() {
- Object obj = load("example6.yaml");
- // System.out.println(obj);
- Container container = (Container) obj;
- assertNotNull(obj);
- assertEquals(new Container("title4"), obj);
- assertEquals("title4", container.getTitle());
- assertEquals("child6", container.getName());
- assertEquals("ID6", container.getId());
- }
-
- public void test7() {
- Object obj = load("example7.yaml");
- // System.out.println(obj);
- Container container = (Container) obj;
- assertNotNull(obj);
- assertEquals(new Container("The title"), obj);
- assertEquals("The title", container.getTitle());
- assertEquals("child7", container.getName());
- assertEquals("id7", container.getId());
- }
-
- @SuppressWarnings("unchecked")
- // TODO it is unclear how the result should look like for CON
- public void test9() {
- Map<String, Object> map = (Map<String, Object>) load("example9.yaml");
- assertEquals(1, map.size());
- Map<Container, Map<String, String>> containers = (Map<Container, Map<String, String>>) map
- .get("something");
- // System.out.println(obj);
- assertEquals(2, containers.size());
- for (Container c : containers.keySet()) {
- assertTrue(c.getId().matches("id\\d"));
- assertEquals(1, containers.get(c).size());
- }
- }
-
- @SuppressWarnings("unchecked")
- public void test10() {
- Map<String, Object> map = (Map<String, Object>) load("example10.yaml");
- assertEquals(1, map.size());
- List<Container> containers = (List<Container>) map.get("something");
- // System.out.println(obj);
- assertEquals(3, containers.size());
- for (Container c : containers) {
- assertTrue(c.toString(), c.getId().matches("id\\d+"));
- assertTrue(c.toString(), c.getName().matches("child\\d+"));
- // System.out.println(c);
- }
- }
-
- public void test11withoutPackageNames() {
- Constructor compact = new PackageCompactConstructor(
- "org.yaml.snakeyaml.extensions.compactnotation");
- Yaml yaml = new Yaml(compact);
- String doc = Util.getLocalResource("compactnotation/example11.yaml");
- Box box = (Box) yaml.load(doc);
- assertNotNull(box);
- assertEquals("id11", box.getId());
- assertEquals("Main box", box.getName());
- Item top = box.getTop();
- assertEquals("id003", top.getId());
- assertEquals("25.0", top.getPrice());
- assertEquals("parrot", top.getName());
- Item bottom = box.getBottom();
- assertEquals("id004", bottom.getId());
- assertEquals("3.5", bottom.getPrice());
- assertEquals("sweet", bottom.getName());
- }
-
- public void test12withList() {
- Constructor compact = new TableCompactConstructor(
- "org.yaml.snakeyaml.extensions.compactnotation");
- Yaml yaml = new Yaml(compact);
- String doc = Util.getLocalResource("compactnotation/example12.yaml");
- Table table = (Table) yaml.load(doc);
- assertNotNull(table);
- assertEquals("id12", table.getId());
- assertEquals("A table", table.getName());
- List<Row> rows = table.getRows();
- assertEquals(3, rows.size());
- Iterator<Row> iter = rows.iterator();
- Row first = iter.next();
- assertEquals("id111", first.getId());
- assertEquals("I think; therefore I am.", first.getDescription());
- assertEquals(0.125, first.getRatio(), 0.000000001);
- assertEquals(15, first.getSize());
- Row second = iter.next();
- assertEquals("id222", second.getId());
- assertEquals("We do not need new lines here, just replace them all with spaces\n",
- second.getDescription());
- assertEquals(0.333, second.getRatio(), 0.000000001);
- assertEquals(17, second.getSize());
- Row third = iter.next();
- assertEquals("id333", third.getId());
- assertEquals(
- "Please preserve all\nthe lines because they may be\nimportant, but do not include the last one !!!",
- third.getDescription());
- assertEquals(0.88, third.getRatio(), 0.000000001);
- assertEquals(52, third.getSize());
+ }
+
+ @SuppressWarnings("unchecked")
+ public void test10() {
+ Map<String, Object> map = (Map<String, Object>) load("example10.yaml");
+ assertEquals(1, map.size());
+ List<Container> containers = (List<Container>) map.get("something");
+ // System.out.println(obj);
+ assertEquals(3, containers.size());
+ for (Container c : containers) {
+ assertTrue(c.toString(), c.getId().matches("id\\d+"));
+ assertTrue(c.toString(), c.getName().matches("child\\d+"));
+ // System.out.println(c);
}
+ }
+
+ public void test11withoutPackageNames() {
+ Constructor compact =
+ new PackageCompactConstructor("org.yaml.snakeyaml.extensions.compactnotation");
+ Yaml yaml = new Yaml(compact);
+ String doc = Util.getLocalResource("compactnotation/example11.yaml");
+ Box box = yaml.load(doc);
+ assertNotNull(box);
+ assertEquals("id11", box.getId());
+ assertEquals("Main box", box.getName());
+ Item top = box.getTop();
+ assertEquals("id003", top.getId());
+ assertEquals("25.0", top.getPrice());
+ assertEquals("parrot", top.getName());
+ Item bottom = box.getBottom();
+ assertEquals("id004", bottom.getId());
+ assertEquals("3.5", bottom.getPrice());
+ assertEquals("sweet", bottom.getName());
+ }
+
+ public void test12withList() {
+ Constructor compact =
+ new TableCompactConstructor("org.yaml.snakeyaml.extensions.compactnotation");
+ Yaml yaml = new Yaml(compact);
+ String doc = Util.getLocalResource("compactnotation/example12.yaml");
+ Table table = yaml.load(doc);
+ assertNotNull(table);
+ assertEquals("id12", table.getId());
+ assertEquals("A table", table.getName());
+ List<Row> rows = table.getRows();
+ assertEquals(3, rows.size());
+ Iterator<Row> iter = rows.iterator();
+ Row first = iter.next();
+ assertEquals("id111", first.getId());
+ assertEquals("I think; therefore I am.", first.getDescription());
+ assertEquals(0.125, first.getRatio(), 0.000000001);
+ assertEquals(15, first.getSize());
+ Row second = iter.next();
+ assertEquals("id222", second.getId());
+ assertEquals("We do not need new lines here, just replace them all with spaces\n",
+ second.getDescription());
+ assertEquals(0.333, second.getRatio(), 0.000000001);
+ assertEquals(17, second.getSize());
+ Row third = iter.next();
+ assertEquals("id333", third.getId());
+ assertEquals(
+ "Please preserve all\nthe lines because they may be\nimportant, but do not include the last one !!!",
+ third.getDescription());
+ assertEquals(0.88, third.getRatio(), 0.000000001);
+ assertEquals(52, third.getSize());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/CompactConstructorTest.java b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/CompactConstructorTest.java
index 837d463c..b27219d7 100644
--- a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/CompactConstructorTest.java
+++ b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/CompactConstructorTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.extensions.compactnotation;
@@ -19,94 +17,94 @@ import junit.framework.TestCase;
public class CompactConstructorTest extends TestCase {
- public void testNoCompactData() {
- CompactConstructor flow = new CompactConstructor();
- assertNull(flow.getCompactData("scalar"));
- assertNull(flow.getCompactData("123"));
- assertNull(flow.getCompactData("(name=frame,title=My Frame)"));
- assertNull(flow.getCompactData("JFrame name=frame,title=My Frame)"));
- assertNull(flow.getCompactData("JFrame name=frame,title=My Frame"));
- assertNull(flow.getCompactData("JFrame(name=frame,title=My Frame"));
- assertNull(flow.getCompactData("JFrame(name=frame,title=My Frame)b"));
- assertNull(flow.getCompactData("JFrame(name=frame,title=My Frame) "));
- assertNull(flow.getCompactData("JFrame(name=)"));
- assertNull(flow.getCompactData("JFrame(=name)"));
- }
+ public void testNoCompactData() {
+ CompactConstructor flow = new CompactConstructor();
+ assertNull(flow.getCompactData("scalar"));
+ assertNull(flow.getCompactData("123"));
+ assertNull(flow.getCompactData("(name=frame,title=My Frame)"));
+ assertNull(flow.getCompactData("JFrame name=frame,title=My Frame)"));
+ assertNull(flow.getCompactData("JFrame name=frame,title=My Frame"));
+ assertNull(flow.getCompactData("JFrame(name=frame,title=My Frame"));
+ assertNull(flow.getCompactData("JFrame(name=frame,title=My Frame)b"));
+ assertNull(flow.getCompactData("JFrame(name=frame,title=My Frame) "));
+ assertNull(flow.getCompactData("JFrame(name=)"));
+ assertNull(flow.getCompactData("JFrame(=name)"));
+ }
- public void testGetCompactData1() {
- CompactConstructor flow = new CompactConstructor();
- CompactData data = flow.getCompactData("JFrame(name=frame)");
- assertNotNull(data);
- assertEquals("JFrame", data.getPrefix());
- assertEquals(1, data.getProperties().size());
- assertEquals("frame", data.getProperties().get("name"));
- }
+ public void testGetCompactData1() {
+ CompactConstructor flow = new CompactConstructor();
+ CompactData data = flow.getCompactData("JFrame(name=frame)");
+ assertNotNull(data);
+ assertEquals("JFrame", data.getPrefix());
+ assertEquals(1, data.getProperties().size());
+ assertEquals("frame", data.getProperties().get("name"));
+ }
- public void testGetCompactData2() {
- CompactConstructor flow = new CompactConstructor();
- CompactData data = flow.getCompactData("Frame(name=frame,title=My Frame)");
- assertNotNull(data);
- assertEquals("Frame", data.getPrefix());
- assertEquals(2, data.getProperties().size());
- assertEquals("frame", data.getProperties().get("name"));
- assertEquals("My Frame", data.getProperties().get("title"));
+ public void testGetCompactData2() {
+ CompactConstructor flow = new CompactConstructor();
+ CompactData data = flow.getCompactData("Frame(name=frame,title=My Frame)");
+ assertNotNull(data);
+ assertEquals("Frame", data.getPrefix());
+ assertEquals(2, data.getProperties().size());
+ assertEquals("frame", data.getProperties().get("name"));
+ assertEquals("My Frame", data.getProperties().get("title"));
- assertNotNull(flow.getCompactData("JFrame ( name = frame , title = My Frame )"));
- }
+ assertNotNull(flow.getCompactData("JFrame ( name = frame , title = My Frame )"));
+ }
- public void testGetCompactData3() {
- CompactConstructor flow = new CompactConstructor();
- CompactData data = flow
- .getCompactData("JFrame ( name = frame , title = My Frame, number= 123 )");
- assertNotNull(data);
- assertEquals("JFrame", data.getPrefix());
- assertEquals(3, data.getProperties().size());
- assertEquals("frame", data.getProperties().get("name"));
- assertEquals("My Frame", data.getProperties().get("title"));
- assertEquals("123", data.getProperties().get("number"));
- }
+ public void testGetCompactData3() {
+ CompactConstructor flow = new CompactConstructor();
+ CompactData data =
+ flow.getCompactData("JFrame ( name = frame , title = My Frame, number= 123 )");
+ assertNotNull(data);
+ assertEquals("JFrame", data.getPrefix());
+ assertEquals(3, data.getProperties().size());
+ assertEquals("frame", data.getProperties().get("name"));
+ assertEquals("My Frame", data.getProperties().get("title"));
+ assertEquals("123", data.getProperties().get("number"));
+ }
- public void testGetCompactData4() {
- CompactConstructor flow = new CompactConstructor();
- CompactData data = flow.getCompactData("JFrame(title)");
- assertNotNull(data);
- assertEquals("JFrame", data.getPrefix());
- assertEquals(0, data.getProperties().size());
- assertEquals(1, data.getArguments().size());
- assertEquals("title", data.getArguments().get(0));
- }
+ public void testGetCompactData4() {
+ CompactConstructor flow = new CompactConstructor();
+ CompactData data = flow.getCompactData("JFrame(title)");
+ assertNotNull(data);
+ assertEquals("JFrame", data.getPrefix());
+ assertEquals(0, data.getProperties().size());
+ assertEquals(1, data.getArguments().size());
+ assertEquals("title", data.getArguments().get(0));
+ }
- public void testGetCompactData5() {
- CompactConstructor flow = new CompactConstructor();
- CompactData data = flow.getCompactData("JFrame(id123, title, name=foo, alignment=center)");
- assertNotNull(data);
- assertEquals("JFrame", data.getPrefix());
- assertEquals(2, data.getProperties().size());
- assertEquals(2, data.getArguments().size());
- assertEquals("id123", data.getArguments().get(0));
- assertEquals("title", data.getArguments().get(1));
- }
+ public void testGetCompactData5() {
+ CompactConstructor flow = new CompactConstructor();
+ CompactData data = flow.getCompactData("JFrame(id123, title, name=foo, alignment=center)");
+ assertNotNull(data);
+ assertEquals("JFrame", data.getPrefix());
+ assertEquals(2, data.getProperties().size());
+ assertEquals(2, data.getArguments().size());
+ assertEquals("id123", data.getArguments().get(0));
+ assertEquals("title", data.getArguments().get(1));
+ }
- public void testGetCompactData6() {
- CompactConstructor flow = new CompactConstructor();
- CompactData data = flow.getCompactData("JFrame()");
- assertNotNull(data);
- assertEquals("JFrame", data.getPrefix());
- assertEquals(0, data.getProperties().size());
- assertEquals(0, data.getArguments().size());
- }
+ public void testGetCompactData6() {
+ CompactConstructor flow = new CompactConstructor();
+ CompactData data = flow.getCompactData("JFrame()");
+ assertNotNull(data);
+ assertEquals("JFrame", data.getPrefix());
+ assertEquals(0, data.getProperties().size());
+ assertEquals(0, data.getArguments().size());
+ }
- public void testGetCompactData7() {
- CompactConstructor flow = new CompactConstructor();
- CompactData data = flow.getCompactData("package.Container(name=parent, id=123)");
- assertNotNull(data);
- assertEquals("package.Container", data.getPrefix());
- assertEquals(2, data.getProperties().size());
- assertEquals(0, data.getArguments().size());
- }
+ public void testGetCompactData7() {
+ CompactConstructor flow = new CompactConstructor();
+ CompactData data = flow.getCompactData("package.Container(name=parent, id=123)");
+ assertNotNull(data);
+ assertEquals("package.Container", data.getPrefix());
+ assertEquals(2, data.getProperties().size());
+ assertEquals(0, data.getArguments().size());
+ }
- public void testCompactDataToString() {
- CompactData data = new CompactData("foo");
- assertEquals("CompactData: foo {}", data.toString());
- }
+ public void testCompactDataToString() {
+ CompactData data = new CompactData("foo");
+ assertEquals("CompactData: foo {}", data.toString());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Container.java b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Container.java
index 56b3c199..de769d56 100644
--- a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Container.java
+++ b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Container.java
@@ -1,76 +1,75 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.extensions.compactnotation;
public class Container {
- private String title;
- private String name;
- private String id;
- public Container() {
- this("no title");
- }
+ private final String title;
+ private String name;
+ private String id;
- public Container(String title) {
- this.title = title;
- }
+ public Container() {
+ this("no title");
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof Container) {
- Container c = (Container) obj;
- if (name != null && !name.equals(c.name)) {
- return false;
- }
- if (id != null && !id.equals(c.id)) {
- return false;
- }
- return title.equals(c.title);
- } else {
- return false;
- }
- }
+ public Container(String title) {
+ this.title = title;
+ }
- @Override
- public int hashCode() {
- return title.hashCode();
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof Container) {
+ Container c = (Container) obj;
+ if (name != null && !name.equals(c.name)) {
+ return false;
+ }
+ if (id != null && !id.equals(c.id)) {
+ return false;
+ }
+ return title.equals(c.title);
+ } else {
+ return false;
}
+ }
- @Override
- public String toString() {
- return "Container=" + title;
- }
+ @Override
+ public int hashCode() {
+ return title.hashCode();
+ }
- public String getName() {
- return name;
- }
+ @Override
+ public String toString() {
+ return "Container=" + title;
+ }
- public void setName(String name) {
- this.name = name;
- }
+ public String getName() {
+ return name;
+ }
- public String getId() {
- return id;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public void setId(String id) {
- this.id = id;
- }
+ public String getId() {
+ return id;
+ }
- public String getTitle() {
- return title;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getTitle() {
+ return title;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Item.java b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Item.java
index d6314c02..abfd3422 100644
--- a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Item.java
+++ b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Item.java
@@ -1,46 +1,45 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.extensions.compactnotation;
public class Item {
- private String id;
- private String price;
- private String name;
- public Item(String id) {
- this.id = id;
- }
+ private final String id;
+ private String price;
+ private String name;
- public String getPrice() {
- return price;
- }
+ public Item(String id) {
+ this.id = id;
+ }
- public void setPrice(String price) {
- this.price = price;
- }
+ public String getPrice() {
+ return price;
+ }
- public String getName() {
- return name;
- }
+ public void setPrice(String price) {
+ this.price = price;
+ }
- public void setName(String name) {
- this.name = name;
- }
+ public String getName() {
+ return name;
+ }
- public String getId() {
- return id;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getId() {
+ return id;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/ManyListsTable.java b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/ManyListsTable.java
index 8b52b2ea..2aed8954 100644
--- a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/ManyListsTable.java
+++ b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/ManyListsTable.java
@@ -1,48 +1,47 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.extensions.compactnotation;
import java.util.List;
public class ManyListsTable {
- private String id;
- private List<Row> rows;
- private List<String> names;
- public ManyListsTable(String id) {
- this.id = id;
- }
+ private final String id;
+ private List<Row> rows;
+ private List<String> names;
- public List<Row> getRows() {
- return rows;
- }
+ public ManyListsTable(String id) {
+ this.id = id;
+ }
- public void setRows(List<Row> rows) {
- this.rows = rows;
- }
+ public List<Row> getRows() {
+ return rows;
+ }
- public String getId() {
- return id;
- }
+ public void setRows(List<Row> rows) {
+ this.rows = rows;
+ }
- public List<String> getNames() {
- return names;
- }
+ public String getId() {
+ return id;
+ }
- public void setNames(List<String> names) {
- this.names = names;
- }
+ public List<String> getNames() {
+ return names;
+ }
+
+ public void setNames(List<String> names) {
+ this.names = names;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/PackageCompactConstructorTest.java b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/PackageCompactConstructorTest.java
index 551b721a..691880a0 100644
--- a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/PackageCompactConstructorTest.java
+++ b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/PackageCompactConstructorTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.extensions.compactnotation;
@@ -19,32 +17,32 @@ import junit.framework.TestCase;
public class PackageCompactConstructorTest extends TestCase {
- public void testGetClassForName() throws ClassNotFoundException {
- assertEquals(Table.class, check("Table"));
- assertEquals(Table.class, check("org.yaml.snakeyaml.extensions.compactnotation.Table"));
- assertEquals(String.class, check("java.lang.String"));
- }
+ public void testGetClassForName() throws ClassNotFoundException {
+ assertEquals(Table.class, check("Table"));
+ assertEquals(Table.class, check("org.yaml.snakeyaml.extensions.compactnotation.Table"));
+ assertEquals(String.class, check("java.lang.String"));
+ }
- public void testException1() throws ClassNotFoundException {
- try {
- check("foo.Bar");
- fail();
- } catch (ClassNotFoundException e) {
- assertEquals("foo.Bar", e.getMessage());
- }
+ public void testException1() throws ClassNotFoundException {
+ try {
+ check("foo.Bar");
+ fail();
+ } catch (ClassNotFoundException e) {
+ assertEquals("foo.Bar", e.getMessage());
}
+ }
- public void testException2() throws ClassNotFoundException {
- try {
- check("FooBar");
- fail();
- } catch (ClassNotFoundException e) {
- assertEquals("FooBar", e.getMessage());
- }
+ public void testException2() throws ClassNotFoundException {
+ try {
+ check("FooBar");
+ fail();
+ } catch (ClassNotFoundException e) {
+ assertEquals("FooBar", e.getMessage());
}
+ }
- private Class<?> check(String name) throws ClassNotFoundException {
- return new PackageCompactConstructor("org.yaml.snakeyaml.extensions.compactnotation")
- .getClassForName(name);
- }
+ private Class<?> check(String name) throws ClassNotFoundException {
+ return new PackageCompactConstructor("org.yaml.snakeyaml.extensions.compactnotation")
+ .getClassForName(name);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Row.java b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Row.java
index 8e21ad05..076a4a3d 100644
--- a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Row.java
+++ b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Row.java
@@ -1,80 +1,79 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.extensions.compactnotation;
public class Row {
- private String id;
- private int size;
- private double ratio;
- private float floatRatio;
- private String description;
- public Row(String id) {
- super();
- this.id = id;
- }
+ private final String id;
+ private int size;
+ private double ratio;
+ private float floatRatio;
+ private String description;
- public int getSize() {
- return size;
- }
+ public Row(String id) {
+ super();
+ this.id = id;
+ }
- public void setSize(int size) {
- this.size = size;
- }
+ public int getSize() {
+ return size;
+ }
- public double getRatio() {
- return ratio;
- }
+ public void setSize(int size) {
+ this.size = size;
+ }
- public void setRatio(double ratio) {
- this.ratio = ratio;
- }
+ public double getRatio() {
+ return ratio;
+ }
- public float getFloatRatio() {
- return floatRatio;
- }
+ public void setRatio(double ratio) {
+ this.ratio = ratio;
+ }
- public void setFloatRatio(float floatRatio) {
- this.floatRatio = floatRatio;
- }
+ public float getFloatRatio() {
+ return floatRatio;
+ }
- public String getDescription() {
- return description;
- }
+ public void setFloatRatio(float floatRatio) {
+ this.floatRatio = floatRatio;
+ }
- public void setDescription(String description) {
- this.description = description;
- }
+ public String getDescription() {
+ return description;
+ }
- public String getId() {
- return id;
- }
+ public void setDescription(String description) {
+ this.description = description;
+ }
- @Override
- public boolean equals(Object obj) {
- return toString().equals(obj.toString());
- }
+ public String getId() {
+ return id;
+ }
- @Override
- public int hashCode() {
- return id.hashCode();
- }
+ @Override
+ public boolean equals(Object obj) {
+ return toString().equals(obj.toString());
+ }
- @Override
- public String toString() {
- return "Row id=" + id;
- }
+ @Override
+ public int hashCode() {
+ return id.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return "Row id=" + id;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Table.java b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Table.java
index dce1eb0f..45b081a2 100644
--- a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Table.java
+++ b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/Table.java
@@ -1,46 +1,45 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.extensions.compactnotation;
import java.util.List;
public class Table {
- private String id;
- private String name;
- private List<Row> rows;
-
- public Table(String id, String name) {
- super();
- this.id = id;
- this.name = name;
- }
-
- public List<Row> getRows() {
- return rows;
- }
-
- public void setRows(List<Row> rows) {
- this.rows = rows;
- }
-
- public String getId() {
- return id;
- }
-
- public String getName() {
- return name;
- }
+
+ private final String id;
+ private final String name;
+ private List<Row> rows;
+
+ public Table(String id, String name) {
+ super();
+ this.id = id;
+ this.name = name;
+ }
+
+ public List<Row> getRows() {
+ return rows;
+ }
+
+ public void setRows(List<Row> rows) {
+ this.rows = rows;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/TableCompactConstructor.java b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/TableCompactConstructor.java
index a6e074b6..efb79a89 100644
--- a/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/TableCompactConstructor.java
+++ b/src/test/java/org/yaml/snakeyaml/extensions/compactnotation/TableCompactConstructor.java
@@ -1,24 +1,22 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.extensions.compactnotation;
public class TableCompactConstructor extends PackageCompactConstructor {
- public TableCompactConstructor(String packageName) {
- super(packageName);
- }
+ public TableCompactConstructor(String packageName) {
+ super(packageName);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/generics/AbstractAnimal.java b/src/test/java/org/yaml/snakeyaml/generics/AbstractAnimal.java
index 68452efd..ef127174 100644
--- a/src/test/java/org/yaml/snakeyaml/generics/AbstractAnimal.java
+++ b/src/test/java/org/yaml/snakeyaml/generics/AbstractAnimal.java
@@ -1,32 +1,31 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.generics;
public abstract class AbstractAnimal<T> {
- private String name;
- public String getName() {
- return name;
- }
+ private String name;
- public void setName(String name) {
- this.name = name;
- }
+ public String getName() {
+ return name;
+ }
- public abstract T getHome();
+ public void setName(String name) {
+ this.name = name;
+ }
- public abstract void setHome(T home);
+ public abstract T getHome();
+
+ public abstract void setHome(T home);
}
diff --git a/src/test/java/org/yaml/snakeyaml/generics/Bird.java b/src/test/java/org/yaml/snakeyaml/generics/Bird.java
index 0b7bbe8b..7dd9b0ca 100644
--- a/src/test/java/org/yaml/snakeyaml/generics/Bird.java
+++ b/src/test/java/org/yaml/snakeyaml/generics/Bird.java
@@ -1,28 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.generics;
public class Bird extends AbstractAnimal<Nest> {
- private Nest home;
- public Nest getHome() {
- return home;
- }
+ private Nest home;
- public void setHome(Nest home) {
- this.home = home;
- }
+ public Nest getHome() {
+ return home;
+ }
+
+ public void setHome(Nest home) {
+ this.home = home;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/generics/BirdTest.java b/src/test/java/org/yaml/snakeyaml/generics/BirdTest.java
index 499539ff..8d650746 100644
--- a/src/test/java/org/yaml/snakeyaml/generics/BirdTest.java
+++ b/src/test/java/org/yaml/snakeyaml/generics/BirdTest.java
@@ -1,57 +1,41 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.generics;
import java.beans.IntrospectionException;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class BirdTest extends TestCase {
- public void testHome() throws IntrospectionException {
- Bird bird = new Bird();
- bird.setName("Eagle");
- Nest home = new Nest();
- home = new Nest();
- home.setHeight(3);
- bird.setHome(home);
- Yaml yaml = new Yaml();
- String output = yaml.dumpAsMap(bird);
- Bird parsed;
- String javaVendor = System.getProperty("java.vm.name");
- Yaml loader = new Yaml();
- if (GenericsBugDetector.isProperIntrospection()) {
- // no global tags
- System.out.println("java.vm.name: " + javaVendor);
- assertEquals("no global tags must be emitted.", "home:\n height: 3\nname: Eagle\n",
- output);
- parsed = loader.loadAs(output, Bird.class);
-
- } else {
- // with global tags
- System.out
- .println("JDK requires global tags for JavaBean properties with Java Generics. java.vm.name: "
- + javaVendor);
- assertEquals("global tags are inevitable here.",
- "home: !!org.yaml.snakeyaml.generics.Nest\n height: 3\nname: Eagle\n", output);
- parsed = loader.loadAs(output, Bird.class);
- }
- assertEquals(bird.getName(), parsed.getName());
- assertEquals(bird.getHome().getHeight(), parsed.getHome().getHeight());
- }
+ public void testHome() throws IntrospectionException {
+ Bird bird = new Bird();
+ bird.setName("Eagle");
+ Nest home = new Nest();
+ home = new Nest();
+ home.setHeight(3);
+ bird.setHome(home);
+ Yaml yaml = new Yaml();
+ String output = yaml.dumpAsMap(bird);
+ Bird parsed;
+ String javaVendor = System.getProperty("java.vm.name");
+ Yaml loader = new Yaml();
+ // no global tags
+ System.out.println("java.vm.name: " + javaVendor);
+ assertEquals("no global tags must be emitted.", "home:\n height: 3\nname: Eagle\n", output);
+ parsed = loader.loadAs(output, Bird.class);
+ assertEquals(bird.getName(), parsed.getName());
+ assertEquals(bird.getHome().getHeight(), parsed.getHome().getHeight());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/generics/GenericArrayTypeTest.java b/src/test/java/org/yaml/snakeyaml/generics/GenericArrayTypeTest.java
index e81c137e..5f6815c8 100644
--- a/src/test/java/org/yaml/snakeyaml/generics/GenericArrayTypeTest.java
+++ b/src/test/java/org/yaml/snakeyaml/generics/GenericArrayTypeTest.java
@@ -1,119 +1,97 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.generics;
import java.beans.IntrospectionException;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
public class GenericArrayTypeTest extends TestCase {
- public void testClasses() throws IntrospectionException {
- GenericArray ga = new GenericArray();
- Yaml yaml = new Yaml();
- String doc = yaml.dump(ga);
- // System.out.println(doc);
- String etalon = "!!org.yaml.snakeyaml.generics.GenericArrayTypeTest$GenericArray\n"
- + "home: [1, 2, 3]\n" + "name: Array3\n";
- assertEquals(etalon, doc);
- if (GenericsBugDetector.isProperIntrospection()) {
- GenericArray parsed = (GenericArray) yaml.load(doc);
- assertEquals("Array3", parsed.getName());
- assertEquals(3, parsed.getHome().length);
- } else {
- try {
- yaml.load(doc);
- } catch (Exception e) {
- // TODO Check GenericArrayType
- String message = "Cannot create property=home for JavaBean=org.yaml.snakeyaml.generics.GenericArrayTypeTest$GenericArray";
- assertTrue(e.getMessage(), e.getMessage().contains(message));
- }
- }
- }
+ public void testClasses() throws IntrospectionException {
+ GenericArray ga = new GenericArray();
+ Yaml yaml = new Yaml();
+ String doc = yaml.dump(ga);
+ // System.out.println(doc);
+ String etalon = "!!org.yaml.snakeyaml.generics.GenericArrayTypeTest$GenericArray\n"
+ + "home: [1, 2, 3]\n" + "name: Array3\n";
+ assertEquals(etalon, doc);
+ GenericArray parsed = yaml.load(doc);
+ assertEquals("Array3", parsed.getName());
+ assertEquals(3, parsed.getHome().length);
+ }
- public static class GenericArray extends AbstractAnimal<Integer[]> {
- private Integer[] home;
+ public static class GenericArray extends AbstractAnimal<Integer[]> {
- public GenericArray() {
- home = new Integer[3];
- for (int i = 0; i < home.length; i++) {
- home[i] = i + 1;
- }
- setName("Array" + String.valueOf(3));
- }
+ private Integer[] home;
- @Override
- public Integer[] getHome() {
- return home;
- }
+ public GenericArray() {
+ home = new Integer[3];
+ for (int i = 0; i < home.length; i++) {
+ home[i] = i + 1;
+ }
+ setName("Array" + 3);
+ }
- @Override
- public void setHome(Integer[] home) {
- this.home = home;
- }
+ @Override
+ public Integer[] getHome() {
+ return home;
}
- public void testJavaBean() throws IntrospectionException {
- GenericArray ga = new GenericArray();
- ArrayBean bean = new ArrayBean();
- bean.setId("ID556677");
- bean.setGa(ga);
- Yaml dumper = new Yaml();
- String doc = dumper.dumpAsMap(bean);
- // System.out.println(doc);
- assertEquals(Util.getLocalResource("javabeans/genericArray-1.yaml"), doc);
- //
- Yaml beanLoader = new Yaml();
- if (GenericsBugDetector.isProperIntrospection()) {
- ArrayBean loaded = beanLoader.loadAs(doc, ArrayBean.class);
- assertEquals("ID556677", loaded.getId());
- assertEquals("Array3", loaded.getGa().getName());
- assertEquals(3, loaded.getGa().getHome().length);
- } else {
- try {
- beanLoader.load(doc);
- } catch (Exception e) {
- // TODO Check GenericArrayType
- String message = "Cannot create property=home for JavaBean=org.yaml.snakeyaml.generics.GenericArrayTypeTest$GenericArray";
- assertTrue(e.getMessage(), e.getMessage().contains(message));
- }
- }
+ @Override
+ public void setHome(Integer[] home) {
+ this.home = home;
}
+ }
- public static class ArrayBean {
- private String id;
- private GenericArray ga;
+ public void testJavaBean() throws IntrospectionException {
+ GenericArray ga = new GenericArray();
+ ArrayBean bean = new ArrayBean();
+ bean.setId("ID556677");
+ bean.setGa(ga);
+ Yaml dumper = new Yaml();
+ String doc = dumper.dumpAsMap(bean);
+ // System.out.println(doc);
+ assertEquals(Util.getLocalResource("javabeans/genericArray-1.yaml"), doc);
+ //
+ Yaml beanLoader = new Yaml();
+ ArrayBean loaded = beanLoader.loadAs(doc, ArrayBean.class);
+ assertEquals("ID556677", loaded.getId());
+ assertEquals("Array3", loaded.getGa().getName());
+ assertEquals(3, loaded.getGa().getHome().length);
+ }
- public String getId() {
- return id;
- }
+ public static class ArrayBean {
- public void setId(String id) {
- this.id = id;
- }
+ private String id;
+ private GenericArray ga;
- public GenericArray getGa() {
- return ga;
- }
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public GenericArray getGa() {
+ return ga;
+ }
- public void setGa(GenericArray ga) {
- this.ga = ga;
- }
+ public void setGa(GenericArray ga) {
+ this.ga = ga;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/generics/Nest.java b/src/test/java/org/yaml/snakeyaml/generics/Nest.java
index fbf8dbf5..982df9c8 100644
--- a/src/test/java/org/yaml/snakeyaml/generics/Nest.java
+++ b/src/test/java/org/yaml/snakeyaml/generics/Nest.java
@@ -1,28 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.generics;
public class Nest {
- private int height;
- public int getHeight() {
- return height;
- }
+ private int height;
- public void setHeight(int height) {
- this.height = height;
- }
+ public int getHeight() {
+ return height;
+ }
+
+ public void setHeight(int height) {
+ this.height = height;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/generics/ObjectValues.java b/src/test/java/org/yaml/snakeyaml/generics/ObjectValues.java
index a3219105..85770483 100644
--- a/src/test/java/org/yaml/snakeyaml/generics/ObjectValues.java
+++ b/src/test/java/org/yaml/snakeyaml/generics/ObjectValues.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.generics;
@@ -19,31 +17,31 @@ import java.util.Map;
public class ObjectValues {
- private Object object;
- private Map<String, Map<Integer, Object>> values;
- private String[] possible;
+ private Object object;
+ private Map<String, Map<Integer, Object>> values;
+ private String[] possible;
- public Object getObject() {
- return object;
- }
+ public Object getObject() {
+ return object;
+ }
- public void setObject(Object object) {
- this.object = object;
- }
+ public void setObject(Object object) {
+ this.object = object;
+ }
- public void setValues(Map<String, Map<Integer, Object>> values) {
- this.values = values;
- }
+ public void setValues(Map<String, Map<Integer, Object>> values) {
+ this.values = values;
+ }
- public Map<String, Map<Integer, Object>> getValues() {
- return values;
- }
+ public Map<String, Map<Integer, Object>> getValues() {
+ return values;
+ }
- public void setPossible(String[] possible) {
- this.possible = possible;
- }
+ public void setPossible(String[] possible) {
+ this.possible = possible;
+ }
- public String[] getPossible() {
- return possible;
- }
+ public String[] getPossible() {
+ return possible;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/generics/ObjectValuesTest.java b/src/test/java/org/yaml/snakeyaml/generics/ObjectValuesTest.java
index 233a03d5..613a5bd3 100644
--- a/src/test/java/org/yaml/snakeyaml/generics/ObjectValuesTest.java
+++ b/src/test/java/org/yaml/snakeyaml/generics/ObjectValuesTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.generics;
@@ -19,76 +17,80 @@ import static org.junit.Assert.assertArrayEquals;
import java.util.HashMap;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class ObjectValuesTest extends TestCase {
- public void testObjectValues() {
- ObjectValues ov = new ObjectValues();
- Integer obj = new Integer(131313);
- ov.setObject(obj);
- final Map<String, Map<Integer, Object>> prop2values = new HashMap<String, Map<Integer, Object>>();
+ public void testObjectValues() {
+ ObjectValues ov = new ObjectValues();
+ Integer obj = Integer.valueOf(131313);
+ ov.setObject(obj);
+ final Map<String, Map<Integer, Object>> prop2values =
+ new HashMap<String, Map<Integer, Object>>();
- final String[] props = { "prop1", "prop2", "prop3" };
- for (String name : props) {
- Map<Integer, Object> values = new HashMap<Integer, Object>();
- prop2values.put(name, values);
- for (int i = 0; i < 3; i++) {
- values.put(i, name + i);
- }
- }
+ final String[] props = {"prop1", "prop2", "prop3"};
+ for (String name : props) {
+ Map<Integer, Object> values = new HashMap<Integer, Object>();
+ prop2values.put(name, values);
+ for (int i = 0; i < 3; i++) {
+ values.put(i, name + i);
+ }
+ }
- ov.setValues(prop2values);
- ov.setPossible(props);
+ ov.setValues(prop2values);
+ ov.setPossible(props);
- Yaml dumper = new Yaml();
- String dumpedStr = dumper.dumpAsMap(ov);
- Yaml loader = new Yaml();
- ObjectValues ov2 = loader.loadAs(dumpedStr, ObjectValues.class);
+ Yaml dumper = new Yaml();
+ String dumpedStr = dumper.dumpAsMap(ov);
+ Yaml loader = new Yaml();
+ ObjectValues ov2 = loader.loadAs(dumpedStr, ObjectValues.class);
- assertEquals(ov.getObject(), ov2.getObject());
- assertEquals(ov.getValues(), ov2.getValues());
- assertArrayEquals(ov.getPossible(), ov2.getPossible());
- ov.getPossible()[0] = ov2.getPossible()[0];
- }
+ assertEquals(ov.getObject(), ov2.getObject());
+ assertEquals(ov.getValues(), ov2.getValues());
+ assertArrayEquals(ov.getPossible(), ov2.getPossible());
+ ov.getPossible()[0] = ov2.getPossible()[0];
+ }
- @SuppressWarnings("unchecked")
- public void testObjectValuesWithParam() {
- ObjectValuesWithParam<String, Integer> ov = new ObjectValuesWithParam<String, Integer>();
- Integer obj = new Integer(131313);
- ov.setObject(obj);
- final Map<String, Map<Integer, Object>> prop2values = new HashMap<String, Map<Integer, Object>>();
+ @SuppressWarnings("unchecked")
+ public void testObjectValuesWithParam() {
+ ObjectValuesWithParam<String, Integer> ov = new ObjectValuesWithParam<String, Integer>();
+ Integer obj = Integer.valueOf(131313);
+ ov.setObject(obj);
+ final Map<String, Map<Integer, Object>> prop2values =
+ new HashMap<String, Map<Integer, Object>>();
- final String[] props = { "prop1", "prop2", "prop3" };
- for (String name : props) {
- Map<Integer, Object> values = new HashMap<Integer, Object>();
- prop2values.put(name, values);
- for (int i = 0; i < 3; i++) {
- values.put(i, name + i);
- }
- }
+ final String[] props = {"prop1", "prop2", "prop3"};
+ for (String name : props) {
+ Map<Integer, Object> values = new HashMap<Integer, Object>();
+ prop2values.put(name, values);
+ for (int i = 0; i < 3; i++) {
+ values.put(i, name + i);
+ }
+ }
- ov.setValues(prop2values);
- ov.setPossible(props);
+ ov.setValues(prop2values);
+ ov.setPossible(props);
- Yaml dumper = new Yaml();
- String dumpedStr = dumper.dumpAsMap(ov);
- Yaml loader = new Yaml();
- ObjectValuesWithParam<String, Integer> ov2 = loader.loadAs(dumpedStr,
- new ObjectValuesWithParam<String, Integer>().getClass());
+ Yaml dumper = new Yaml();
+ String dumpedStr = dumper.dumpAsMap(ov);
+ Yaml loader = new Yaml();
+ ObjectValuesWithParam<String, Integer> ov2 =
+ loader.loadAs(dumpedStr, new ObjectValuesWithParam<String, Integer>().getClass());
- assertEquals(ov.getObject(), ov2.getObject());
- assertEquals(ov.getValues(), ov2.getValues());
- assertArrayEquals(ov.getPossible(), ov2.getPossible());
- // TODO: This actually FAILS. Use of GenericArrays is ..... no words.
- // assertEquals(ov.getPossible()[0], ov2.getPossible()[0]);
- try {
- ov2.getPossible()[0].toString();
- } catch (Exception e) {
- assertTrue(e.getMessage(), e.getMessage().startsWith("[Ljava.lang.Object"));
- }
+ assertEquals(ov.getObject(), ov2.getObject());
+ assertEquals(ov.getValues(), ov2.getValues());
+ assertArrayEquals(ov.getPossible(), ov2.getPossible());
+ // This actually FAILS. Use of GenericArrays is ..... no words.
+ // assertEquals(ov.getPossible()[0], ov2.getPossible()[0]);
+ try {
+ ov2.getPossible();
+ } catch (Exception e) {
+ boolean java8 = e.getMessage().startsWith("[Ljava.lang.Object");
+ boolean java9 = e.getMessage().startsWith("java.base/[Ljava.lang.Object");
+ boolean java11 = e.getMessage()
+ .startsWith("class [Ljava.lang.Object; cannot be cast to class [Ljava.lang.String;");
+ assertTrue(e.getMessage(), java8 || java9 || java11);
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/generics/ObjectValuesWithParam.java b/src/test/java/org/yaml/snakeyaml/generics/ObjectValuesWithParam.java
index 51c4485b..01b9fcd3 100644
--- a/src/test/java/org/yaml/snakeyaml/generics/ObjectValuesWithParam.java
+++ b/src/test/java/org/yaml/snakeyaml/generics/ObjectValuesWithParam.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.generics;
@@ -19,31 +17,31 @@ import java.util.Map;
public class ObjectValuesWithParam<T, S> {
- private Object object;
- private Map<T, Map<S, Object>> values;
- private T[] possible;
+ private Object object;
+ private Map<T, Map<S, Object>> values;
+ private T[] possible;
- public Object getObject() {
- return object;
- }
+ public Object getObject() {
+ return object;
+ }
- public void setObject(Object object) {
- this.object = object;
- }
+ public void setObject(Object object) {
+ this.object = object;
+ }
- public void setValues(Map<T, Map<S, Object>> values) {
- this.values = values;
- }
+ public void setValues(Map<T, Map<S, Object>> values) {
+ this.values = values;
+ }
- public Map<T, Map<S, Object>> getValues() {
- return values;
- }
+ public Map<T, Map<S, Object>> getValues() {
+ return values;
+ }
- public void setPossible(T[] possible) {
- this.possible = possible;
- }
+ public void setPossible(T[] possible) {
+ this.possible = possible;
+ }
- public T[] getPossible() {
- return possible;
- }
+ public T[] getPossible() {
+ return possible;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/Animal.java b/src/test/java/org/yaml/snakeyaml/immutable/Animal.java
index f7dcb73a..0828bfee 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/Animal.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/Animal.java
@@ -1,20 +1,19 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable;
public interface Animal {
- public String getName();
+
+ String getName();
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/Code.java b/src/test/java/org/yaml/snakeyaml/immutable/Code.java
index 3ef1de47..c29ed1ce 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/Code.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/Code.java
@@ -1,48 +1,47 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable;
public class Code {
- private final Integer code;
- public Code(Integer name) {
- this.code = name;
- }
+ private final Integer code;
- public Integer getCode() {
- return code;
- }
+ public Code(Integer name) {
+ this.code = name;
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof Code) {
- Code code = (Code) obj;
- return code.equals(code.code);
- } else {
- return false;
- }
- }
+ public Integer getCode() {
+ return code;
+ }
- @Override
- public int hashCode() {
- return code.hashCode();
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof Code) {
+ Code code = (Code) obj;
+ return code.equals(code.code);
+ } else {
+ return false;
}
+ }
- @Override
- public String toString() {
- return "<Code code=" + code + ">";
- }
+ @Override
+ public int hashCode() {
+ return code.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return "<Code code=" + code + ">";
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/Code2.java b/src/test/java/org/yaml/snakeyaml/immutable/Code2.java
index 02fc2e9b..4cae9674 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/Code2.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/Code2.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable;
@@ -19,37 +17,38 @@ package org.yaml.snakeyaml.immutable;
* Two constructors with 1 argument. These immutable objects are not supported.
*/
public class Code2 {
- private final Integer code;
- public Code2(Integer name) {
- this.code = name;
- }
+ private final Integer code;
- public Code2(String name) {
- this.code = new Integer(name);
- }
+ public Code2(Integer name) {
+ this.code = name;
+ }
- public Integer getCode() {
- return code;
- }
+ public Code2(String name) {
+ this.code = Integer.valueOf(name);
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof Code2) {
- Code2 code = (Code2) obj;
- return code.equals(code.code);
- } else {
- return false;
- }
- }
+ public Integer getCode() {
+ return code;
+ }
- @Override
- public int hashCode() {
- return code.hashCode();
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof Code2) {
+ Code2 code = (Code2) obj;
+ return code.equals(code.code);
+ } else {
+ return false;
}
+ }
- @Override
- public String toString() {
- return "<Code2 code=" + code + ">";
- }
+ @Override
+ public int hashCode() {
+ return code.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return "<Code2 code=" + code + ">";
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/Code3.java b/src/test/java/org/yaml/snakeyaml/immutable/Code3.java
index 26385322..88b12eca 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/Code3.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/Code3.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable;
@@ -19,35 +17,36 @@ package org.yaml.snakeyaml.immutable;
* No constructors with 1 argument. These immutable objects are not supported.
*/
public class Code3 {
- private final String name;
- private final Integer code;
- public Code3(String name, Integer code) {
- this.code = code;
- this.name = name;
- }
+ private final String name;
+ private final Integer code;
- public String getData() {
- return name + code;
- }
+ public Code3(String name, Integer code) {
+ this.code = code;
+ this.name = name;
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof Code3) {
- Code3 code = (Code3) obj;
- return code.equals(code.code);
- } else {
- return false;
- }
- }
+ public String getData() {
+ return name + code;
+ }
- @Override
- public int hashCode() {
- return code.hashCode();
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof Code3) {
+ Code3 code = (Code3) obj;
+ return code.equals(code.code);
+ } else {
+ return false;
}
+ }
- @Override
- public String toString() {
- return "<Code3 data=" + getData() + ">";
- }
+ @Override
+ public int hashCode() {
+ return code.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return "<Code3 data=" + getData() + ">";
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/Code4.java b/src/test/java/org/yaml/snakeyaml/immutable/Code4.java
index 71c6828e..c2ffa0a3 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/Code4.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/Code4.java
@@ -1,56 +1,54 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable;
/**
- * Two constructors with 1 argument. None of them has String as the argument
- * class.
+ * Two constructors with 1 argument. None of them has String as the argument class.
*/
public class Code4 {
- private final Integer code;
- public Code4(Integer name) {
- this.code = name;
- }
+ private final Integer code;
- public Code4(Double name) {
- this.code = new Integer(name.intValue());
- }
+ public Code4(Integer name) {
+ this.code = name;
+ }
- public Integer getCode() {
- return code;
- }
+ public Code4(Double name) {
+ this.code = Integer.valueOf(name.intValue());
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof Code4) {
- Code4 code = (Code4) obj;
- return code.equals(code.code);
- } else {
- return false;
- }
- }
+ public Integer getCode() {
+ return code;
+ }
- @Override
- public int hashCode() {
- return code.hashCode();
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof Code4) {
+ Code4 code = (Code4) obj;
+ return code.equals(code.code);
+ } else {
+ return false;
}
+ }
- @Override
- public String toString() {
- return "<Code4 code=" + code + ">";
- }
+ @Override
+ public int hashCode() {
+ return code.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return "<Code4 code=" + code + ">";
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/Color.java b/src/test/java/org/yaml/snakeyaml/immutable/Color.java
index 2ac105a8..ee77b0c9 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/Color.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/Color.java
@@ -1,48 +1,47 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable;
public class Color {
- private final String name;
- public Color(String name) {
- this.name = name;
- }
+ private final String name;
- public String getName() {
- return name;
- }
+ public Color(String name) {
+ this.name = name;
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof Color) {
- Color color = (Color) obj;
- return name.equals(color.name);
- } else {
- return false;
- }
- }
+ public String getName() {
+ return name;
+ }
- @Override
- public int hashCode() {
- return name.hashCode();
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof Color) {
+ Color color = (Color) obj;
+ return name.equals(color.name);
+ } else {
+ return false;
}
+ }
- @Override
- public String toString() {
- return "<Color id=" + name + ">";
- }
+ @Override
+ public int hashCode() {
+ return name.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return "<Color id=" + name + ">";
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/Dog.java b/src/test/java/org/yaml/snakeyaml/immutable/Dog.java
index 710aab3d..624e83a0 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/Dog.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/Dog.java
@@ -1,33 +1,32 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable;
public class Dog implements Animal {
- private String name;
- public Dog(String name) {
- super();
- this.name = name;
- }
+ private final String name;
- public String getName() {
- return name;
- }
+ public Dog(String name) {
+ super();
+ this.name = name;
+ }
- public void bark() {
- System.out.println("I am a " + name);
- }
+ public String getName() {
+ return name;
+ }
+
+ public void bark() {
+ System.out.println("I am a " + name);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/DogImmutableTest.java b/src/test/java/org/yaml/snakeyaml/immutable/DogImmutableTest.java
index 90b1ff64..d5a19e89 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/DogImmutableTest.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/DogImmutableTest.java
@@ -1,36 +1,33 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class DogImmutableTest extends TestCase {
- public void testDog() {
- Yaml yaml = new Yaml();
- Dog loaded = (Dog) yaml.load("!!org.yaml.snakeyaml.immutable.Dog Bulldog");
- assertEquals("Bulldog", loaded.getName());
- }
+ public void testDog() {
+ Yaml yaml = new Yaml();
+ Dog loaded = yaml.load("!!org.yaml.snakeyaml.immutable.Dog Bulldog");
+ assertEquals("Bulldog", loaded.getName());
+ }
- public void testHouse() {
- Yaml yaml = new Yaml();
- HouseBean loaded = (HouseBean) yaml
- .load("!!org.yaml.snakeyaml.immutable.HouseBean\nanimal: !!org.yaml.snakeyaml.immutable.Dog Bulldog");
- assertEquals("Bulldog", loaded.getAnimal().getName());
- }
+ public void testHouse() {
+ Yaml yaml = new Yaml();
+ HouseBean loaded = yaml.load(
+ "!!org.yaml.snakeyaml.immutable.HouseBean\nanimal: !!org.yaml.snakeyaml.immutable.Dog Bulldog");
+ assertEquals("Bulldog", loaded.getAnimal().getName());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/HouseBean.java b/src/test/java/org/yaml/snakeyaml/immutable/HouseBean.java
index edee6b1b..e9fcd5e9 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/HouseBean.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/HouseBean.java
@@ -1,37 +1,36 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable;
public class HouseBean {
- private String name;
- private Animal animal;
- public String getName() {
- return name;
- }
+ private String name;
+ private Animal animal;
- public void setName(String name) {
- this.name = name;
- }
+ public String getName() {
+ return name;
+ }
- public Animal getAnimal() {
- return animal;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public void setAnimal(Animal animal) {
- this.animal = animal;
- }
+ public Animal getAnimal() {
+ return animal;
+ }
+
+ public void setAnimal(Animal animal) {
+ this.animal = animal;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/ImmutablesRepresenter.java b/src/test/java/org/yaml/snakeyaml/immutable/ImmutablesRepresenter.java
index 0595731b..0c7d2d12 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/ImmutablesRepresenter.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/ImmutablesRepresenter.java
@@ -1,26 +1,23 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable;
import java.awt.Insets;
import java.awt.Rectangle;
import java.util.Arrays;
-
import javax.swing.border.MatteBorder;
-
+import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.nodes.Node;
import org.yaml.snakeyaml.nodes.Tag;
import org.yaml.snakeyaml.representer.Represent;
@@ -28,55 +25,53 @@ import org.yaml.snakeyaml.representer.Representer;
public class ImmutablesRepresenter extends Representer {
- public ImmutablesRepresenter() {
- super();
- this.representers.put(java.awt.Color.class, new RepresentColor());
- this.representers.put(Insets.class, new RepresentInsets());
- this.representers.put(MatteBorder.class, new RepresentMatteBorder());
- this.representers.put(Rectangle.class, new RepresentRectangle());
+ public ImmutablesRepresenter() {
+ super();
+ this.representers.put(java.awt.Color.class, new RepresentColor());
+ this.representers.put(Insets.class, new RepresentInsets());
+ this.representers.put(MatteBorder.class, new RepresentMatteBorder());
+ this.representers.put(Rectangle.class, new RepresentRectangle());
+ }
+
+ class RepresentInsets implements Represent {
+
+ public Node representData(Object data) {
+ Insets insets = (Insets) data;
+ return representSequence(getTag(data.getClass(), new Tag(data.getClass())),
+ Arrays.asList(insets.top, insets.left, insets.bottom, insets.right),
+ DumperOptions.FlowStyle.FLOW);
}
- class RepresentInsets implements Represent {
+ }
- public Node representData(Object data) {
- Insets insets = (Insets) data;
- return representSequence(
- getTag(data.getClass(), new Tag(data.getClass())),
- Arrays.asList(new Object[] { insets.top, insets.left, insets.bottom,
- insets.right }), true);
- }
+ class RepresentRectangle implements Represent {
+ public Node representData(Object data) {
+ Rectangle rect = (Rectangle) data;
+ return representSequence(getTag(data.getClass(), new Tag(data.getClass())),
+ Arrays.asList(rect.x, rect.y, rect.width, rect.height), DumperOptions.FlowStyle.FLOW);
}
- class RepresentRectangle implements Represent {
+ }
- public Node representData(Object data) {
- Rectangle rect = (Rectangle) data;
- return representSequence(getTag(data.getClass(), new Tag(data.getClass())),
- Arrays.asList(new Object[] { rect.x, rect.y, rect.width, rect.height }), true);
- }
+ class RepresentMatteBorder implements Represent {
+ public Node representData(Object data) {
+ MatteBorder mb = (MatteBorder) data;
+ return representSequence(getTag(data.getClass(), new Tag(data.getClass())),
+ Arrays.asList(mb.getBorderInsets(), mb.getMatteColor()), DumperOptions.FlowStyle.FLOW);
}
- class RepresentMatteBorder implements Represent {
+ }
- public Node representData(Object data) {
- MatteBorder mb = (MatteBorder) data;
- return representSequence(getTag(data.getClass(), new Tag(data.getClass())),
- Arrays.asList(new Object[] { mb.getBorderInsets(), mb.getMatteColor() }), true);
- }
+ class RepresentColor implements Represent {
+ public Node representData(Object data) {
+ java.awt.Color color = (java.awt.Color) data;
+ return representSequence(getTag(data.getClass(), new Tag(data.getClass())),
+ Arrays.asList(color.getRed(), color.getGreen(), color.getBlue(), color.getAlpha()),
+ DumperOptions.FlowStyle.FLOW);
}
- class RepresentColor implements Represent {
-
- public Node representData(Object data) {
- java.awt.Color color = (java.awt.Color) data;
- return representSequence(
- getTag(data.getClass(), new Tag(data.getClass())),
- Arrays.asList(new Integer[] { color.getRed(), color.getGreen(),
- color.getBlue(), color.getAlpha() }), true);
- }
-
- }
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/MoreImmutablesTest.java b/src/test/java/org/yaml/snakeyaml/immutable/MoreImmutablesTest.java
index b96b37a5..87a1bb1f 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/MoreImmutablesTest.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/MoreImmutablesTest.java
@@ -1,78 +1,73 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable;
import java.awt.Color;
import java.awt.Insets;
import java.awt.Rectangle;
-
import javax.swing.BorderFactory;
import javax.swing.border.MatteBorder;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
public class MoreImmutablesTest extends TestCase {
- public void testInsets() {
- Yaml yaml = new Yaml(new ImmutablesRepresenter());
- Insets insets = new Insets(10, 20, 30, 40);
- String dump = yaml.dump(insets);
- assertEquals("!!java.awt.Insets [10, 20, 30, 40]\n", dump);
- Object loaded = yaml.load(dump);
- assertEquals(insets, loaded);
- }
+ public void testInsets() {
+ Yaml yaml = new Yaml(new ImmutablesRepresenter());
+ Insets insets = new Insets(10, 20, 30, 40);
+ String dump = yaml.dump(insets);
+ assertEquals("!!java.awt.Insets [10, 20, 30, 40]\n", dump);
+ Object loaded = yaml.load(dump);
+ assertEquals(insets, loaded);
+ }
- public void testAwtColor() {
- Yaml yaml = new Yaml(new ImmutablesRepresenter());
- Color color = new Color(10, 20, 30, 40);
- String dump = yaml.dump(color);
- assertEquals("!!java.awt.Color [10, 20, 30, 40]\n", dump);
- Object loaded = yaml.load(dump);
- assertEquals(color, loaded);
- }
+ public void testAwtColor() {
+ Yaml yaml = new Yaml(new ImmutablesRepresenter());
+ Color color = new Color(10, 20, 30, 40);
+ String dump = yaml.dump(color);
+ assertEquals("!!java.awt.Color [10, 20, 30, 40]\n", dump);
+ Object loaded = yaml.load(dump);
+ assertEquals(color, loaded);
+ }
- public void testRectangle() {
- Yaml yaml = new Yaml(new ImmutablesRepresenter());
- Rectangle rect = new Rectangle(10, 20, 30, 40);
- String dump = yaml.dump(rect);
- assertEquals("!!java.awt.Rectangle [10, 20, 30, 40]\n", dump);
- Object loaded = yaml.load(dump);
- assertEquals(rect, loaded);
- }
+ public void testRectangle() {
+ Yaml yaml = new Yaml(new ImmutablesRepresenter());
+ Rectangle rect = new Rectangle(10, 20, 30, 40);
+ String dump = yaml.dump(rect);
+ assertEquals("!!java.awt.Rectangle [10, 20, 30, 40]\n", dump);
+ Object loaded = yaml.load(dump);
+ assertEquals(rect, loaded);
+ }
- // matteborder - only with color - no icon
- public void testMatteBorder() {
- DumperOptions options = new DumperOptions();
- options.setWidth(400);
- Yaml yaml = new Yaml(new ImmutablesRepresenter(), options);
- Insets insets = new Insets(10, 20, 30, 40);
- Color color = new Color(100, 150, 200);
- MatteBorder border = BorderFactory.createMatteBorder(insets.top, insets.left,
- insets.bottom, insets.right, color);
- String dump = yaml.dump(border);
- assertEquals(
- "!!javax.swing.border.MatteBorder [!!java.awt.Insets [10, 20, 30, 40], !!java.awt.Color [100, 150, 200, 255]]\n",
- dump);
- Object loaded = yaml.load(dump);
- assertTrue(loaded instanceof MatteBorder);
- MatteBorder loadedBorder = (MatteBorder) loaded;
- assertEquals(insets, loadedBorder.getBorderInsets());
- assertEquals(color, loadedBorder.getMatteColor());
- }
+ // matteborder - only with color - no icon
+ public void testMatteBorder() {
+ DumperOptions options = new DumperOptions();
+ options.setWidth(400);
+ Yaml yaml = new Yaml(new ImmutablesRepresenter(), options);
+ Insets insets = new Insets(10, 20, 30, 40);
+ Color color = new Color(100, 150, 200);
+ MatteBorder border = BorderFactory.createMatteBorder(insets.top, insets.left, insets.bottom,
+ insets.right, color);
+ String dump = yaml.dump(border);
+ assertEquals(
+ "!!javax.swing.border.MatteBorder [!!java.awt.Insets [10, 20, 30, 40], !!java.awt.Color [100, 150, 200, 255]]\n",
+ dump);
+ Object loaded = yaml.load(dump);
+ assertTrue(loaded instanceof MatteBorder);
+ MatteBorder loadedBorder = (MatteBorder) loaded;
+ assertEquals(insets, loadedBorder.getBorderInsets());
+ assertEquals(color, loadedBorder.getMatteColor());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/Point.java b/src/test/java/org/yaml/snakeyaml/immutable/Point.java
index 98312dac..d005529e 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/Point.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/Point.java
@@ -1,53 +1,52 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable;
public class Point {
- private final double x;
- private final double y;
- public double getX() {
- return x;
- }
+ private final double x;
+ private final double y;
- public double getY() {
- return y;
- }
+ public double getX() {
+ return x;
+ }
- public Point(Double x, Double y) {
- this.x = x;
- this.y = y;
- }
+ public double getY() {
+ return y;
+ }
- @Override
- public String toString() {
- return "<Point x=" + String.valueOf(x) + " y=" + String.valueOf(y) + ">";
- }
+ public Point(Double x, Double y) {
+ this.x = x;
+ this.y = y;
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof Point) {
- return toString().equals(obj.toString());
- } else {
- return false;
- }
- }
+ @Override
+ public String toString() {
+ return "<Point x=" + x + " y=" + y + ">";
+ }
- @Override
- public int hashCode() {
- return toString().hashCode();
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof Point) {
+ return toString().equals(obj.toString());
+ } else {
+ return false;
}
+ }
+
+ @Override
+ public int hashCode() {
+ return toString().hashCode();
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/Point2.java b/src/test/java/org/yaml/snakeyaml/immutable/Point2.java
index 89d1c854..a9a70075 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/Point2.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/Point2.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable;
@@ -19,29 +17,30 @@ package org.yaml.snakeyaml.immutable;
* Two public constructor with 2 argument are present
*/
public class Point2 {
- private final Integer x;
- private final Integer y;
- public Integer getX() {
- return x;
- }
+ private final Integer x;
+ private final Integer y;
- public Integer getY() {
- return y;
- }
+ public Integer getX() {
+ return x;
+ }
- public Point2(Double x, Double y) {
- this.x = x.intValue();
- this.y = y.intValue();
- }
+ public Integer getY() {
+ return y;
+ }
- public Point2(Integer x, Integer y) {
- this.x = x;
- this.y = y;
- }
+ public Point2(Double x, Double y) {
+ this.x = x.intValue();
+ this.y = y.intValue();
+ }
- @Override
- public String toString() {
- return "<Point2 x=" + String.valueOf(x) + " y=" + String.valueOf(y) + ">";
- }
+ public Point2(Integer x, Integer y) {
+ this.x = x;
+ this.y = y;
+ }
+
+ @Override
+ public String toString() {
+ return "<Point2 x=" + x + " y=" + y + ">";
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/Point3d.java b/src/test/java/org/yaml/snakeyaml/immutable/Point3d.java
index 333de040..e9609f14 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/Point3d.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/Point3d.java
@@ -1,39 +1,38 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable;
public class Point3d {
- private final double z;
- private final Point point;
- public Point3d(Point point, Double z) {
- this.point = point;
- this.z = z;
- }
+ private final double z;
+ private final Point point;
- public double getZ() {
- return z;
- }
+ public Point3d(Point point, Double z) {
+ this.point = point;
+ this.z = z;
+ }
- public Point getPoint() {
- return point;
- }
+ public double getZ() {
+ return z;
+ }
- @Override
- public String toString() {
- return "<Point3d point=" + point.toString() + " z=" + String.valueOf(z) + ">";
- }
+ public Point getPoint() {
+ return point;
+ }
+
+ @Override
+ public String toString() {
+ return "<Point3d point=" + point.toString() + " z=" + z + ">";
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/Shape.java b/src/test/java/org/yaml/snakeyaml/immutable/Shape.java
index b1f0b412..56f8cca7 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/Shape.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/Shape.java
@@ -1,55 +1,54 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable;
public class Shape {
- private Color color;
- private Point point;
- private Point3d point3d;
- private Integer id;
-
- public Point3d getPoint3d() {
- return point3d;
- }
-
- public void setPoint3d(Point3d point3d) {
- this.point3d = point3d;
- }
-
- public void setColor(Color color) {
- this.color = color;
- }
-
- public void setPoint(Point point) {
- this.point = point;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public Color getColor() {
- return color;
- }
-
- public Point getPoint() {
- return point;
- }
-
- public Integer getId() {
- return id;
- }
+
+ private Color color;
+ private Point point;
+ private Point3d point3d;
+ private Integer id;
+
+ public Point3d getPoint3d() {
+ return point3d;
+ }
+
+ public void setPoint3d(Point3d point3d) {
+ this.point3d = point3d;
+ }
+
+ public void setColor(Color color) {
+ this.color = color;
+ }
+
+ public void setPoint(Point point) {
+ this.point = point;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public Color getColor() {
+ return color;
+ }
+
+ public Point getPoint() {
+ return point;
+ }
+
+ public Integer getId() {
+ return id;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/ShapeImmutableTest.java b/src/test/java/org/yaml/snakeyaml/immutable/ShapeImmutableTest.java
index 4d8f4549..971509eb 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/ShapeImmutableTest.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/ShapeImmutableTest.java
@@ -1,151 +1,144 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
public class ShapeImmutableTest extends TestCase {
- public void testColor() {
- Yaml yaml = new Yaml();
- Color loaded = (Color) yaml.load("!!org.yaml.snakeyaml.immutable.Color BLACK");
- assertEquals("BLACK", loaded.getName());
- }
-
- public void testCode() {
- Yaml yaml = new Yaml();
- Code loaded = (Code) yaml.load("!!org.yaml.snakeyaml.immutable.Code 123");
- assertEquals(new Integer(123), loaded.getCode());
- }
-
- public void testSuperColor() {
- Yaml yaml = new Yaml();
- SuperColor superColor = (SuperColor) yaml
- .load("!!org.yaml.snakeyaml.immutable.SuperColor [!!org.yaml.snakeyaml.immutable.Color BLACK]");
- assertEquals("BLACK", superColor.getColor().getName());
- }
-
- public void testSuperColorFail() {
- Yaml yaml = new Yaml();
- try {
- yaml.load("!!org.yaml.snakeyaml.immutable.SuperColor BLACK");
- fail("SuperColor requires Color and not a String.");
- } catch (Exception e) {
- assertTrue(e
- .getMessage()
- .startsWith(
- "Can't construct a java object for tag:yaml.org,2002:org.yaml.snakeyaml.immutable.SuperColor; exception=Unsupported class: class org.yaml.snakeyaml.immutable.Color"));
- }
- }
-
- public void testCode2() {
- Yaml yaml = new Yaml();
- Code2 code2 = (Code2) yaml.load("!!org.yaml.snakeyaml.immutable.Code2 555");
- assertEquals(new Integer(555), code2.getCode());
- }
-
- public void testCode3() {
- Yaml yaml = new Yaml();
- try {
- yaml.load("!!org.yaml.snakeyaml.immutable.Code3 777");
- fail("There must be 1 constructor with 1 argument for scalar.");
- } catch (Exception e) {
- assertTrue(e
- .getMessage()
- .startsWith(
- "Can't construct a java object for tag:yaml.org,2002:org.yaml.snakeyaml.immutable.Code3; exception=No single argument constructor found for class org.yaml.snakeyaml.immutable.Code3"));
- }
- }
-
- public void testCode4() {
- Yaml yaml = new Yaml();
- try {
- yaml.load("!!org.yaml.snakeyaml.immutable.Code4 777");
- fail("Constructor with String is required.");
- } catch (Exception e) {
- assertEquals(
- "Can't construct a java object for tag:yaml.org,2002:org.yaml.snakeyaml.immutable.Code4; exception=Can't construct a java object for scalar tag:yaml.org,2002:org.yaml.snakeyaml.immutable.Code4; No String constructor found. Exception=org.yaml.snakeyaml.immutable.Code4.<init>(java.lang.String)\n"
- + " in 'string', line 1, column 1:\n"
- + " !!org.yaml.snakeyaml.immutable.C ... \n" + " ^\n",
- e.getMessage());
- }
- }
-
- public void testPoint() {
- Yaml yaml = new Yaml();
- Point loaded = (Point) yaml.load("!!org.yaml.snakeyaml.immutable.Point [1.17, 3.14]");
- assertEquals(1.17, loaded.getX());
- assertEquals(3.14, loaded.getY());
- }
-
- public void testPointBlock() {
- Yaml yaml = new Yaml();
- Point loaded = (Point) yaml.load("!!org.yaml.snakeyaml.immutable.Point\n- 1.17\n- 3.14");
- assertEquals(1.17, loaded.getX());
- assertEquals(3.14, loaded.getY());
- }
-
- public void testPointOnlyOneArgument() {
- Yaml yaml = new Yaml();
- try {
- yaml.load("!!org.yaml.snakeyaml.immutable.Point\n- 1.17");
- fail("Two arguments required.");
- } catch (Exception e) {
- assertEquals(
- "Can't construct a java object for tag:yaml.org,2002:org.yaml.snakeyaml.immutable.Point; exception=No suitable constructor with 1 arguments found for class org.yaml.snakeyaml.immutable.Point\n"
- + " in 'string', line 1, column 1:\n"
- + " !!org.yaml.snakeyaml.immutable.Point\n" + " ^\n",
- e.getMessage());
- }
- }
-
- public void testPoint2() {
- Yaml yaml = new Yaml();
- Point2 loaded = (Point2) yaml.load("!!org.yaml.snakeyaml.immutable.Point2\n- 1\n- 3");
- assertEquals(new Integer(1), loaded.getX());
- assertEquals(new Integer(3), loaded.getY());
+ public void testColor() {
+ Yaml yaml = new Yaml();
+ Color loaded = yaml.load("!!org.yaml.snakeyaml.immutable.Color BLACK");
+ assertEquals("BLACK", loaded.getName());
+ }
+
+ public void testCode() {
+ Yaml yaml = new Yaml();
+ Code loaded = yaml.load("!!org.yaml.snakeyaml.immutable.Code 123");
+ assertEquals(Integer.valueOf(123), loaded.getCode());
+ }
+
+ public void testSuperColor() {
+ Yaml yaml = new Yaml();
+ SuperColor superColor = yaml.load(
+ "!!org.yaml.snakeyaml.immutable.SuperColor [!!org.yaml.snakeyaml.immutable.Color BLACK]");
+ assertEquals("BLACK", superColor.getColor().getName());
+ }
+
+ public void testSuperColorFail() {
+ Yaml yaml = new Yaml();
+ try {
+ yaml.load("!!org.yaml.snakeyaml.immutable.SuperColor BLACK");
+ fail("SuperColor requires Color and not a String.");
+ } catch (Exception e) {
+ assertTrue(e.getMessage().startsWith(
+ "Can't construct a java object for tag:yaml.org,2002:org.yaml.snakeyaml.immutable.SuperColor; exception=Unsupported class: class org.yaml.snakeyaml.immutable.Color"));
}
-
- public void testPoint3d() {
- Yaml yaml = new Yaml();
- Point3d loaded = (Point3d) yaml
- .load("!!org.yaml.snakeyaml.immutable.Point3d [!!org.yaml.snakeyaml.immutable.Point [1.17, 3.14], 345.1]");
- assertEquals(345.1, loaded.getZ());
+ }
+
+ public void testCode2() {
+ Yaml yaml = new Yaml();
+ Code2 code2 = yaml.load("!!org.yaml.snakeyaml.immutable.Code2 555");
+ assertEquals(Integer.valueOf(555), code2.getCode());
+ }
+
+ public void testCode3() {
+ Yaml yaml = new Yaml();
+ try {
+ yaml.load("!!org.yaml.snakeyaml.immutable.Code3 777");
+ fail("There must be 1 constructor with 1 argument for scalar.");
+ } catch (Exception e) {
+ assertTrue(e.getMessage().startsWith(
+ "Can't construct a java object for tag:yaml.org,2002:org.yaml.snakeyaml.immutable.Code3; exception=No single argument constructor found for class org.yaml.snakeyaml.immutable.Code3"));
}
-
- public void testShape() {
- Yaml yaml = new Yaml();
- String source = Util.getLocalResource("immutable/shape1.yaml");
- Shape loaded = (Shape) yaml.load(source);
- assertEquals(new Integer(123), loaded.getId());
+ }
+
+ public void testCode4() {
+ Yaml yaml = new Yaml();
+ try {
+ yaml.load("!!org.yaml.snakeyaml.immutable.Code4 777");
+ fail("Constructor with String is required.");
+ } catch (Exception e) {
+ assertEquals(
+ "Can't construct a java object for tag:yaml.org,2002:org.yaml.snakeyaml.immutable.Code4; exception=Can't construct a java object for scalar tag:yaml.org,2002:org.yaml.snakeyaml.immutable.Code4; No String constructor found. Exception=org.yaml.snakeyaml.immutable.Code4.<init>(java.lang.String)\n"
+ + " in 'string', line 1, column 1:\n" + " !!org.yaml.snakeyaml.immutable.C ... \n"
+ + " ^\n",
+ e.getMessage());
}
-
- public void testShapeNoTags() {
- String source = Util.getLocalResource("immutable/shapeNoTags.yaml");
- Yaml beanLoader = new Yaml();
- Shape loaded = beanLoader.loadAs(source, Shape.class);
- assertEquals(new Integer(123), loaded.getId());
- assertEquals("BLACK", loaded.getColor().getName());
- assertEquals(1.17, loaded.getPoint().getX());
- assertEquals(3.14, loaded.getPoint().getY());
- assertEquals(345.1, loaded.getPoint3d().getZ());
- assertEquals(1.96, loaded.getPoint3d().getPoint().getX());
- assertEquals(1.78, loaded.getPoint3d().getPoint().getY());
+ }
+
+ public void testPoint() {
+ Yaml yaml = new Yaml();
+ Point loaded = yaml.load("!!org.yaml.snakeyaml.immutable.Point [1.17, 3.14]");
+ assertEquals(1.17, loaded.getX());
+ assertEquals(3.14, loaded.getY());
+ }
+
+ public void testPointBlock() {
+ Yaml yaml = new Yaml();
+ Point loaded = yaml.load("!!org.yaml.snakeyaml.immutable.Point\n- 1.17\n- 3.14");
+ assertEquals(1.17, loaded.getX());
+ assertEquals(3.14, loaded.getY());
+ }
+
+ public void testPointOnlyOneArgument() {
+ Yaml yaml = new Yaml();
+ try {
+ yaml.load("!!org.yaml.snakeyaml.immutable.Point\n- 1.17");
+ fail("Two arguments required.");
+ } catch (Exception e) {
+ assertEquals(
+ "Can't construct a java object for tag:yaml.org,2002:org.yaml.snakeyaml.immutable.Point; exception=No suitable constructor with 1 arguments found for class org.yaml.snakeyaml.immutable.Point\n"
+ + " in 'string', line 1, column 1:\n" + " !!org.yaml.snakeyaml.immutable.Point\n"
+ + " ^\n",
+ e.getMessage());
}
+ }
+
+ public void testPoint2() {
+ Yaml yaml = new Yaml();
+ Point2 loaded = yaml.load("!!org.yaml.snakeyaml.immutable.Point2\n- 1\n- 3");
+ assertEquals(Integer.valueOf(1), loaded.getX());
+ assertEquals(Integer.valueOf(3), loaded.getY());
+ }
+
+ public void testPoint3d() {
+ Yaml yaml = new Yaml();
+ Point3d loaded = yaml.load(
+ "!!org.yaml.snakeyaml.immutable.Point3d [!!org.yaml.snakeyaml.immutable.Point [1.17, 3.14], 345.1]");
+ assertEquals(345.1, loaded.getZ());
+ }
+
+ public void testShape() {
+ Yaml yaml = new Yaml();
+ String source = Util.getLocalResource("immutable/shape1.yaml");
+ Shape loaded = yaml.load(source);
+ assertEquals(Integer.valueOf(123), loaded.getId());
+ }
+
+ public void testShapeNoTags() {
+ String source = Util.getLocalResource("immutable/shapeNoTags.yaml");
+ Yaml beanLoader = new Yaml();
+ Shape loaded = beanLoader.loadAs(source, Shape.class);
+ assertEquals(Integer.valueOf(123), loaded.getId());
+ assertEquals("BLACK", loaded.getColor().getName());
+ assertEquals(1.17, loaded.getPoint().getX());
+ assertEquals(3.14, loaded.getPoint().getY());
+ assertEquals(345.1, loaded.getPoint3d().getZ());
+ assertEquals(1.96, loaded.getPoint3d().getPoint().getX());
+ assertEquals(1.78, loaded.getPoint3d().getPoint().getY());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/SuperColor.java b/src/test/java/org/yaml/snakeyaml/immutable/SuperColor.java
index 0a249628..43b01a3d 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/SuperColor.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/SuperColor.java
@@ -1,52 +1,51 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable;
public class SuperColor {
- private final Color color;
- public SuperColor(Color name) {
- this.color = name;
- }
+ private final Color color;
- public Color getName() {
- return color;
- }
+ public SuperColor(Color name) {
+ this.color = name;
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof SuperColor) {
- SuperColor color = (SuperColor) obj;
- return color.equals(color.color);
- } else {
- return false;
- }
- }
+ public Color getName() {
+ return color;
+ }
- @Override
- public int hashCode() {
- return color.hashCode();
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof SuperColor) {
+ SuperColor color = (SuperColor) obj;
+ return color.equals(color.color);
+ } else {
+ return false;
}
+ }
- @Override
- public String toString() {
- return "SuperColor color=" + color;
- }
+ @Override
+ public int hashCode() {
+ return color.hashCode();
+ }
- public Color getColor() {
- return color;
- }
+ @Override
+ public String toString() {
+ return "SuperColor color=" + color;
+ }
+
+ public Color getColor() {
+ return color;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/primitives/BunchOfPrimitives.java b/src/test/java/org/yaml/snakeyaml/immutable/primitives/BunchOfPrimitives.java
index 19008b47..2f826cd4 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/primitives/BunchOfPrimitives.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/primitives/BunchOfPrimitives.java
@@ -1,67 +1,66 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable.primitives;
public class BunchOfPrimitives {
- private int primitiveInt;
- private double primitiveDouble;
- public boolean primitiveBoolean;
- public BunchOfPrimitives(int primitiveInt, double primitiveDouble, boolean primitiveBoolean) {
- this.primitiveInt = primitiveInt;
- this.primitiveDouble = primitiveDouble;
- this.primitiveBoolean = primitiveBoolean;
- }
+ private final int primitiveInt;
+ private double primitiveDouble;
+ public boolean primitiveBoolean;
- /**
- * The number of parameters is the same but the type is different
- */
- public BunchOfPrimitives(int i1, int i2, int i3) {
- this.primitiveInt = i1;
- }
+ public BunchOfPrimitives(int primitiveInt, double primitiveDouble, boolean primitiveBoolean) {
+ this.primitiveInt = primitiveInt;
+ this.primitiveDouble = primitiveDouble;
+ this.primitiveBoolean = primitiveBoolean;
+ }
- public BunchOfPrimitives(long i1, double i2, boolean i3) {
- this((int) i1, i2, i3);
- }
+ /**
+ * The number of parameters is the same but the type is different
+ */
+ public BunchOfPrimitives(int i1, int i2, int i3) {
+ this.primitiveInt = i1;
+ }
- public int getPrimitiveInt() {
- return primitiveInt;
- }
+ public BunchOfPrimitives(long i1, double i2, boolean i3) {
+ this((int) i1, i2, i3);
+ }
- public double getPrimitiveDouble() {
- return primitiveDouble;
- }
+ public int getPrimitiveInt() {
+ return primitiveInt;
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof BunchOfPrimitives) {
- BunchOfPrimitives bunch = (BunchOfPrimitives) obj;
- return primitiveInt == bunch.primitiveInt;
- } else {
- return false;
- }
- }
+ public double getPrimitiveDouble() {
+ return primitiveDouble;
+ }
- @Override
- public int hashCode() {
- return primitiveInt;
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof BunchOfPrimitives) {
+ BunchOfPrimitives bunch = (BunchOfPrimitives) obj;
+ return primitiveInt == bunch.primitiveInt;
+ } else {
+ return false;
}
+ }
- @Override
- public String toString() {
- return "BunchOfPrimitives " + primitiveInt;
- }
+ @Override
+ public int hashCode() {
+ return primitiveInt;
+ }
+
+ @Override
+ public String toString() {
+ return "BunchOfPrimitives " + primitiveInt;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/primitives/ImmutablePrimitivesRepresenter.java b/src/test/java/org/yaml/snakeyaml/immutable/primitives/ImmutablePrimitivesRepresenter.java
index 36745dc0..6de67cd9 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/primitives/ImmutablePrimitivesRepresenter.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/primitives/ImmutablePrimitivesRepresenter.java
@@ -1,40 +1,39 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable.primitives;
import java.util.Arrays;
-
+import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.nodes.Node;
import org.yaml.snakeyaml.nodes.Tag;
import org.yaml.snakeyaml.representer.Represent;
import org.yaml.snakeyaml.representer.Representer;
public class ImmutablePrimitivesRepresenter extends Representer {
- public ImmutablePrimitivesRepresenter() {
- super();
- this.representers.put(BunchOfPrimitives.class, new RepresentPrimitives());
- }
- class RepresentPrimitives implements Represent {
- public Node representData(Object data) {
- BunchOfPrimitives bunch = (BunchOfPrimitives) data;
- return representSequence(
- getTag(data.getClass(), new Tag(data.getClass())),
- Arrays.asList(new Object[] { bunch.getPrimitiveInt(),
- bunch.getPrimitiveDouble(), bunch.primitiveBoolean }), true);
- }
+ public ImmutablePrimitivesRepresenter() {
+ super();
+ this.representers.put(BunchOfPrimitives.class, new RepresentPrimitives());
+ }
+
+ class RepresentPrimitives implements Represent {
+
+ public Node representData(Object data) {
+ BunchOfPrimitives bunch = (BunchOfPrimitives) data;
+ return representSequence(getTag(data.getClass(), new Tag(data.getClass())), Arrays
+ .asList(bunch.getPrimitiveInt(), bunch.getPrimitiveDouble(), bunch.primitiveBoolean),
+ DumperOptions.FlowStyle.FLOW);
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/immutable/primitives/ImmutablePrimitivesTest.java b/src/test/java/org/yaml/snakeyaml/immutable/primitives/ImmutablePrimitivesTest.java
index 801715b7..d50743f1 100644
--- a/src/test/java/org/yaml/snakeyaml/immutable/primitives/ImmutablePrimitivesTest.java
+++ b/src/test/java/org/yaml/snakeyaml/immutable/primitives/ImmutablePrimitivesTest.java
@@ -1,55 +1,51 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.immutable.primitives;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.error.YAMLException;
public class ImmutablePrimitivesTest extends TestCase {
- public void testPrimitives() {
- Yaml yaml = new Yaml(new ImmutablePrimitivesRepresenter());
- BunchOfPrimitives bunch = new BunchOfPrimitives(10, 40.0, true);
- String dump = yaml.dump(bunch);
- assertEquals("!!" + bunch.getClass().getCanonicalName() + " [10, 40.0, true]\n", dump);
- Object loaded = yaml.load(dump);
- assertEquals(loaded.toString(), bunch, loaded);
- }
+ public void testPrimitives() {
+ Yaml yaml = new Yaml(new ImmutablePrimitivesRepresenter());
+ BunchOfPrimitives bunch = new BunchOfPrimitives(10, 40.0, true);
+ String dump = yaml.dump(bunch);
+ assertEquals("!!" + bunch.getClass().getCanonicalName() + " [10, 40.0, true]\n", dump);
+ Object loaded = yaml.load(dump);
+ assertEquals(loaded.toString(), bunch, loaded);
+ }
- public void testPrimitivesLong() {
- Yaml yaml = new Yaml();
- String dump = "!!org.yaml.snakeyaml.immutable.primitives.BunchOfPrimitives [10000000000, 40.0, true]";
- BunchOfPrimitives bunch = (BunchOfPrimitives) yaml.load(dump);
- assertEquals("Must be truncated.", new Long(10000000000L).intValue(),
- bunch.getPrimitiveInt());
- }
+ public void testPrimitivesLong() {
+ Yaml yaml = new Yaml();
+ String dump =
+ "!!org.yaml.snakeyaml.immutable.primitives.BunchOfPrimitives [10000000000, 40.0, true]";
+ BunchOfPrimitives bunch = yaml.load(dump);
+ assertEquals("Must be truncated.", Long.valueOf(10000000000L).intValue(),
+ bunch.getPrimitiveInt());
+ }
- public void testPrimitivesException() {
- Yaml yaml = new Yaml();
- String dump = "!!org.yaml.snakeyaml.immutable.primitives.BunchOfPrimitives [10, 40, true]";
- try {
- yaml.load(dump);
- fail();
- } catch (YAMLException e) {
- assertTrue(e
- .getMessage()
- .startsWith(
- "Can't construct a java object for tag:yaml.org,2002:org.yaml.snakeyaml.immutable.primitives.BunchOfPrimitives; exception=No suitable constructor with 3 arguments found for class org.yaml.snakeyaml.immutable.primitives.BunchOfPrimitives"));
- }
+ public void testPrimitivesException() {
+ Yaml yaml = new Yaml();
+ String dump = "!!org.yaml.snakeyaml.immutable.primitives.BunchOfPrimitives [10, 40, true]";
+ try {
+ yaml.load(dump);
+ fail();
+ } catch (YAMLException e) {
+ assertTrue(e.getMessage().startsWith(
+ "Can't construct a java object for tag:yaml.org,2002:org.yaml.snakeyaml.immutable.primitives.BunchOfPrimitives; exception=No suitable constructor with 3 arguments found for class org.yaml.snakeyaml.immutable.primitives.BunchOfPrimitives"));
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/introspector/PropertyTest.java b/src/test/java/org/yaml/snakeyaml/introspector/PropertyTest.java
new file mode 100644
index 00000000..f538357a
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/introspector/PropertyTest.java
@@ -0,0 +1,156 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.introspector;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.annotation.Annotation;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import org.junit.Assert;
+import org.junit.Test;
+import org.yaml.snakeyaml.constructor.TestBean1;
+
+public class PropertyTest {
+
+ @Test
+ public void testMethodPropertyToString() throws IntrospectionException {
+ for (PropertyDescriptor property : Introspector.getBeanInfo(TestBean1.class)
+ .getPropertyDescriptors()) {
+ if (property.getName().equals("text")) {
+ MethodProperty prop = new MethodProperty(property);
+ assertEquals("text of class java.lang.String", prop.toString());
+ }
+ }
+ }
+
+ @Test
+ public void testGetFieldPropertyAnnotation() {
+ PropertyUtils propertyUtils = new PropertyUtils();
+ propertyUtils.setBeanAccess(BeanAccess.FIELD);
+
+ Property name = propertyUtils.getProperty(TestBean.class, "name");
+
+ TestAnnotation annotation = name.getAnnotation(TestAnnotation.class);
+ assertNotNull(annotation);
+ assertEquals("field", annotation.value());
+ }
+
+ @Test
+ public void testGetFieldPropertyAnnotations() {
+ PropertyUtils propertyUtils = new PropertyUtils();
+ propertyUtils.setBeanAccess(BeanAccess.FIELD);
+
+ Property property = propertyUtils.getProperty(TestBean.class, "name");
+
+ List<Annotation> annotations = property.getAnnotations();
+ assertEquals(1, annotations.size());
+
+ Annotation annotation = annotations.get(0);
+ assertEquals(annotation.annotationType(), TestAnnotation.class);
+ assertEquals("field", ((TestAnnotation) annotation).value());
+
+ }
+
+ @Test
+ public void testGetMethodPropertyAnnotation() {
+ PropertyUtils propertyUtils = new PropertyUtils();
+ propertyUtils.setBeanAccess(BeanAccess.PROPERTY);
+
+ Property property = propertyUtils.getProperty(TestBean.class, "age");
+
+ TestAnnotation annotation = property.getAnnotation(TestAnnotation.class);
+ assertNotNull(annotation);
+ assertEquals("getter", annotation.value()); // Annotation on getter takes precedence
+ }
+
+ @Test
+ public void testGetMethodPropertyAnnotationSetterOnly() {
+ PropertyUtils propertyUtils = new PropertyUtils();
+ propertyUtils.setBeanAccess(BeanAccess.PROPERTY);
+
+ Property property = propertyUtils.getProperty(TestBean.class, "lastName");
+ TestAnnotation annotation = property.getAnnotation(TestAnnotation.class);
+ assertNotNull(annotation);
+ assertEquals("setter", annotation.value());
+ }
+
+ @Test
+ public void testGetMethodPropertyAnnotationsSetterOnly() {
+ PropertyUtils propertyUtils = new PropertyUtils();
+ propertyUtils.setBeanAccess(BeanAccess.PROPERTY);
+
+ Property property = propertyUtils.getProperty(TestBean.class, "lastName");
+ List<Annotation> annotations = property.getAnnotations();
+ assertEquals(1, annotations.size());
+
+ Annotation annotation = annotations.get(0);
+
+ Assert.assertEquals(TestAnnotation.class, annotation.annotationType());
+ Assert.assertEquals("setter", ((TestAnnotation) annotation).value());
+ }
+
+ @Test
+ public void testGetMethodPropertyAnnotations() {
+ PropertyUtils propertyUtils = new PropertyUtils();
+ propertyUtils.setBeanAccess(BeanAccess.PROPERTY);
+
+ Property age = propertyUtils.getProperty(TestBean.class, "age");
+
+ List<Annotation> annotations = age.getAnnotations();
+ assertEquals(2, annotations.size());
+
+ Set<String> expectedValues = new HashSet<String>(Arrays.asList("getter", "setter"));
+
+ for (Annotation annotation : annotations) {
+ assertEquals(annotation.annotationType(), TestAnnotation.class);
+ String value = ((TestAnnotation) annotation).value();
+ Assert.assertTrue("The annotation has unexpected value: " + annotation,
+ expectedValues.remove(value));
+ }
+ }
+
+ @Test
+ public void testGetMissingPropertyAnnotation() {
+ PropertyUtils propertyUtils = new PropertyUtils();
+ propertyUtils.setSkipMissingProperties(true);
+
+ Property property = propertyUtils.getProperty(TestBean.class, "missing");
+
+ assertNull(property.getAnnotation(TestAnnotation.class));
+ }
+
+ @Test
+ public void testGetMissingPropertyAnnotations() {
+ PropertyUtils propertyUtils = new PropertyUtils();
+ propertyUtils.setSkipMissingProperties(true);
+
+ Property property = propertyUtils.getProperty(TestBean.class, "missing");
+
+ List<Annotation> annotations = property.getAnnotations();
+
+ assertNotNull(annotations);
+ assertTrue(annotations.isEmpty());
+ }
+
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/introspector/TestAnnotation.java b/src/test/java/org/yaml/snakeyaml/introspector/TestAnnotation.java
new file mode 100644
index 00000000..7e276fae
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/introspector/TestAnnotation.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.introspector;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.METHOD, ElementType.FIELD})
+public @interface TestAnnotation {
+
+ String value() default "";
+}
diff --git a/src/test/java/org/yaml/snakeyaml/introspector/TestBean.java b/src/test/java/org/yaml/snakeyaml/introspector/TestBean.java
new file mode 100644
index 00000000..83a171da
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/introspector/TestBean.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.introspector;
+
+public class TestBean {
+
+ @TestAnnotation("field")
+ private String name;
+ private String lastName;
+ private Integer age;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @TestAnnotation(value = "setter")
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ @TestAnnotation(value = "getter")
+ public Integer getAge() {
+ return age;
+ }
+
+ @TestAnnotation(value = "setter")
+ public void setAge(Integer age) {
+ this.age = age;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue10/BasicDumpTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue10/BasicDumpTest.java
index a16c4e27..1b88b499 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue10/BasicDumpTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue10/BasicDumpTest.java
@@ -1,99 +1,95 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue10;
import java.util.ArrayList;
import java.util.Iterator;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
public class BasicDumpTest extends TestCase {
- public void testTag() {
- DataSource base = new DataSource();
- JDBCDataSource baseJDBC = new JDBCDataSource();
- baseJDBC.setParent(base);
-
- ArrayList<DataSource> dataSources = new ArrayList<DataSource>();
- // trying expected order first
- dataSources.add(base);
- dataSources.add(baseJDBC);
-
- DataSources ds = new DataSources();
- ds.setDataSources(dataSources);
-
- Yaml yaml = new Yaml();
- String output = yaml.dump(ds);
-
- String etalon = Util.getLocalResource("javabeans/issue10-1.yaml");
- assertEquals(etalon.trim(), output.trim());
- Object obj = yaml.load(output);
- DataSources dsOut = (DataSources) obj;
- Iterator<DataSource> iter = dsOut.getDataSources().iterator();
- assertFalse("Must be DataSource.", iter.next() instanceof JDBCDataSource);
- assertTrue(iter.next() instanceof JDBCDataSource);
- }
-
- public void testTag2() {
- DataSource base = new DataSource();
- JDBCDataSource baseJDBC = new JDBCDataSource();
- baseJDBC.setParent(base);
-
- ArrayList<DataSource> dataSources = new ArrayList<DataSource>();
- dataSources.add(base);
- dataSources.add(baseJDBC);
-
- DataSources ds = new DataSources();
- ds.setDataSources(dataSources);
-
- Yaml yaml = new Yaml();
- String output = yaml.dumpAsMap(ds);
-
- String etalon = Util.getLocalResource("javabeans/issue10-2.yaml");
- assertEquals(etalon.trim(), output.trim());
- }
-
- /**
- * different order does not require the global tag
- */
- public void testTag3() {
- DataSource base = new DataSource();
- JDBCDataSource baseJDBC = new JDBCDataSource();
- baseJDBC.setParent(base);
-
- ArrayList<DataSource> dataSources = new ArrayList<DataSource>();
- dataSources.add(baseJDBC);
- dataSources.add(base);
-
- DataSources ds = new DataSources();
- ds.setDataSources(dataSources);
-
- Yaml yaml = new Yaml();
- String output = yaml.dumpAsMap(ds);
-
- String etalon = Util.getLocalResource("javabeans/issue10-3.yaml");
- assertEquals(etalon.trim(), output.trim());
- // load
- Yaml beanLoader = new Yaml();
- DataSources bean = beanLoader.loadAs(output, DataSources.class);
- Iterator<DataSource> iter = bean.getDataSources().iterator();
- assertTrue(iter.next() instanceof JDBCDataSource);
- assertFalse("Must be DataSource.", iter.next() instanceof JDBCDataSource);
- }
+ public void testTag() {
+ DataSource base = new DataSource();
+ JDBCDataSource baseJDBC = new JDBCDataSource();
+ baseJDBC.setParent(base);
+
+ ArrayList<DataSource> dataSources = new ArrayList<DataSource>();
+ // trying expected order first
+ dataSources.add(base);
+ dataSources.add(baseJDBC);
+
+ DataSources ds = new DataSources();
+ ds.setDataSources(dataSources);
+
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(ds);
+
+ String etalon = Util.getLocalResource("javabeans/issue10-1.yaml");
+ assertEquals(etalon.trim(), output.trim());
+ Object obj = yaml.load(output);
+ DataSources dsOut = (DataSources) obj;
+ Iterator<DataSource> iter = dsOut.getDataSources().iterator();
+ assertFalse("Must be DataSource.", iter.next() instanceof JDBCDataSource);
+ assertTrue(iter.next() instanceof JDBCDataSource);
+ }
+
+ public void testTag2() {
+ DataSource base = new DataSource();
+ JDBCDataSource baseJDBC = new JDBCDataSource();
+ baseJDBC.setParent(base);
+
+ ArrayList<DataSource> dataSources = new ArrayList<DataSource>();
+ dataSources.add(base);
+ dataSources.add(baseJDBC);
+
+ DataSources ds = new DataSources();
+ ds.setDataSources(dataSources);
+
+ Yaml yaml = new Yaml();
+ String output = yaml.dumpAsMap(ds);
+
+ String etalon = Util.getLocalResource("javabeans/issue10-2.yaml");
+ assertEquals(etalon.trim(), output.trim());
+ }
+
+ /**
+ * different order does not require the global tag
+ */
+ public void testTag3() {
+ DataSource base = new DataSource();
+ JDBCDataSource baseJDBC = new JDBCDataSource();
+ baseJDBC.setParent(base);
+
+ ArrayList<DataSource> dataSources = new ArrayList<DataSource>();
+ dataSources.add(baseJDBC);
+ dataSources.add(base);
+
+ DataSources ds = new DataSources();
+ ds.setDataSources(dataSources);
+
+ Yaml yaml = new Yaml();
+ String output = yaml.dumpAsMap(ds);
+
+ String etalon = Util.getLocalResource("javabeans/issue10-3.yaml");
+ assertEquals(etalon.trim(), output.trim());
+ // load
+ Yaml beanLoader = new Yaml();
+ DataSources bean = beanLoader.loadAs(output, DataSources.class);
+ Iterator<DataSource> iter = bean.getDataSources().iterator();
+ assertTrue(iter.next() instanceof JDBCDataSource);
+ assertFalse("Must be DataSource.", iter.next() instanceof JDBCDataSource);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue10/DataSource.java b/src/test/java/org/yaml/snakeyaml/issues/issue10/DataSource.java
index 3063b9ea..0874ac12 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue10/DataSource.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue10/DataSource.java
@@ -1,28 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue10;
public class DataSource {
- String name;
- public String getName() {
- return name;
- }
+ String name;
- public void setName(String name) {
- this.name = name;
- }
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue10/DataSources.java b/src/test/java/org/yaml/snakeyaml/issues/issue10/DataSources.java
index 995e2ca4..ecdbee37 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue10/DataSources.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue10/DataSources.java
@@ -1,30 +1,29 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue10;
import java.util.List;
public class DataSources {
- List<DataSource> dataSources;
- public List<DataSource> getDataSources() {
- return dataSources;
- }
+ List<DataSource> dataSources;
- public void setDataSources(List<DataSource> dataSources) {
- this.dataSources = dataSources;
- }
+ public List<DataSource> getDataSources() {
+ return dataSources;
+ }
+
+ public void setDataSources(List<DataSource> dataSources) {
+ this.dataSources = dataSources;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue10/JDBCDataSource.java b/src/test/java/org/yaml/snakeyaml/issues/issue10/JDBCDataSource.java
index e80193ea..6f2e2482 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue10/JDBCDataSource.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue10/JDBCDataSource.java
@@ -1,56 +1,55 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue10;
public class JDBCDataSource extends DataSource {
- String username;
- String password;
- String url;
- DataSource parent;
+ String username;
+ String password;
+ String url;
- public DataSource getParent() {
- return parent;
- }
+ DataSource parent;
- public void setParent(DataSource parent) {
- this.parent = parent;
- }
+ public DataSource getParent() {
+ return parent;
+ }
- public String getUsername() {
- return username;
- }
+ public void setParent(DataSource parent) {
+ this.parent = parent;
+ }
- public void setUsername(String username) {
- this.username = username;
- }
+ public String getUsername() {
+ return username;
+ }
- public String getPassword() {
- return password;
- }
+ public void setUsername(String username) {
+ this.username = username;
+ }
- public void setPassword(String password) {
- this.password = password;
- }
+ public String getPassword() {
+ return password;
+ }
- public String getUrl() {
- return url;
- }
+ public void setPassword(String password) {
+ this.password = password;
+ }
- public void setUrl(String url) {
- this.url = url;
- }
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue100/Data.java b/src/test/java/org/yaml/snakeyaml/issues/issue100/Data.java
index 1596802a..08d794f7 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue100/Data.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue100/Data.java
@@ -1,65 +1,64 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue100;
public class Data {
- private String id;
- private int age;
- public Data() {
- this.id = null;
- this.age = 999;
- }
+ private String id;
+ private int age;
- public Data(String id, int age) {
- this.id = id;
- this.age = age;
- }
+ public Data() {
+ this.id = null;
+ this.age = 999;
+ }
- public String getId() {
- return id;
- }
+ public Data(String id, int age) {
+ this.id = id;
+ this.age = age;
+ }
- public void setId(String id) {
- this.id = id;
- }
+ public String getId() {
+ return id;
+ }
- public int getAge() {
- return age;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- public void setAge(int age) {
- this.age = age;
- }
+ public int getAge() {
+ return age;
+ }
- @Override
- public String toString() {
- return "Data [age=" + age + ", id=" + id + "]";
- }
+ public void setAge(int age) {
+ this.age = age;
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof Data) {
- return toString().equals(obj.toString());
- }
- return false;
- }
+ @Override
+ public String toString() {
+ return "Data [age=" + age + ", id=" + id + "]";
+ }
- @Override
- public int hashCode() {
- return toString().hashCode();
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof Data) {
+ return toString().equals(obj.toString());
}
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ return toString().hashCode();
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue100/DataBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue100/DataBean.java
index cd311714..a60b25af 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue100/DataBean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue100/DataBean.java
@@ -1,47 +1,46 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue100;
public class DataBean {
- private String id;
- private Data data;
- private DataMore more;
- public String getId() {
- return id;
- }
+ private String id;
+ private Data data;
+ private DataMore more;
- public void setId(String id) {
- this.id = id;
- }
+ public String getId() {
+ return id;
+ }
- public Data getData() {
- return data;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- public void setData(Data data) {
- this.data = data;
- }
+ public Data getData() {
+ return data;
+ }
- public DataMore getMore() {
- return more;
- }
+ public void setData(Data data) {
+ this.data = data;
+ }
- public void setMore(DataMore more) {
- this.more = more;
- }
+ public DataMore getMore() {
+ return more;
+ }
+
+ public void setMore(DataMore more) {
+ this.more = more;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue100/DataMore.java b/src/test/java/org/yaml/snakeyaml/issues/issue100/DataMore.java
index 4d4dff31..5ff96502 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue100/DataMore.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue100/DataMore.java
@@ -1,43 +1,42 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue100;
public class DataMore extends Data {
- private boolean complete;
- public DataMore() {
- setId("-1");
- setAge(-1);
- }
+ private boolean complete;
- public DataMore(String id, int age, boolean complete) {
- super(id, age);
- this.complete = complete;
- }
+ public DataMore() {
+ setId("-1");
+ setAge(-1);
+ }
- public boolean isComplete() {
- return complete;
- }
+ public DataMore(String id, int age, boolean complete) {
+ super(id, age);
+ this.complete = complete;
+ }
- public void setComplete(boolean complete) {
- this.complete = complete;
- }
+ public boolean isComplete() {
+ return complete;
+ }
- @Override
- public String toString() {
- return "DataMore [complete=" + complete + ", toString()=" + super.toString() + "]";
- }
+ public void setComplete(boolean complete) {
+ this.complete = complete;
+ }
+
+ @Override
+ public String toString() {
+ return "DataMore [complete=" + complete + ", toString()=" + super.toString() + "]";
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue100/MergeJavaBeanTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue100/MergeJavaBeanTest.java
index 21545574..431bd82d 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue100/MergeJavaBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue100/MergeJavaBeanTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue100;
@@ -19,180 +17,181 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.Constructor;
public class MergeJavaBeanTest extends TestCase {
- @SuppressWarnings("unchecked")
- public void testNoMerge() {
- String input = "- &id001 !!org.yaml.snakeyaml.issues.issue100.Data {age: 11, id: id123}\n- *id001";
- // System.out.println(input);
- Yaml yaml = new Yaml();
- List<Data> list = (List<Data>) yaml.load(input);
- for (Data data : list) {
- // System.out.println(data);
- assertEquals("id123", data.getId());
- assertEquals(11, data.getAge());
- }
- }
-
- public void testMergeWithTags() {
- String input = Util.getLocalResource("issues/issue100-1.yaml");
- // System.out.println(input);
- Yaml yaml = new Yaml();
-
- List<?> list = (List<?>) yaml.load(input);
- // First object: Data ( 11, "id123" )
- assertEquals(list.get(0).getClass(), Data.class);
- assertEquals(11, ((Data) list.get(0)).getAge());
- assertEquals("id123", ((Data) list.get(0)).getId());
-
- // Second object: Data ( 13, "id456" )
- assertEquals(list.get(1).getClass(), Data.class);
- assertEquals(13, ((Data) list.get(1)).getAge());
- assertEquals("id456", ((Data) list.get(1)).getId());
-
- // Third object: Data ( 11, "id789" )
- assertEquals(list.get(2).getClass(), Data.class);
- assertEquals(11, ((Data) list.get(2)).getAge());
- assertEquals("id789", ((Data) list.get(2)).getId());
-
- // 4th object: DataMore ( 30, "id123" )
- assertEquals(list.get(3).getClass(), DataMore.class);
- assertEquals(30, ((DataMore) list.get(3)).getAge());
- assertEquals("id123", ((DataMore) list.get(3)).getId());
- assertTrue(((DataMore) list.get(3)).isComplete());
-
- // 5th object: Map ( age: 100 )
- assertTrue(list.get(4) instanceof Map);
- assertEquals(1, ((Map<?, ?>) list.get(4)).size());
- assertTrue(((Map<?, ?>) list.get(4)).containsKey("age"));
- assertEquals(100, ((Map<?, ?>) list.get(4)).get("age"));
-
- // 6th object: DataMore ( 100, "id789" )
- assertEquals(list.get(5).getClass(), DataMore.class);
- assertEquals(100, ((DataMore) list.get(5)).getAge());
- assertEquals("id789", ((DataMore) list.get(5)).getId());
- assertFalse(((DataMore) list.get(5)).isComplete());
- // All instances except the last Map must be different Data instances
- Set<Data> dataSet = new HashSet<Data>();
- for (Object data : list) {
- if (data instanceof Data) {
- dataSet.add((Data) data);
- }
- }
- assertEquals("Must be all but one Data instances.", list.size() - 1, dataSet.size());
+ @SuppressWarnings("unchecked")
+ public void testNoMerge() {
+ String input =
+ "- &id001 !!org.yaml.snakeyaml.issues.issue100.Data {age: 11, id: id123}\n- *id001";
+ // System.out.println(input);
+ Yaml yaml = new Yaml();
+ List<Data> list = yaml.load(input);
+ for (Data data : list) {
+ // System.out.println(data);
+ assertEquals("id123", data.getId());
+ assertEquals(11, data.getAge());
}
-
- /**
- * Since to explicit tag is provided JavaBean properties are used to create
- * a map
- */
- @SuppressWarnings("unchecked")
- public void testMergeBeanToMap() {
- String input = "- &id001 !!org.yaml.snakeyaml.issues.issue100.Data {age: 11, id: id123}\n- << : *id001";
- // System.out.println(input);
- Yaml yaml = new Yaml();
- List<Object> list = (List<Object>) yaml.load(input);
- // First object: Data ( 11, "id123" )
- Data first = (Data) list.get(0);
- assertEquals(11, first.getAge());
- assertEquals("id123", first.getId());
- // Second object is map
- Map<?, ?> second = (Map<?, ?>) list.get(1);
- assertEquals(11, second.get("age"));
- assertEquals("id123", second.get("id"));
- }
-
- @SuppressWarnings("unchecked")
- public void testMergeAndDeviate() {
- String input = "- &id001 !!org.yaml.snakeyaml.issues.issue100.Data {age: 11, id: id123}\n- <<: *id001\n id: id456";
- // System.out.println(input);
- Yaml yaml = new Yaml();
- List<Object> list = (List<Object>) yaml.load(input);
- // First object: Data ( 11, "id123" )
- Data first = (Data) list.get(0);
- assertEquals(11, first.getAge());
- assertEquals("id123", first.getId());
- // Second object is map with a diffrent id
- Map<?, ?> second = (Map<?, ?>) list.get(1);
- assertEquals(11, second.get("age"));
- assertEquals("id456", second.get("id"));
- }
-
- /**
- * <pre>
- * Test that the merge-override works correctly in the case of custom classes / data types.
- * Two base objects are specified:
- * id001 refers to Data ( 11, "id123" )
- * id002 refers to Data ( 37, null ) with a literal null value
- * The third object is specified as having the properties of id001, with the properties of
- * id002 overriding where they conflict.
- * Data ( 37, "id123" )
- * </pre>
- */
- @SuppressWarnings("unchecked")
- public void testMergeAndDeviateOverride() {
- String input = "- &id001 !!org.yaml.snakeyaml.issues.issue100.Data {age: 11, id: id123}\n- &id002 !!org.yaml.snakeyaml.issues.issue100.Data {age: 37}\n- <<: [ *id002, *id001 ]";
- // System.out.println(input);
- Yaml yaml = new Yaml();
- List<Data> list = (List<Data>) yaml.load(input);
-
- // First object: Data ( 11, "id123" )
- assertEquals(11, list.get(0).getAge());
- assertEquals("id123", list.get(0).getId());
-
- // Second object: Data ( 37, null )
- assertEquals(37, list.get(1).getAge());
- assertEquals(null, list.get(1).getId());
-
- // Third object: map
- Map<?, ?> third = (Map<?, ?>) list.get(2);
- assertEquals(37, third.get("age"));
- assertEquals("id123", third.get("id"));
- }
-
- /**
- * When the merged JavaBean is itself a JavaBean property then explicit tag
- * is not required
- */
- public void testMergeBeanProperty() {
- String input = Util.getLocalResource("issues/issue100-3.yaml");
- // System.out.println(input);
- Yaml yaml = new Yaml(new Constructor(DataBean.class));
- DataBean bean = (DataBean) yaml.load(input);
- assertEquals("id001", bean.getId());
- assertEquals("id002", bean.getData().getId());
- assertEquals(17, bean.getData().getAge());
- assertEquals(17, bean.getMore().getAge());
- assertEquals("more003", bean.getMore().getId());
- assertTrue(bean.getMore().isComplete());
- }
-
- /**
- * Merge map to JavaBean
- */
- @SuppressWarnings("unchecked")
- public void testMergeMapToJavaBean() {
- String input = "- &id001 { age: 11, id: id123 }\n- !!org.yaml.snakeyaml.issues.issue100.Data\n <<: *id001\n id: id456";
- // System.out.println(input);
- Yaml yaml = new Yaml(new Constructor());
- List<Object> objects = (List<Object>) yaml.load(input);
- assertEquals(2, objects.size());
- // Check first type
- Object first = objects.get(0);
- Map<Object, Object> firstMap = (Map<Object, Object>) first;
- // Check first contents
- assertEquals(11, firstMap.get("age"));
- assertEquals("id123", firstMap.get("id"));
- // Check second contents
- Data secondData = (Data) objects.get(1);
- assertEquals(11, secondData.getAge());
- assertEquals("id456", secondData.getId());
+ }
+
+ public void testMergeWithTags() {
+ String input = Util.getLocalResource("issues/issue100-1.yaml");
+ // System.out.println(input);
+ Yaml yaml = new Yaml();
+
+ List<?> list = yaml.load(input);
+ // First object: Data ( 11, "id123" )
+ assertEquals(list.get(0).getClass(), Data.class);
+ assertEquals(11, ((Data) list.get(0)).getAge());
+ assertEquals("id123", ((Data) list.get(0)).getId());
+
+ // Second object: Data ( 13, "id456" )
+ assertEquals(list.get(1).getClass(), Data.class);
+ assertEquals(13, ((Data) list.get(1)).getAge());
+ assertEquals("id456", ((Data) list.get(1)).getId());
+
+ // Third object: Data ( 11, "id789" )
+ assertEquals(list.get(2).getClass(), Data.class);
+ assertEquals(11, ((Data) list.get(2)).getAge());
+ assertEquals("id789", ((Data) list.get(2)).getId());
+
+ // 4th object: DataMore ( 30, "id123" )
+ assertEquals(list.get(3).getClass(), DataMore.class);
+ assertEquals(30, ((DataMore) list.get(3)).getAge());
+ assertEquals("id123", ((DataMore) list.get(3)).getId());
+ assertTrue(((DataMore) list.get(3)).isComplete());
+
+ // 5th object: Map ( age: 100 )
+ assertTrue(list.get(4) instanceof Map);
+ assertEquals(1, ((Map<?, ?>) list.get(4)).size());
+ assertTrue(((Map<?, ?>) list.get(4)).containsKey("age"));
+ assertEquals(100, ((Map<?, ?>) list.get(4)).get("age"));
+
+ // 6th object: DataMore ( 100, "id789" )
+ assertEquals(list.get(5).getClass(), DataMore.class);
+ assertEquals(100, ((DataMore) list.get(5)).getAge());
+ assertEquals("id789", ((DataMore) list.get(5)).getId());
+ assertFalse(((DataMore) list.get(5)).isComplete());
+ // All instances except the last Map must be different Data instances
+ Set<Data> dataSet = new HashSet<Data>();
+ for (Object data : list) {
+ if (data instanceof Data) {
+ dataSet.add((Data) data);
+ }
}
+ assertEquals("Must be all but one Data instances.", list.size() - 1, dataSet.size());
+ }
+
+ /**
+ * Since to explicit tag is provided JavaBean properties are used to create a map
+ */
+ @SuppressWarnings("unchecked")
+ public void testMergeBeanToMap() {
+ String input =
+ "- &id001 !!org.yaml.snakeyaml.issues.issue100.Data {age: 11, id: id123}\n- << : *id001";
+ // System.out.println(input);
+ Yaml yaml = new Yaml();
+ List<Object> list = yaml.load(input);
+ // First object: Data ( 11, "id123" )
+ Data first = (Data) list.get(0);
+ assertEquals(11, first.getAge());
+ assertEquals("id123", first.getId());
+ // Second object is map
+ Map<?, ?> second = (Map<?, ?>) list.get(1);
+ assertEquals(11, second.get("age"));
+ assertEquals("id123", second.get("id"));
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testMergeAndDeviate() {
+ String input =
+ "- &id001 !!org.yaml.snakeyaml.issues.issue100.Data {age: 11, id: id123}\n- <<: *id001\n id: id456";
+ // System.out.println(input);
+ Yaml yaml = new Yaml();
+ List<Object> list = yaml.load(input);
+ // First object: Data ( 11, "id123" )
+ Data first = (Data) list.get(0);
+ assertEquals(11, first.getAge());
+ assertEquals("id123", first.getId());
+ // Second object is map with a diffrent id
+ Map<?, ?> second = (Map<?, ?>) list.get(1);
+ assertEquals(11, second.get("age"));
+ assertEquals("id456", second.get("id"));
+ }
+
+ /**
+ * <pre>
+ * Test that the merge-override works correctly in the case of custom classes / data types.
+ * Two base objects are specified:
+ * id001 refers to Data ( 11, "id123" )
+ * id002 refers to Data ( 37, null ) with a literal null value
+ * The third object is specified as having the properties of id001, with the properties of
+ * id002 overriding where they conflict.
+ * Data ( 37, "id123" )
+ * </pre>
+ */
+ @SuppressWarnings("unchecked")
+ public void testMergeAndDeviateOverride() {
+ String input =
+ "- &id001 !!org.yaml.snakeyaml.issues.issue100.Data {age: 11, id: id123}\n- &id002 !!org.yaml.snakeyaml.issues.issue100.Data {age: 37}\n- <<: [ *id002, *id001 ]";
+ // System.out.println(input);
+ Yaml yaml = new Yaml();
+ List<Data> list = yaml.load(input);
+
+ // First object: Data ( 11, "id123" )
+ assertEquals(11, list.get(0).getAge());
+ assertEquals("id123", list.get(0).getId());
+
+ // Second object: Data ( 37, null )
+ assertEquals(37, list.get(1).getAge());
+ assertNull(list.get(1).getId());
+
+ // Third object: map
+ Map<?, ?> third = (Map<?, ?>) list.get(2);
+ assertEquals(37, third.get("age"));
+ assertEquals("id123", third.get("id"));
+ }
+
+ /**
+ * When the merged JavaBean is itself a JavaBean property then explicit tag is not required
+ */
+ public void testMergeBeanProperty() {
+ String input = Util.getLocalResource("issues/issue100-3.yaml");
+ // System.out.println(input);
+ Yaml yaml = new Yaml(new Constructor(DataBean.class));
+ DataBean bean = yaml.load(input);
+ assertEquals("id001", bean.getId());
+ assertEquals("id002", bean.getData().getId());
+ assertEquals(17, bean.getData().getAge());
+ assertEquals(17, bean.getMore().getAge());
+ assertEquals("more003", bean.getMore().getId());
+ assertTrue(bean.getMore().isComplete());
+ }
+
+ /**
+ * Merge map to JavaBean
+ */
+ @SuppressWarnings("unchecked")
+ public void testMergeMapToJavaBean() {
+ String input =
+ "- &id001 { age: 11, id: id123 }\n- !!org.yaml.snakeyaml.issues.issue100.Data\n <<: *id001\n id: id456";
+ // System.out.println(input);
+ Yaml yaml = new Yaml(new Constructor());
+ List<Object> objects = yaml.load(input);
+ assertEquals(2, objects.size());
+ // Check first type
+ Object first = objects.get(0);
+ Map<Object, Object> firstMap = (Map<Object, Object>) first;
+ // Check first contents
+ assertEquals(11, firstMap.get("age"));
+ assertEquals("id123", firstMap.get("id"));
+ // Check second contents
+ Data secondData = (Data) objects.get(1);
+ assertEquals(11, secondData.getAge());
+ assertEquals("id456", secondData.getId());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue100/MergeMapsTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue100/MergeMapsTest.java
index c89bc3be..02a1bb25 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue100/MergeMapsTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue100/MergeMapsTest.java
@@ -1,42 +1,38 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue100;
import java.util.List;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
public class MergeMapsTest extends TestCase {
- @SuppressWarnings("unchecked")
- public void testExplicitMergeTag() {
- String input = Util.getLocalResource("issues/issue100-2.yaml");
- // System.out.println(input);
- Yaml yaml = new Yaml();
- Map<String, ?> list = (Map<String, ?>) yaml.load(input);
- List<Map<?, ?>> result = (List<Map<?, ?>>) list.get("result");
- Map<?, ?> first = result.iterator().next();
- for (Map<?, ?> data : result) {
- // System.out.println(data);
- assertEquals("Size must coinside.", first.size(), data.size());
- assertEquals(first, data);
- }
+ @SuppressWarnings("unchecked")
+ public void testExplicitMergeTag() {
+ String input = Util.getLocalResource("issues/issue100-2.yaml");
+ // System.out.println(input);
+ Yaml yaml = new Yaml();
+ Map<String, ?> list = yaml.load(input);
+ List<Map<?, ?>> result = (List<Map<?, ?>>) list.get("result");
+ Map<?, ?> first = result.iterator().next();
+ for (Map<?, ?> data : result) {
+ // System.out.println(data);
+ assertEquals("Size must coinside.", first.size(), data.size());
+ assertEquals(first, data);
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue102/BigDataLoadTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue102/BigDataLoadTest.java
index 7e4beca0..63f8956c 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue102/BigDataLoadTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue102/BigDataLoadTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue102;
@@ -20,56 +18,60 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
import junit.framework.TestCase;
-
+import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.Yaml;
public class BigDataLoadTest extends TestCase {
- private static final int SIZE = 5000;
- public void testBigStringData() {
- Yaml yaml = new Yaml();
- List<?> loaded = (List<?>) yaml.load(getLongYamlDocument(SIZE));
- assertEquals(SIZE, loaded.size());
- }
+ private static final int SIZE = 5000;
- public void testBigStreamData() {
- Yaml yaml = new Yaml();
- StringReader buffer = new StringReader(getLongYamlDocument(SIZE));
- List<?> loaded = (List<?>) yaml.load(buffer);
- assertEquals(SIZE, loaded.size());
- }
+ public void testBigStringData() {
+ LoaderOptions options = new LoaderOptions();
+ options.setCodePointLimit(10000000);
+ Yaml yaml = new Yaml(options);
+ List<?> loaded = yaml.load(getLongYamlDocument(SIZE));
+ assertEquals(SIZE, loaded.size());
+ }
+
+ public void testBigStreamData() {
+ LoaderOptions options = new LoaderOptions();
+ options.setCodePointLimit(10000000);
+ Yaml yaml = new Yaml(options);
+ StringReader buffer = new StringReader(getLongYamlDocument(SIZE));
+ List<?> loaded = yaml.load(buffer);
+ assertEquals(SIZE, loaded.size());
+ }
- private String getLongYamlDocument(int size) {
- List<DataBean> beans = new ArrayList<DataBean>();
- Yaml yaml = new Yaml();
- StringBuilder builder = new StringBuilder();
- for (int i = 0; i < size; i++) {
- List<String> list = new ArrayList<String>();
- for (int j = 0; j < 10; j++) {
- list.add(String.valueOf(i + j));
- }
- Map<String, Integer> map = new HashMap<String, Integer>();
- for (int j = 0; j < 10; j++) {
- map.put(String.valueOf(j), i + j);
- }
- DataBean bean = new DataBean();
- bean.setId("id" + i);
- bean.setList(list);
- bean.setMap(map);
- beans.add(bean);
- String ooo = yaml.dumpAsMap(bean);
- String[] lines = ooo.split("\n");
- builder.append("-\n");
- for (int j = 0; j < lines.length; j++) {
- builder.append(" ");
- builder.append(lines[j]);
- builder.append("\n");
- }
- }
- String data = builder.toString();
- System.out.println("Long data size: " + data.length() / 1024 + " kBytes.");
- return data;
+ private String getLongYamlDocument(int size) {
+ List<DataBean> beans = new ArrayList<DataBean>();
+ Yaml yaml = new Yaml();
+ StringBuilder builder = new StringBuilder();
+ for (int i = 0; i < size; i++) {
+ List<String> list = new ArrayList<String>();
+ for (int j = 0; j < 10; j++) {
+ list.add(String.valueOf(i + j));
+ }
+ Map<String, Integer> map = new HashMap<String, Integer>();
+ for (int j = 0; j < 10; j++) {
+ map.put(String.valueOf(j), i + j);
+ }
+ DataBean bean = new DataBean();
+ bean.setId("id" + i);
+ bean.setList(list);
+ bean.setMap(map);
+ beans.add(bean);
+ String ooo = yaml.dumpAsMap(bean);
+ String[] lines = ooo.split("\n");
+ builder.append("-\n");
+ for (int j = 0; j < lines.length; j++) {
+ builder.append(" ");
+ builder.append(lines[j]);
+ builder.append("\n");
+ }
}
+ String data = builder.toString();
+ // System.out.println("Long data size: " + data.length() / 1024 + " kBytes.");
+ return data;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue102/DataBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue102/DataBean.java
index 9b1eb387..f084d561 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue102/DataBean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue102/DataBean.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue102;
@@ -19,31 +17,32 @@ import java.util.List;
import java.util.Map;
public class DataBean {
- private String id;
- private List<String> list;
- private Map<String, Integer> map;
- public String getId() {
- return id;
- }
+ private String id;
+ private List<String> list;
+ private Map<String, Integer> map;
- public void setId(String id) {
- this.id = id;
- }
+ public String getId() {
+ return id;
+ }
- public List<String> getList() {
- return list;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- public void setList(List<String> list) {
- this.list = list;
- }
+ public List<String> getList() {
+ return list;
+ }
- public Map<String, Integer> getMap() {
- return map;
- }
+ public void setList(List<String> list) {
+ this.list = list;
+ }
- public void setMap(Map<String, Integer> map) {
- this.map = map;
- }
+ public Map<String, Integer> getMap() {
+ return map;
+ }
+
+ public void setMap(Map<String, Integer> map) {
+ this.map = map;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue103/FakeMap.java b/src/test/java/org/yaml/snakeyaml/issues/issue103/FakeMap.java
index bdced750..78d35c48 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue103/FakeMap.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue103/FakeMap.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue103;
@@ -22,107 +20,109 @@ import java.util.Map;
import java.util.Set;
/**
- * Implements map interface, but behaves like collection. It just collects
- * whatever you put(...) in here. Needed to track duplications in merge
- * procedure.
- *
+ * Implements map interface, but behaves like collection. It just collects whatever you put(...) in
+ * here. Needed to track duplications in merge procedure.
+ *
* issue100 & issue103
*/
public class FakeMap<K, V> implements Map<K, V> {
- class FakeEntry implements java.util.Map.Entry<K, V> {
-
- private final K key;
- private V val;
-
- public FakeEntry(K key, V val) {
- this.key = key;
- this.val = val;
- }
-
- public K getKey() {
- return key;
- }
+ class FakeEntry implements java.util.Map.Entry<K, V> {
- public V getValue() {
- return val;
- }
-
- public V setValue(V newV) {
- V old = val;
- val = newV;
- return old;
- }
+ private final K key;
+ private V val;
+ public FakeEntry(K key, V val) {
+ this.key = key;
+ this.val = val;
}
- ArrayList<java.util.Map.Entry<K, V>> entries = new ArrayList<Map.Entry<K, V>>();
-
- public void clear() {
- entries.clear();
+ public K getKey() {
+ return key;
}
- public boolean containsKey(Object arg0) {
- for (java.util.Map.Entry<K, V> entry : entries) {
- if (entry.getKey().equals(arg0))
- return true;
- }
- return false;
+ public V getValue() {
+ return val;
}
- public boolean containsValue(Object arg0) {
- for (java.util.Map.Entry<K, V> entry : entries) {
- if (entry.getValue().equals(arg0))
- return true;
- }
- return false;
+ public V setValue(V newV) {
+ V old = val;
+ val = newV;
+ return old;
}
- public Set<java.util.Map.Entry<K, V>> entrySet() {
- throw new UnsupportedOperationException();
- }
+ }
- public V get(Object arg0) {
- for (java.util.Map.Entry<K, V> entry : entries) {
- if (entry.getKey().equals(arg0))
- return entry.getValue();
- }
- return null;
- }
+ ArrayList<java.util.Map.Entry<K, V>> entries = new ArrayList<Map.Entry<K, V>>();
- public boolean isEmpty() {
- return values().isEmpty();
- }
+ public void clear() {
+ entries.clear();
+ }
- public Set<K> keySet() {
- throw new UnsupportedOperationException();
+ public boolean containsKey(Object arg0) {
+ for (java.util.Map.Entry<K, V> entry : entries) {
+ if (entry.getKey().equals(arg0)) {
+ return true;
+ }
}
-
- public V put(K key, V val) {
- entries.add(new FakeEntry(key, val));
- return null;
+ return false;
+ }
+
+ public boolean containsValue(Object arg0) {
+ for (java.util.Map.Entry<K, V> entry : entries) {
+ if (entry.getValue().equals(arg0)) {
+ return true;
+ }
}
-
- public void putAll(Map<? extends K, ? extends V> arg0) {
- throw new UnsupportedOperationException();
+ return false;
+ }
+
+ public Set<java.util.Map.Entry<K, V>> entrySet() {
+ throw new UnsupportedOperationException();
+ }
+
+ public V get(Object arg0) {
+ for (java.util.Map.Entry<K, V> entry : entries) {
+ if (entry.getKey().equals(arg0)) {
+ return entry.getValue();
+ }
}
-
- public V remove(Object arg0) {
- for (Iterator<java.util.Map.Entry<K, V>> iter = entries.iterator(); iter.hasNext();) {
- java.util.Map.Entry<K, V> entry = iter.next();
- if (entry.getKey().equals(arg0)) {
- iter.remove();
- return entry.getValue();
- }
- }
- return null;
+ return null;
+ }
+
+ public boolean isEmpty() {
+ return values().isEmpty();
+ }
+
+ public Set<K> keySet() {
+ throw new UnsupportedOperationException();
+ }
+
+ public V put(K key, V val) {
+ entries.add(new FakeEntry(key, val));
+ return null;
+ }
+
+ public void putAll(Map<? extends K, ? extends V> arg0) {
+ throw new UnsupportedOperationException();
+ }
+
+ public V remove(Object arg0) {
+ for (Iterator<java.util.Map.Entry<K, V>> iter = entries.iterator(); iter.hasNext();) {
+ java.util.Map.Entry<K, V> entry = iter.next();
+ if (entry.getKey().equals(arg0)) {
+ iter.remove();
+ return entry.getValue();
+ }
}
+ return null;
+ }
- public int size() {
- return entries.size();
- }
+ public int size() {
+ return entries.size();
+ }
- public Collection<V> values() {
- throw new UnsupportedOperationException();
- }
+ public Collection<V> values() {
+ throw new UnsupportedOperationException();
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue103/MergingTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue103/MergingTest.java
index b825e283..2d2a5a00 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue103/MergingTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue103/MergingTest.java
@@ -1,120 +1,116 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue103;
import java.util.List;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.Constructor;
public class MergingTest extends TestCase {
- @SuppressWarnings({ "rawtypes", "unchecked" })
- public void testMergeWithDefaultMap() {
- String input = Util.getLocalResource("issues/issue103.yaml");
- // System.out.println(input);
- Yaml yaml = new Yaml();
-
- check((Map) yaml.load(input));
- }
-
- @SuppressWarnings({ "unchecked", "rawtypes" })
- public void testMergeWithFakeMap() {
- String input = Util.getLocalResource("issues/issue103.yaml");
- // System.out.println(input);
- Constructor c = new Constructor() {
- protected java.util.Map<Object, Object> createDefaultMap() {
- return new FakeMap<Object, Object>();
- }
- };
-
- Yaml yaml = new Yaml(c);
-
- check((FakeMap) yaml.load(input));
- }
-
- private void check(Map<String, List<Map<Object, Object>>> map) {
-
- assertEquals(2, map.size());
- assertTrue(map.containsKey("input"));
- assertTrue(map.containsKey("result"));
-
- // input: ...
- List<Map<Object, Object>> inputList = map.get("input");
- assertEquals(4, inputList.size());
-
- Map<Object, Object> center = inputList.get(0);
- assertEquals(2, center.size());
- assertEquals(Integer.valueOf(1), center.get("x"));
- assertEquals(Integer.valueOf(2), center.get("y"));
-
- Map<Object, Object> left = inputList.get(1);
- assertEquals(2, left.size());
- assertEquals(Integer.valueOf(0), left.get("x"));
- assertEquals(Integer.valueOf(2), left.get("y"));
-
- Map<Object, Object> big = inputList.get(2);
- assertEquals(1, big.size());
- assertEquals(Integer.valueOf(10), big.get("r"));
-
- Map<Object, Object> small = inputList.get(3);
- assertEquals(1, small.size());
- assertEquals(Integer.valueOf(1), small.get("r"));
-
- // result : ...
- List<Map<Object, Object>> resultList = map.get("result");
- assertEquals(5, resultList.size());
-
- Map<Object, Object> explicitKeys = resultList.get(0);
- assertEquals(4, explicitKeys.size());
- assertEquals(Integer.valueOf(1), explicitKeys.get("x"));
- assertEquals(Integer.valueOf(2), explicitKeys.get("y"));
- assertEquals(Integer.valueOf(10), explicitKeys.get("r"));
- assertEquals("center/big", explicitKeys.get("label"));
-
- Map<?, ?> merge_center = resultList.get(1);
- assertEquals(4, merge_center.size());
- assertEquals(Integer.valueOf(1), merge_center.get("x"));
- assertEquals(Integer.valueOf(2), merge_center.get("y"));
- assertEquals(Integer.valueOf(10), merge_center.get("r"));
- assertEquals("center/big", merge_center.get("label"));
-
- Map<?, ?> merge_left_override = resultList.get(2);
- assertEquals(4, merge_left_override.size());
- assertEquals(Integer.valueOf(0), merge_left_override.get("x"));
- assertEquals(Integer.valueOf(5), merge_left_override.get("y"));
- assertEquals(Integer.valueOf(10), merge_left_override.get("r"));
- assertEquals("center/big", merge_left_override.get("label"));
-
- Map<?, ?> merge_center_big = resultList.get(3);
- assertEquals(4, merge_center_big.size());
- assertEquals(Integer.valueOf(1), merge_center_big.get("x"));
- assertEquals(Integer.valueOf(2), merge_center_big.get("y"));
- assertEquals(Integer.valueOf(10), merge_center_big.get("r"));
- assertEquals("center/big", merge_center_big.get("label"));
-
- Map<?, ?> merge_big_left_small_override = resultList.get(4);
- assertEquals(4, merge_big_left_small_override.size());
- assertEquals(Integer.valueOf(1), merge_big_left_small_override.get("x"));
- assertEquals(Integer.valueOf(2), merge_big_left_small_override.get("y"));
- assertEquals(Integer.valueOf(10), merge_big_left_small_override.get("r"));
- assertEquals("center/big", merge_big_left_small_override.get("label"));
- }
+ @SuppressWarnings({"rawtypes", "unchecked"})
+ public void testMergeWithDefaultMap() {
+ String input = Util.getLocalResource("issues/issue103.yaml");
+ // System.out.println(input);
+ Yaml yaml = new Yaml();
+
+ check((Map) yaml.load(input));
+ }
+
+ @SuppressWarnings({"unchecked", "rawtypes"})
+ public void testMergeWithFakeMap() {
+ String input = Util.getLocalResource("issues/issue103.yaml");
+ // System.out.println(input);
+ Constructor c = new Constructor() {
+ protected java.util.Map<Object, Object> createDefaultMap(int size) {
+ return new FakeMap<Object, Object>();
+ }
+ };
+
+ Yaml yaml = new Yaml(c);
+
+ check((FakeMap) yaml.load(input));
+ }
+
+ private void check(Map<String, List<Map<Object, Object>>> map) {
+
+ assertEquals(2, map.size());
+ assertTrue(map.containsKey("input"));
+ assertTrue(map.containsKey("result"));
+
+ // input: ...
+ List<Map<Object, Object>> inputList = map.get("input");
+ assertEquals(4, inputList.size());
+
+ Map<Object, Object> center = inputList.get(0);
+ assertEquals(2, center.size());
+ assertEquals(Integer.valueOf(1), center.get("x"));
+ assertEquals(Integer.valueOf(2), center.get("y"));
+
+ Map<Object, Object> left = inputList.get(1);
+ assertEquals(2, left.size());
+ assertEquals(Integer.valueOf(0), left.get("x"));
+ assertEquals(Integer.valueOf(2), left.get("y"));
+
+ Map<Object, Object> big = inputList.get(2);
+ assertEquals(1, big.size());
+ assertEquals(Integer.valueOf(10), big.get("r"));
+
+ Map<Object, Object> small = inputList.get(3);
+ assertEquals(1, small.size());
+ assertEquals(Integer.valueOf(1), small.get("r"));
+
+ // result : ...
+ List<Map<Object, Object>> resultList = map.get("result");
+ assertEquals(5, resultList.size());
+
+ Map<Object, Object> explicitKeys = resultList.get(0);
+ assertEquals(4, explicitKeys.size());
+ assertEquals(Integer.valueOf(1), explicitKeys.get("x"));
+ assertEquals(Integer.valueOf(2), explicitKeys.get("y"));
+ assertEquals(Integer.valueOf(10), explicitKeys.get("r"));
+ assertEquals("center/big", explicitKeys.get("label"));
+
+ Map<?, ?> merge_center = resultList.get(1);
+ assertEquals(4, merge_center.size());
+ assertEquals(Integer.valueOf(1), merge_center.get("x"));
+ assertEquals(Integer.valueOf(2), merge_center.get("y"));
+ assertEquals(Integer.valueOf(10), merge_center.get("r"));
+ assertEquals("center/big", merge_center.get("label"));
+
+ Map<?, ?> merge_left_override = resultList.get(2);
+ assertEquals(4, merge_left_override.size());
+ assertEquals(Integer.valueOf(0), merge_left_override.get("x"));
+ assertEquals(Integer.valueOf(5), merge_left_override.get("y"));
+ assertEquals(Integer.valueOf(10), merge_left_override.get("r"));
+ assertEquals("center/big", merge_left_override.get("label"));
+
+ Map<?, ?> merge_center_big = resultList.get(3);
+ assertEquals(4, merge_center_big.size());
+ assertEquals(Integer.valueOf(1), merge_center_big.get("x"));
+ assertEquals(Integer.valueOf(2), merge_center_big.get("y"));
+ assertEquals(Integer.valueOf(10), merge_center_big.get("r"));
+ assertEquals("center/big", merge_center_big.get("label"));
+
+ Map<?, ?> merge_big_left_small_override = resultList.get(4);
+ assertEquals(4, merge_big_left_small_override.size());
+ assertEquals(Integer.valueOf(1), merge_big_left_small_override.get("x"));
+ assertEquals(Integer.valueOf(2), merge_big_left_small_override.get("y"));
+ assertEquals(Integer.valueOf(10), merge_big_left_small_override.get("r"));
+ assertEquals("center/big", merge_big_left_small_override.get("label"));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue11/YamlMapTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue11/YamlMapTest.java
index 65508757..8b6468aa 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue11/YamlMapTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue11/YamlMapTest.java
@@ -1,25 +1,21 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue11;
import java.util.Map;
import java.util.TreeMap;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.AbstractConstruct;
import org.yaml.snakeyaml.constructor.Constructor;
@@ -30,116 +26,122 @@ import org.yaml.snakeyaml.representer.Represent;
import org.yaml.snakeyaml.representer.Representer;
public class YamlMapTest extends TestCase {
- public void testYaml() {
- Yaml yaml = new Yaml(new ExtendedConstructor(), new ExtendedRepresenter());
- String output = yaml.dump(new Custom(123));
- // System.out.println(output);
- Custom o = (Custom) yaml.load(output);
- assertEquals("123", o.getStr());
- }
- @SuppressWarnings("unchecked")
- public void testYamlMap() {
- Map<String, Object> data = new TreeMap<String, Object>();
- data.put("customTag", new Custom(123));
-
- Yaml yaml = new Yaml(new ExtendedConstructor(), new ExtendedRepresenter());
- String output = yaml.dump(data);
- // System.out.println(output);
- Object o = yaml.load(output);
-
- assertTrue(o instanceof Map);
- Map<String, Object> m = (Map<String, Object>) o;
- assertTrue(m.get("customTag") instanceof Custom);
+ public void testYaml() {
+ Yaml yaml = new Yaml(new ExtendedConstructor(), new ExtendedRepresenter());
+ String output = yaml.dump(new Custom(123));
+ // System.out.println(output);
+ Custom o = yaml.load(output);
+ assertEquals("123", o.getStr());
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testYamlMap() {
+ Map<String, Object> data = new TreeMap<String, Object>();
+ data.put("customTag", new Custom(123));
+
+ Yaml yaml = new Yaml(new ExtendedConstructor(), new ExtendedRepresenter());
+ String output = yaml.dump(data);
+ // System.out.println(output);
+ Object o = yaml.load(output);
+
+ assertTrue(o instanceof Map);
+ Map<String, Object> m = (Map<String, Object>) o;
+ assertTrue(m.get("customTag") instanceof Custom);
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testYamlMapBean() {
+ Map<String, Object> data = new TreeMap<String, Object>();
+ data.put("knownClass", new Wrapper("test", new Custom(456)));
+
+ Yaml yaml = new Yaml(new ExtendedConstructor(), new ExtendedRepresenter());
+ String output = yaml.dump(data);
+ // System.out.println(output);
+ Object o = yaml.load(output);
+
+ assertTrue(o instanceof Map);
+ Map<String, Object> m = (Map<String, Object>) o;
+ assertEquals(Wrapper.class, m.get("knownClass").getClass());
+ }
+
+ public static class Wrapper {
+
+ private String a;
+ private Custom b;
+
+ public Wrapper(String s, Custom bb) {
+ a = s;
+ b = bb;
}
- @SuppressWarnings("unchecked")
- public void testYamlMapBean() {
- Map<String, Object> data = new TreeMap<String, Object>();
- data.put("knownClass", new Wrapper("test", new Custom(456)));
+ public Wrapper() {}
- Yaml yaml = new Yaml(new ExtendedConstructor(), new ExtendedRepresenter());
- String output = yaml.dump(data);
- // System.out.println(output);
- Object o = yaml.load(output);
+ public String getA() {
+ return a;
+ }
- assertTrue(o instanceof Map);
- Map<String, Object> m = (Map<String, Object>) o;
- assertEquals(Wrapper.class, m.get("knownClass").getClass());
+ public void setA(String s) {
+ a = s;
}
- public static class Wrapper {
- private String a;
- private Custom b;
+ public Custom getB() {
+ return b;
+ }
- public Wrapper(String s, Custom bb) {
- a = s;
- b = bb;
- }
+ public void setB(Custom bb) {
+ b = bb;
+ }
+ }
- public Wrapper() {
- }
+ public static class Custom {
- public String getA() {
- return a;
- }
+ final private String str;
- public void setA(String s) {
- a = s;
- }
+ public Custom(Integer i) {
+ str = i.toString();
+ }
- public Custom getB() {
- return b;
- }
+ public Custom(Custom c) {
+ str = c.str;
+ }
- public void setB(Custom bb) {
- b = bb;
- }
+ public String toString() {
+ return str;
}
- public static class Custom {
- final private String str;
+ public String getStr() {
+ return str;
+ }
+ }
- public Custom(Integer i) {
- str = i.toString();
- }
+ public static class ExtendedRepresenter extends Representer {
- public Custom(Custom c) {
- str = c.str;
- }
+ public ExtendedRepresenter() {
+ this.representers.put(Custom.class, new RepresentCustom());
+ }
- public String toString() {
- return str;
- }
+ private class RepresentCustom implements Represent {
- public String getStr() {
- return str;
- }
+ public Node representData(Object data) {
+ return representScalar(new Tag("!Custom"), data.toString());
+ }
}
+ }
- public static class ExtendedRepresenter extends Representer {
- public ExtendedRepresenter() {
- this.representers.put(Custom.class, new RepresentCustom());
- }
+ public static class ExtendedConstructor extends Constructor {
- private class RepresentCustom implements Represent {
- public Node representData(Object data) {
- return representScalar(new Tag("!Custom"), ((Custom) data).toString());
- }
- }
+ public ExtendedConstructor() {
+ this.yamlConstructors.put(new Tag("!Custom"), new ConstructCustom());
}
- public static class ExtendedConstructor extends Constructor {
- public ExtendedConstructor() {
- this.yamlConstructors.put(new Tag("!Custom"), new ConstructCustom());
- }
+ private class ConstructCustom extends AbstractConstruct {
- private class ConstructCustom extends AbstractConstruct {
- public Object construct(Node node) {
- String str = (String) constructScalar((ScalarNode) node);
- return new Custom(new Integer(str));
- }
+ public Object construct(Node node) {
+ String str = constructScalar((ScalarNode) node);
+ return new Custom(Integer.valueOf(str));
+ }
- }
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue111/LongUriTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue111/LongUriTest.java
index acf00914..1c69a3d5 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue111/LongUriTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue111/LongUriTest.java
@@ -1,50 +1,46 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue111;
import java.io.StringReader;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.nodes.Node;
import org.yaml.snakeyaml.nodes.ScalarNode;
public class LongUriTest extends TestCase {
- /**
- * Try loading a tag with a very long escaped URI section (over 256 bytes'
- * worth).
- */
- public void testLongURIEscape() {
- Yaml loader = new Yaml();
- // Create a long escaped string by exponential growth...
- String longEscURI = "%41"; // capital A...
- for (int i = 0; i < 10; ++i) {
- longEscURI = longEscURI + longEscURI;
- }
- assertEquals(1024 * 3, longEscURI.length());
- String yaml = "!" + longEscURI + " www";
- Node node = loader.compose(new StringReader(yaml));
- ScalarNode scalar = (ScalarNode) node;
- String etalon = "!";
- for (int i = 0; i < 1024; i++) {
- etalon += "A";
- }
- assertEquals(1025, etalon.length());
- assertEquals(etalon, scalar.getTag().toString());
+ /**
+ * Try loading a tag with a very long escaped URI section (over 256 bytes' worth).
+ */
+ public void testLongURIEscape() {
+ Yaml loader = new Yaml();
+ // Create a long escaped string by exponential growth...
+ String longEscURI = "%41"; // capital A...
+ for (int i = 0; i < 10; ++i) {
+ longEscURI = longEscURI + longEscURI;
+ }
+ assertEquals(1024 * 3, longEscURI.length());
+ String yaml = "!" + longEscURI + " www";
+
+ Node node = loader.compose(new StringReader(yaml));
+ ScalarNode scalar = (ScalarNode) node;
+ String etalon = "!";
+ for (int i = 0; i < 1024; i++) {
+ etalon += "A";
}
+ assertEquals(1025, etalon.length());
+ assertEquals(etalon, scalar.getTag().toString());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue112/MyClass.java b/src/test/java/org/yaml/snakeyaml/issues/issue112/MyClass.java
index 2f7c1b6f..8aca29dc 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue112/MyClass.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue112/MyClass.java
@@ -1,33 +1,32 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue112;
public class MyClass<T extends Object> {
- T name;
- public void setName(T name) {
- this.name = name;
- }
+ T name;
- public T getName() {
- return this.name;
- }
+ public void setName(T name) {
+ this.name = name;
+ }
- @Override
- public String toString() {
- return name.toString();
- }
+ public T getName() {
+ return this.name;
+ }
+
+ @Override
+ public String toString() {
+ return name.toString();
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue112/MyCompositeObject.java b/src/test/java/org/yaml/snakeyaml/issues/issue112/MyCompositeObject.java
index 471e678e..48a48ab8 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue112/MyCompositeObject.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue112/MyCompositeObject.java
@@ -1,30 +1,29 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue112;
import java.util.Collection;
public class MyCompositeObject {
- Collection<MyClass<? extends Object>> things;
- public Collection<MyClass<? extends Object>> getThings() {
- return this.things;
- }
+ Collection<MyClass<? extends Object>> things;
- public void setThings(Collection<MyClass<? extends Object>> things) {
- this.things = things;
- }
+ public Collection<MyClass<? extends Object>> getThings() {
+ return this.things;
+ }
+
+ public void setThings(Collection<MyClass<? extends Object>> things) {
+ this.things = things;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue112/ParameterisedTypeLoadingTestCase.java b/src/test/java/org/yaml/snakeyaml/issues/issue112/ParameterisedTypeLoadingTestCase.java
index 6b7f94a8..c1e4e8d9 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue112/ParameterisedTypeLoadingTestCase.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue112/ParameterisedTypeLoadingTestCase.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue112;
@@ -20,7 +18,6 @@ import static org.junit.Assert.assertNotNull;
import java.io.IOException;
import java.io.InputStream;
-
import org.junit.Test;
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
@@ -28,38 +25,38 @@ import org.yaml.snakeyaml.constructor.Constructor;
public class ParameterisedTypeLoadingTestCase {
- @Test
- public void testParameterisedTypeLoading() throws IOException {
- Yaml yamlParser = new Yaml(new Constructor(MyCompositeObject.class));
- MyCompositeObject obj = (MyCompositeObject) yamlParser.load(getInput());
- check(obj);
-
- // dump the object
- Yaml yaml = new Yaml();
- String output = yaml.dumpAsMap(obj);
- assertEquals(Util.getLocalResource("issues/issue112-2.yaml"), output);
- }
-
- @Test
- public void testJavaBeanLoader() throws IOException {
- Yaml yamlParser = new Yaml();
- MyCompositeObject obj = yamlParser.loadAs(getInput(), MyCompositeObject.class);
- check(obj);
+ @Test
+ public void testParameterisedTypeLoading() throws IOException {
+ Yaml yamlParser = new Yaml(new Constructor(MyCompositeObject.class));
+ MyCompositeObject obj = yamlParser.load(getInput());
+ check(obj);
+
+ // dump the object
+ Yaml yaml = new Yaml();
+ String output = yaml.dumpAsMap(obj);
+ assertEquals(Util.getLocalResource("issues/issue112-2.yaml"), output);
+ }
+
+ @Test
+ public void testJavaBeanLoader() throws IOException {
+ Yaml yamlParser = new Yaml();
+ MyCompositeObject obj = yamlParser.loadAs(getInput(), MyCompositeObject.class);
+ check(obj);
+ }
+
+ private void check(MyCompositeObject obj) {
+ Object[] values = {1, "two", 3, "four", "!!!"};
+ assertNotNull(obj);
+ assertEquals(5, obj.getThings().size());
+ int i = 0;
+ for (MyClass<? extends Object> thing : obj.getThings()) {
+ assertEquals(MyClass.class, thing.getClass());
+ assertNotNull("The 'name' property must be set.", thing.getName());
+ assertEquals(values[i++], thing.getName());
}
+ }
- private void check(MyCompositeObject obj) {
- Object[] values = { 1, "two", 3, "four", "!!!" };
- assertNotNull(obj);
- assertEquals(5, obj.getThings().size());
- int i = 0;
- for (MyClass<? extends Object> thing : obj.getThings()) {
- assertEquals(MyClass.class, thing.getClass());
- assertNotNull("The 'name' property must be set.", thing.getName());
- assertEquals(values[i++], thing.getName());
- }
- }
-
- private InputStream getInput() throws IOException {
- return this.getClass().getClassLoader().getResource("issues/issue112-1.yaml").openStream();
- }
+ private InputStream getInput() throws IOException {
+ return this.getClass().getClassLoader().getResource("issues/issue112-1.yaml").openStream();
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue114/PreserveTypeTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue114/PreserveTypeTest.java
index fd69f9a4..87cd08b2 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue114/PreserveTypeTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue114/PreserveTypeTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue114;
@@ -19,72 +17,70 @@ import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class PreserveTypeTest extends TestCase {
- public static class MyBean {
+ public static class MyBean {
- private int dummy;
+ private int dummy;
- public int getDummy() {
- return dummy;
- }
-
- public void setDummy(int dummy) {
- this.dummy = dummy;
- }
+ public int getDummy() {
+ return dummy;
}
- public static class ReferencingBean {
-
- private List<MyBean> myBeans = new LinkedList<PreserveTypeTest.MyBean>();
-
- public List<MyBean> getMyBeans() {
- return myBeans;
- }
-
- public void setMyBeans(List<MyBean> myBeans) {
- this.myBeans = myBeans;
- }
+ public void setDummy(int dummy) {
+ this.dummy = dummy;
}
+ }
- private Map<String, Object> createData(boolean collectionFirst) {
- MyBean myBean = new MyBean();
- ReferencingBean referencingBean = new ReferencingBean();
- referencingBean.getMyBeans().add(myBean);
+ public static class ReferencingBean {
- LinkedHashMap<String, Object> map = new LinkedHashMap<String, Object>();
- if (collectionFirst) {
- map.put("referencingBean", referencingBean);
- map.put("myBean", myBean);
- } else {
- map.put("myBean", myBean);
- map.put("referencingBean", referencingBean);
- }
- return map;
- }
+ private List<MyBean> myBeans = new LinkedList<PreserveTypeTest.MyBean>();
- private void check(String doc) {
- Yaml yaml = new Yaml();
- @SuppressWarnings("unchecked")
- Map<String, Object> loaded = (Map<String, Object>) yaml.load(doc);
- Object myBean2 = loaded.get("myBean");
- assertTrue(myBean2.getClass().toString(), myBean2 instanceof MyBean);
+ public List<MyBean> getMyBeans() {
+ return myBeans;
}
- public void testPreserveType1() {
- Yaml yaml = new Yaml();
- String s = yaml.dump(createData(true));
- check(s);
+ public void setMyBeans(List<MyBean> myBeans) {
+ this.myBeans = myBeans;
}
-
- public void testPreserveType2() {
- Yaml yaml = new Yaml();
- String s = yaml.dump(createData(false));
- check(s);
+ }
+
+ private Map<String, Object> createData(boolean collectionFirst) {
+ MyBean myBean = new MyBean();
+ ReferencingBean referencingBean = new ReferencingBean();
+ referencingBean.getMyBeans().add(myBean);
+
+ LinkedHashMap<String, Object> map = new LinkedHashMap<String, Object>();
+ if (collectionFirst) {
+ map.put("referencingBean", referencingBean);
+ map.put("myBean", myBean);
+ } else {
+ map.put("myBean", myBean);
+ map.put("referencingBean", referencingBean);
}
+ return map;
+ }
+
+ private void check(String doc) {
+ Yaml yaml = new Yaml();
+ @SuppressWarnings("unchecked")
+ Map<String, Object> loaded = yaml.load(doc);
+ Object myBean2 = loaded.get("myBean");
+ assertTrue(myBean2.getClass().toString(), myBean2 instanceof MyBean);
+ }
+
+ public void testPreserveType1() {
+ Yaml yaml = new Yaml();
+ String s = yaml.dump(createData(true));
+ check(s);
+ }
+
+ public void testPreserveType2() {
+ Yaml yaml = new Yaml();
+ String s = yaml.dump(createData(false));
+ check(s);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue115/IssueBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue115/IssueBean.java
index 572b94c7..0b2aa8ba 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue115/IssueBean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue115/IssueBean.java
@@ -1,28 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue115;
public class IssueBean {
- private ParameterizedBean<Integer, String> bean = new ParameterizedBean<Integer, String>();
- public ParameterizedBean<Integer, String> getBean() {
- return bean;
- }
+ private ParameterizedBean<Integer, String> bean = new ParameterizedBean<Integer, String>();
- public void setBean(ParameterizedBean<Integer, String> bean) {
- this.bean = bean;
- }
-} \ No newline at end of file
+ public ParameterizedBean<Integer, String> getBean() {
+ return bean;
+ }
+
+ public void setBean(ParameterizedBean<Integer, String> bean) {
+ this.bean = bean;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue115/ParameterizedBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue115/ParameterizedBean.java
index ad3376ad..e3bfec70 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue115/ParameterizedBean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue115/ParameterizedBean.java
@@ -1,37 +1,36 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue115;
public class ParameterizedBean<K, V> {
- private K k;
- private V v;
- public K getK() {
- return k;
- }
+ private K k;
+ private V v;
- public void setK(K k) {
- this.k = k;
- }
+ public K getK() {
+ return k;
+ }
- public V getV() {
- return v;
- }
+ public void setK(K k) {
+ this.k = k;
+ }
- public void setV(V v) {
- this.v = v;
- }
-} \ No newline at end of file
+ public V getV() {
+ return v;
+ }
+
+ public void setV(V v) {
+ this.v = v;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue115/ParameterizedJavaBeanTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue115/ParameterizedJavaBeanTest.java
index ca3ccb44..dcf1e4e7 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue115/ParameterizedJavaBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue115/ParameterizedJavaBeanTest.java
@@ -1,55 +1,51 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue115;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class ParameterizedJavaBeanTest extends TestCase {
- public void testAsStandalone() {
- ParameterizedBean<Integer, String> bean = new ParameterizedBean<Integer, String>();
- bean.setK(13);
- bean.setV("ID47");
- Yaml yaml = new Yaml();
- String result = yaml.dump(bean);
- assertEquals("!!org.yaml.snakeyaml.issues.issue115.ParameterizedBean {k: 13, v: ID47}\n",
- result);
- // load
- @SuppressWarnings("unchecked")
- ParameterizedBean<Integer, String> beanParsed = (ParameterizedBean<Integer, String>) yaml
- .load(result);
- assertEquals(new Integer(13), beanParsed.getK());
- assertEquals("ID47", beanParsed.getV());
- }
+ public void testAsStandalone() {
+ ParameterizedBean<Integer, String> bean = new ParameterizedBean<Integer, String>();
+ bean.setK(13);
+ bean.setV("ID47");
+ Yaml yaml = new Yaml();
+ String result = yaml.dump(bean);
+ assertEquals("!!org.yaml.snakeyaml.issues.issue115.ParameterizedBean {k: 13, v: ID47}\n",
+ result);
+ // load
+ @SuppressWarnings("unchecked")
+ ParameterizedBean<Integer, String> beanParsed = yaml.load(result);
+ assertEquals(Integer.valueOf(13), beanParsed.getK());
+ assertEquals("ID47", beanParsed.getV());
+ }
- public void testAsJavaBeanProperty() {
- Yaml yaml = new Yaml();
- IssueBean issue = new IssueBean();
- ParameterizedBean<Integer, String> bean = new ParameterizedBean<Integer, String>();
- bean.setK(432);
- bean.setV("Val432");
- issue.setBean(bean);
- String result = yaml.dump(issue);
- assertEquals("!!org.yaml.snakeyaml.issues.issue115.IssueBean\nbean: {k: 432, v: Val432}\n",
- result);
- // load
- IssueBean issueParsed = (IssueBean) yaml.load(result);
- assertEquals(new Integer(432), issueParsed.getBean().getK());
- assertEquals("Val432", issueParsed.getBean().getV());
- }
-} \ No newline at end of file
+ public void testAsJavaBeanProperty() {
+ Yaml yaml = new Yaml();
+ IssueBean issue = new IssueBean();
+ ParameterizedBean<Integer, String> bean = new ParameterizedBean<Integer, String>();
+ bean.setK(432);
+ bean.setV("Val432");
+ issue.setBean(bean);
+ String result = yaml.dump(issue);
+ assertEquals("!!org.yaml.snakeyaml.issues.issue115.IssueBean\nbean: {k: 432, v: Val432}\n",
+ result);
+ // load
+ IssueBean issueParsed = yaml.load(result);
+ assertEquals(Integer.valueOf(432), issueParsed.getBean().getK());
+ assertEquals("Val432", issueParsed.getBean().getV());
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue115/ParameterizedTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue115/ParameterizedTest.java
index c6c69d30..710c9e65 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue115/ParameterizedTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue115/ParameterizedTest.java
@@ -1,56 +1,57 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue115;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class ParameterizedTest extends TestCase {
- public void testAsStandalone() {
- Parameterized<Integer> parm = new Parameterized<Integer>();
- parm.t = 3;
- Yaml yaml = new Yaml();
- String result = yaml.dump(parm);
- assertEquals("!!org.yaml.snakeyaml.issues.issue115.Parameterized {t: 3}\n", result);
- @SuppressWarnings("unchecked")
- // load
- Parameterized<Integer> parmParsed = (Parameterized<Integer>) yaml.load(result);
- assertEquals(new Integer(3), parmParsed.t);
- }
-
- public void testAsJavaBeanProperty() {
- Yaml yaml = new Yaml();
- Issue issue = new Issue();
- Parameterized<Integer> parm = new Parameterized<Integer>();
- parm.t = 555;
- issue.parm = parm;
- String result = yaml.dump(issue);
- assertEquals("!!org.yaml.snakeyaml.issues.issue115.Issue\nparm: {t: 555}\n", result);
- // load
- Issue issueParsed = (Issue) yaml.load(result);
- assertEquals(new Integer(555), issueParsed.parm.t);
- }
+ public void testAsStandalone() {
+ Parameterized<Integer> parm = new Parameterized<Integer>();
+ parm.t = 3;
+ Yaml yaml = new Yaml();
+ String result = yaml.dump(parm);
+ assertEquals("!!org.yaml.snakeyaml.issues.issue115.Parameterized {t: 3}\n", result);
+ @SuppressWarnings("unchecked")
+ // load
+ Parameterized<Integer> parmParsed = yaml.load(result);
+ assertEquals(Integer.valueOf(3), parmParsed.t);
+ }
+
+ public void testAsJavaBeanProperty() {
+ Yaml yaml = new Yaml();
+ Issue issue = new Issue();
+ Parameterized<Integer> parm = new Parameterized<Integer>();
+ parm.t = 555;
+ issue.parm = parm;
+ String result = yaml.dump(issue);
+ assertEquals("!!org.yaml.snakeyaml.issues.issue115.Issue\nparm: {t: 555}\n", result);
+ // load
+ Issue issueParsed = yaml.load(result);
+ assertEquals(Integer.valueOf(555), issueParsed.parm.t);
+ }
}
+
class Issue {
- public Parameterized<Integer> parm = new Parameterized<Integer>();
+
+ public Parameterized<Integer> parm = new Parameterized<Integer>();
}
+
class Parameterized<T> {
- public T t;
-} \ No newline at end of file
+
+ public T t;
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue116/HiddenSpecial.java b/src/test/java/org/yaml/snakeyaml/issues/issue116/HiddenSpecial.java
index 8fea9ff6..dad74d63 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue116/HiddenSpecial.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue116/HiddenSpecial.java
@@ -1,28 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue116;
public class HiddenSpecial {
- private int inaccessableField;
- public HiddenSpecial(String something) {
- this.inaccessableField = something.hashCode();
- }
+ private final int inaccessableField;
- public int retrieveMyVerySpecialField() {
- return inaccessableField;
- }
-} \ No newline at end of file
+ public HiddenSpecial(String something) {
+ this.inaccessableField = something.hashCode();
+ }
+
+ public int retrieveMyVerySpecialField() {
+ return inaccessableField;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue116/NoFieldsTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue116/NoFieldsTest.java
index 044cdb8d..adcc0d23 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue116/NoFieldsTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue116/NoFieldsTest.java
@@ -1,70 +1,70 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue116;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.error.YAMLException;
public class NoFieldsTest extends TestCase {
- public void testEmptyClass() {
- Empty empty = new Empty();
- Yaml yaml = new Yaml();
- String result = yaml.dump(empty);
- assertEquals("!!org.yaml.snakeyaml.issues.issue116.Empty {}\n", result);
- Object emptyParsed = yaml.load(result);
- assertTrue(emptyParsed instanceof Empty);
- }
+ public void testEmptyClass() {
+ Empty empty = new Empty();
+ Yaml yaml = new Yaml();
+ String result = yaml.dump(empty);
+ assertEquals("!!org.yaml.snakeyaml.issues.issue116.Empty {}\n", result);
+ Object emptyParsed = yaml.load(result);
+ assertTrue(emptyParsed instanceof Empty);
+ }
- public void testHiddenParameter() {
- Hidden hidden = new Hidden();
- Yaml yaml = new Yaml();
- try {
- yaml.dump(hidden);
- fail("an exception should have been thrown");
- } catch (YAMLException e) {
- assertEquals(e.getMessage(),
- "No JavaBean properties found in org.yaml.snakeyaml.issues.issue116.Hidden");
- }
- Object hiddenParsed = yaml.load("!!org.yaml.snakeyaml.issues.issue116.Hidden {}\n");
- assertTrue(hiddenParsed instanceof Hidden);
+ public void testHiddenParameter() {
+ Hidden hidden = new Hidden();
+ Yaml yaml = new Yaml();
+ try {
+ yaml.dump(hidden);
+ fail("an exception should have been thrown");
+ } catch (YAMLException e) {
+ assertEquals(e.getMessage(),
+ "No JavaBean properties found in org.yaml.snakeyaml.issues.issue116.Hidden");
}
+ Object hiddenParsed = yaml.load("!!org.yaml.snakeyaml.issues.issue116.Hidden {}\n");
+ assertTrue(hiddenParsed instanceof Hidden);
+ }
- public void testSpecialHiddenParameter() {
- HiddenSpecial hidden = new HiddenSpecial("qwerty");
- Yaml yaml = new Yaml();
- try {
- yaml.dump(hidden);
- fail("an exception should have been thrown");
- } catch (YAMLException e) {
- assertEquals(e.getMessage(),
- "No JavaBean properties found in org.yaml.snakeyaml.issues.issue116.HiddenSpecial");
- }
- HiddenSpecial hs = (HiddenSpecial) yaml
- .load("!!org.yaml.snakeyaml.issues.issue116.HiddenSpecial foo\n");
- assertEquals("foo".hashCode(), hs.retrieveMyVerySpecialField());
+ public void testSpecialHiddenParameter() {
+ HiddenSpecial hidden = new HiddenSpecial("qwerty");
+ Yaml yaml = new Yaml();
+ try {
+ yaml.dump(hidden);
+ fail("an exception should have been thrown");
+ } catch (YAMLException e) {
+ assertEquals(e.getMessage(),
+ "No JavaBean properties found in org.yaml.snakeyaml.issues.issue116.HiddenSpecial");
}
+ HiddenSpecial hs = yaml.load("!!org.yaml.snakeyaml.issues.issue116.HiddenSpecial foo\n");
+ assertEquals("foo".hashCode(), hs.retrieveMyVerySpecialField());
+ }
}
+
class Empty {
+
}
+
class Hidden {
- @SuppressWarnings("unused")
- private int inaccessableField;
+
+ @SuppressWarnings("unused")
+ private int inaccessableField;
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue124/Bean124.java b/src/test/java/org/yaml/snakeyaml/issues/issue124/Bean124.java
index 202e84ed..e686b665 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue124/Bean124.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue124/Bean124.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue124;
@@ -19,36 +17,37 @@ import java.util.ArrayList;
import java.util.List;
public class Bean124 {
- private String a;
- private List<Integer> numbers;
-
- public Bean124() {
- this.a = "aaa";
- this.numbers = new ArrayList<Integer>(3);
- numbers.add(1);
- numbers.add(2);
- numbers.add(3);
- }
-
- public Bean124(String a, List<Integer> numbers) {
- super();
- this.a = a;
- this.numbers = numbers;
- }
-
- public String getA() {
- return a;
- }
-
- public void setA(String a) {
- this.a = a;
- }
-
- public List<Integer> getNumbers() {
- return numbers;
- }
-
- public void setNumbers(List<Integer> numbers) {
- this.numbers = numbers;
- }
-} \ No newline at end of file
+
+ private String a;
+ private List<Integer> numbers;
+
+ public Bean124() {
+ this.a = "aaa";
+ this.numbers = new ArrayList<Integer>(3);
+ numbers.add(1);
+ numbers.add(2);
+ numbers.add(3);
+ }
+
+ public Bean124(String a, List<Integer> numbers) {
+ super();
+ this.a = a;
+ this.numbers = numbers;
+ }
+
+ public String getA() {
+ return a;
+ }
+
+ public void setA(String a) {
+ this.a = a;
+ }
+
+ public List<Integer> getNumbers() {
+ return numbers;
+ }
+
+ public void setNumbers(List<Integer> numbers) {
+ this.numbers = numbers;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue124/DumpTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue124/DumpTest.java
index 7da50388..8f237e3e 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue124/DumpTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue124/DumpTest.java
@@ -1,22 +1,19 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue124;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.FlowStyle;
import org.yaml.snakeyaml.Yaml;
@@ -24,64 +21,63 @@ import org.yaml.snakeyaml.nodes.Tag;
public class DumpTest extends TestCase {
- public void testDumperOptionsSideEffect() {
- Yaml yaml = new Yaml();
- Bean124 bean = new Bean124();
- String output0 = yaml.dump(bean);
- // System.out.println(output0);
- assertEquals("!!org.yaml.snakeyaml.issues.issue124.Bean124\na: aaa\nnumbers: [1, 2, 3]\n",
- output0);
- String output1 = yaml.dumpAsMap(bean);
- // System.out.println(output1);
- assertEquals("a: aaa\nnumbers:\n- 1\n- 2\n- 3\n", output1);
- String output2 = yaml.dump(bean);
- // System.out.println(output2);
- assertEquals("Yaml.dumpAs() should not have any side effects.", output0, output2);
- }
+ public void testDumperOptionsSideEffect() {
+ Yaml yaml = new Yaml();
+ Bean124 bean = new Bean124();
+ String output0 = yaml.dump(bean);
+ // System.out.println(output0);
+ assertEquals("!!org.yaml.snakeyaml.issues.issue124.Bean124\na: aaa\nnumbers: [1, 2, 3]\n",
+ output0);
+ String output1 = yaml.dumpAsMap(bean);
+ // System.out.println(output1);
+ assertEquals("a: aaa\nnumbers:\n- 1\n- 2\n- 3\n", output1);
+ String output2 = yaml.dump(bean);
+ // System.out.println(output2);
+ assertEquals("Yaml.dumpAs() should not have any side effects.", output0, output2);
+ }
- public void testDumperDifferentTag() {
- Yaml yaml = new Yaml();
- Bean124 bean = new Bean124();
- String output1 = yaml.dumpAs(bean, new Tag("!!foo.bar"), FlowStyle.BLOCK);
- assertEquals("!!foo.bar\na: aaa\nnumbers:\n- 1\n- 2\n- 3\n", output1);
- }
+ public void testDumperDifferentTag() {
+ Yaml yaml = new Yaml();
+ Bean124 bean = new Bean124();
+ String output1 = yaml.dumpAs(bean, new Tag("!!foo.bar"), FlowStyle.BLOCK);
+ assertEquals("!!foo.bar\na: aaa\nnumbers:\n- 1\n- 2\n- 3\n", output1);
+ }
- public void testDumperFlowStyle() {
- Yaml yaml = new Yaml();
- Bean124 bean = new Bean124();
- String output1 = yaml.dumpAs(bean, new Tag("!!foo.bar"), FlowStyle.FLOW);
- assertEquals("!!foo.bar {a: aaa, numbers: [1, 2, 3]}\n", output1);
- }
+ public void testDumperFlowStyle() {
+ Yaml yaml = new Yaml();
+ Bean124 bean = new Bean124();
+ String output1 = yaml.dumpAs(bean, new Tag("!!foo.bar"), FlowStyle.FLOW);
+ assertEquals("!!foo.bar {a: aaa, numbers: [1, 2, 3]}\n", output1);
+ }
- public void testDumperAutoStyle() {
- Yaml yaml = new Yaml();
- Bean124 bean = new Bean124();
- String output1 = yaml.dumpAs(bean, new Tag("!!foo.bar"), FlowStyle.AUTO);
- assertEquals("!!foo.bar\na: aaa\nnumbers: [1, 2, 3]\n", output1);
- }
+ public void testDumperAutoStyle() {
+ Yaml yaml = new Yaml();
+ Bean124 bean = new Bean124();
+ String output1 = yaml.dumpAs(bean, new Tag("!!foo.bar"), FlowStyle.AUTO);
+ assertEquals("!!foo.bar\na: aaa\nnumbers: [1, 2, 3]\n", output1);
+ }
- public void testDumperNullStyle() {
- Yaml yaml = new Yaml();
- Bean124 bean = new Bean124();
- String output1 = yaml.dumpAs(bean, new Tag("!!foo.bar"), null);
- assertEquals("!!foo.bar\na: aaa\nnumbers: [1, 2, 3]\n", output1);
- }
+ public void testDumperNullStyle() {
+ Yaml yaml = new Yaml();
+ Bean124 bean = new Bean124();
+ String output1 = yaml.dumpAs(bean, new Tag("!!foo.bar"), null);
+ assertEquals("!!foo.bar\na: aaa\nnumbers: [1, 2, 3]\n", output1);
+ }
- public void testDumperNullStyle2() {
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(FlowStyle.BLOCK);
- Yaml yaml = new Yaml(options);
- Bean124 bean = new Bean124();
- String output1 = yaml.dumpAs(bean, new Tag("!!foo2.bar2"), null);
- assertEquals("!!foo2.bar2\na: aaa\nnumbers:\n- 1\n- 2\n- 3\n", output1);
- }
+ public void testDumperNullStyle2() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(options);
+ Bean124 bean = new Bean124();
+ String output1 = yaml.dumpAs(bean, new Tag("!!foo2.bar2"), null);
+ assertEquals("!!foo2.bar2\na: aaa\nnumbers:\n- 1\n- 2\n- 3\n", output1);
+ }
- public void testDumperNullTag() {
- Yaml yaml = new Yaml();
- Bean124 bean = new Bean124();
- String output1 = yaml.dumpAs(bean, null, FlowStyle.BLOCK);
- assertEquals(
- "!!org.yaml.snakeyaml.issues.issue124.Bean124\na: aaa\nnumbers:\n- 1\n- 2\n- 3\n",
- output1);
- }
-} \ No newline at end of file
+ public void testDumperNullTag() {
+ Yaml yaml = new Yaml();
+ Bean124 bean = new Bean124();
+ String output1 = yaml.dumpAs(bean, null, FlowStyle.BLOCK);
+ assertEquals("!!org.yaml.snakeyaml.issues.issue124.Bean124\na: aaa\nnumbers:\n- 1\n- 2\n- 3\n",
+ output1);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue127/Bean.java b/src/test/java/org/yaml/snakeyaml/issues/issue127/Bean.java
index d347249c..d8bfb5e1 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue127/Bean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue127/Bean.java
@@ -1,37 +1,36 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue127;
public class Bean {
- private String a;
- private String b;
- public String getA() {
- return a;
- }
+ private String a;
+ private String b;
- public void setA(String a) {
- this.a = a;
- }
+ public String getA() {
+ return a;
+ }
- public String getB() {
- return b;
- }
+ public void setA(String a) {
+ this.a = a;
+ }
- public void setB(String b) {
- this.b = b;
- }
-} \ No newline at end of file
+ public String getB() {
+ return b;
+ }
+
+ public void setB(String b) {
+ this.b = b;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue127/NullAliasTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue127/NullAliasTest.java
index bd3da2fa..73b37aef 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue127/NullAliasTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue127/NullAliasTest.java
@@ -1,25 +1,22 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue127;
import java.util.LinkedHashMap;
import java.util.Map;
-
import junit.framework.TestCase;
-
+import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.nodes.Node;
import org.yaml.snakeyaml.nodes.Tag;
@@ -27,30 +24,33 @@ import org.yaml.snakeyaml.representer.Represent;
import org.yaml.snakeyaml.representer.Representer;
public class NullAliasTest extends TestCase {
- private static final Tag MY_TAG = new Tag("tag:example.com,2011:bean");
- public void testRespresenter() {
- Bean bean = new Bean();
+ private static final Tag MY_TAG = new Tag("tag:example.com,2011:bean");
+
+ public void testRespresenter() {
+ Bean bean = new Bean();
- bean.setA("a"); // leave b null
- Yaml yaml = new Yaml(new BeanRepresenter());
- String output = yaml.dump(bean);
- assertEquals("!<tag:example.com,2011:bean>\na: a\nb: null\n", output);
+ bean.setA("a"); // leave b null
+ Yaml yaml = new Yaml(new BeanRepresenter());
+ String output = yaml.dump(bean);
+ assertEquals("!<tag:example.com,2011:bean>\na: a\nb: null\n", output);
+ }
+
+ class BeanRepresenter extends Representer {
+
+ public BeanRepresenter() {
+ this.representers.put(Bean.class, new RepresentBean());
}
- class BeanRepresenter extends Representer {
- public BeanRepresenter() {
- this.representers.put(Bean.class, new RepresentBean());
- }
-
- private class RepresentBean implements Represent {
- public Node representData(Object data) {
- Bean bean = (Bean) data;
- Map<String, Object> fields = new LinkedHashMap<String, Object>(2);
- fields.put("a", bean.getA());
- fields.put("b", bean.getB());
- return representMapping(MY_TAG, fields, false);
- }
- }
+ private class RepresentBean implements Represent {
+
+ public Node representData(Object data) {
+ Bean bean = (Bean) data;
+ Map<String, Object> fields = new LinkedHashMap<String, Object>(2);
+ fields.put("a", bean.getA());
+ fields.put("b", bean.getB());
+ return representMapping(MY_TAG, fields, DumperOptions.FlowStyle.BLOCK);
+ }
}
-} \ No newline at end of file
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue132/ScalarEventTagTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue132/ScalarEventTagTest.java
index 52eb0bd7..75db4ccf 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue132/ScalarEventTagTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue132/ScalarEventTagTest.java
@@ -1,26 +1,22 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue132;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.events.Event;
import org.yaml.snakeyaml.events.ScalarEvent;
@@ -30,30 +26,31 @@ import org.yaml.snakeyaml.nodes.Node;
* to test http://code.google.com/p/snakeyaml/issues/detail?id=132
*/
public class ScalarEventTagTest extends TestCase {
- public void testLoad() {
- Yaml yaml = new Yaml();
- Iterable<Event> parsed = yaml.parse(new StringReader("5"));
- List<Event> events = new ArrayList<Event>(5);
- for (Event event : parsed) {
- events.add(event);
- // System.out.println(event);
- }
- String tag = ((ScalarEvent) events.get(2)).getTag();
- assertNull("The tag should not be specified: " + tag, tag);
- }
- public void testDump() {
- Yaml yaml = new Yaml();
- Node intNode = yaml.represent(7);
- assertEquals("tag:yaml.org,2002:int", intNode.getTag().toString());
- // System.out.println(intNode);
- List<Event> intEvents = yaml.serialize(intNode);
- String tag = ((ScalarEvent) intEvents.get(2)).getTag();
- assertEquals("Without the tag emitter would not know how to emit '7'",
- "tag:yaml.org,2002:int", tag);
- //
- Node strNode = yaml.represent("7");
- assertEquals("tag:yaml.org,2002:str", strNode.getTag().toString());
- // System.out.println(strNode);
+ public void testLoad() {
+ Yaml yaml = new Yaml();
+ Iterable<Event> parsed = yaml.parse(new StringReader("5"));
+ List<Event> events = new ArrayList<Event>(5);
+ for (Event event : parsed) {
+ events.add(event);
+ // System.out.println(event);
}
+ String tag = ((ScalarEvent) events.get(2)).getTag();
+ assertNull("The tag should not be specified: " + tag, tag);
+ }
+
+ public void testDump() {
+ Yaml yaml = new Yaml();
+ Node intNode = yaml.represent(7);
+ assertEquals("tag:yaml.org,2002:int", intNode.getTag().toString());
+ // System.out.println(intNode);
+ List<Event> intEvents = yaml.serialize(intNode);
+ String tag = ((ScalarEvent) intEvents.get(2)).getTag();
+ assertEquals("Without the tag emitter would not know how to emit '7'", "tag:yaml.org,2002:int",
+ tag);
+ //
+ Node strNode = yaml.represent("7");
+ assertEquals("tag:yaml.org,2002:str", strNode.getTag().toString());
+ // System.out.println(strNode);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue133/StackOverflowTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue133/StackOverflowTest.java
index 080081d7..85744adf 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue133/StackOverflowTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue133/StackOverflowTest.java
@@ -1,24 +1,24 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue133;
-import java.awt.Point;
-
-import junit.framework.TestCase;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import java.awt.Point;
+import org.junit.Test;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.introspector.Property;
import org.yaml.snakeyaml.nodes.NodeTuple;
@@ -28,45 +28,49 @@ import org.yaml.snakeyaml.representer.Representer;
/**
* to test http://code.google.com/p/snakeyaml/issues/detail?id=133
*/
-public class StackOverflowTest extends TestCase {
- public void testDumpRecursiveObject() {
- try {
- Yaml yaml = new Yaml();
- // by default it must fail with StackOverflow
- yaml.dump(new Point());
- fail("getLocation() is recursive.");
- } catch (Throwable e) {
- String message = e.getMessage();
- assertTrue("StackOverflow has no message: " + e.getMessage(), message == null
- || message.contains("Unable to find getter for property 'location'"));
- }
- }
+public class StackOverflowTest {
- /**
- * Since Point.getLocation() creates a new instance of Point class,
- * SnakeYAML will fail to dump an instance of Point if 'getLocation()' is
- * also included.
- *
- * Since Point is not really a JavaBean, we can safely skip the recursive
- * property when we dump the instance of Point.
- */
- private class PointRepresenter extends Representer {
+ @Test
+ public void testDumpRecursiveObjectOnJava6() {
- @Override
- protected NodeTuple representJavaBeanProperty(Object javaBean, Property property,
- Object propertyValue, Tag customTag) {
- if (javaBean instanceof Point && "location".equals(property.getName())) {
- return null;
- } else {
- return super
- .representJavaBeanProperty(javaBean, property, propertyValue, customTag);
- }
- }
+ org.junit.Assume.assumeTrue(System.getProperty("java.version").startsWith("1.6"));
+
+ try {
+ Yaml yaml = new Yaml();
+ // by default it must fail with StackOverflow
+ yaml.dump(new Point());
+ fail("getLocation() is recursive.");
+ } catch (Throwable e) {
+ String message = e.getMessage();
+ assertTrue("StackOverflow has no message: " + e.getMessage(),
+ message == null || message.contains("Unable to find getter for property 'location'"));
}
+ }
+
+ /**
+ * Since Point.getLocation() creates a new instance of Point class, SnakeYAML will fail to dump an
+ * instance of Point if 'getLocation()' is also included.
+ *
+ * Since Point is not really a JavaBean, we can safely skip the recursive property when we dump
+ * the instance of Point.
+ */
+ private class PointRepresenter extends Representer {
- public void testDump() {
- Yaml yaml = new Yaml(new PointRepresenter());
- String output = yaml.dump(new Point());
- assertEquals("!!java.awt.Point {x: 0, y: 0}\n", output);
+ @Override
+ protected NodeTuple representJavaBeanProperty(Object javaBean, Property property,
+ Object propertyValue, Tag customTag) {
+ if (javaBean instanceof Point && "location".equals(property.getName())) {
+ return null;
+ } else {
+ return super.representJavaBeanProperty(javaBean, property, propertyValue, customTag);
+ }
}
+ }
+
+ @Test
+ public void testDump() {
+ Yaml yaml = new Yaml(new PointRepresenter());
+ String output = yaml.dump(new Point());
+ assertEquals("!!java.awt.Point {x: 0, y: 0}\n", output);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue136/TabInScalarTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue136/TabInScalarTest.java
index 09c3b081..c7fa5442 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue136/TabInScalarTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue136/TabInScalarTest.java
@@ -1,51 +1,48 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue136;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class TabInScalarTest extends TestCase {
- public void testTab() {
- String data = (String) new Yaml().load("L\tD");
- assertEquals("L\tD", data);
- }
-
- public void testNoTab() {
- String data = (String) new Yaml().load("L D");
- assertEquals("L D", data);
- }
-
- public void testTabDoubleQuotes() {
- String data = (String) new Yaml().load("\"L\tD\"");
- // System.out.println(data);
- assertEquals("L\tD", data);
- }
-
- public void testTabSingleQuotes() {
- String data = (String) new Yaml().load("'L\tD'");
- // System.out.println(data);
- assertEquals("L\tD", data);
- }
-
- public void testDumpTab() {
- String data = (String) new Yaml().dump("L\tD");
- // System.out.println(data);
- assertEquals("\"L\\tD\"\n", data);
- }
+ public void testTab() {
+ String data = new Yaml().load("L\tD");
+ assertEquals("L\tD", data);
+ }
+
+ public void testNoTab() {
+ String data = new Yaml().load("L D");
+ assertEquals("L D", data);
+ }
+
+ public void testTabDoubleQuotes() {
+ String data = new Yaml().load("\"L\tD\"");
+ // System.out.println(data);
+ assertEquals("L\tD", data);
+ }
+
+ public void testTabSingleQuotes() {
+ String data = new Yaml().load("'L\tD'");
+ // System.out.println(data);
+ assertEquals("L\tD", data);
+ }
+
+ public void testDumpTab() {
+ String data = new Yaml().dump("L\tD");
+ // System.out.println(data);
+ assertEquals("\"L\\tD\"\n", data);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue137/SupplementaryCharactersTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue137/SupplementaryCharactersTest.java
index 389735d3..a52c6362 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue137/SupplementaryCharactersTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue137/SupplementaryCharactersTest.java
@@ -1,24 +1,24 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue137;
+import java.io.InputStream;
import java.io.UnsupportedEncodingException;
-
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+import java.util.Map;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
/**
@@ -26,38 +26,99 @@ import org.yaml.snakeyaml.Yaml;
*/
public class SupplementaryCharactersTest extends TestCase {
- public void testSupplementaryCharacter() {
- Yaml yaml = new Yaml();
- String parsed = (String) yaml.load("\"\\U0001f648\"");
- assertEquals("\ud83d\ude48", parsed);
- // System.out.println(data);
- }
+ public static class EmojiContainer {
+
+ public Map<String, Map<String, Integer>> sizes;
+ public Map<String, Map<String, List<String>>> values;
+ }
+
+ public void testSupplementaryCharacter() {
+ Yaml yaml = new Yaml();
+ String parsed = yaml.load("\"\\U0001f648\"");
+ assertEquals("\ud83d\ude48", parsed);
+ // System.out.println(data);
+ }
+
+ public void testBasicMultilingualPlane() {
+ Yaml yaml = new Yaml();
+ String parsed = yaml.load("\"\\U00000041\"");
+ assertEquals("A", parsed);
+ }
+
+ /**
+ * Supplementary code points are dumped normally
+ */
+ public void testDumpSupplementaryCodePoint() throws UnsupportedEncodingException {
+ String supplementary = "\ud83d\ude48";
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(supplementary);
+ assertEquals("\ud83d\ude48\n", output);
+ String binString = yaml.load(output);
+ assertEquals(supplementary, binString);
+ }
+
+ /**
+ * Non-printable characters are escaped
+ */
+ public void testDumpNonPrintableCharacter() throws UnsupportedEncodingException {
+ String supplementary = "\u0001";
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(supplementary);
+ assertEquals("!!binary |-\n AQ==\n", output);
+ byte[] binary = yaml.load(output);
+ String binString = new String(binary, StandardCharsets.UTF_8);
+ assertEquals(supplementary, binString);
+ }
- public void testBasicMultilingualPlane() {
- Yaml yaml = new Yaml();
- String parsed = (String) yaml.load("\"\\U00000041\"");
- assertEquals("A", parsed);
+ public void testDumpSurrogateCharacter() throws UnsupportedEncodingException {
+ String supplementary = "\ud83d";
+ Yaml yaml = new Yaml();
+ try {
+ yaml.dump(supplementary);
+ fail("dumping half code point without other half should fail");
+ } catch (Exception e) {
+ assertEquals("invalid string value has occurred", e.getMessage());
}
- /**
- * Supplementary Characters are dumped as binary
- */
- public void testDumpSupplementaryCharacter() throws UnsupportedEncodingException {
- String supplementary = "\ud83d\ude48";
- Yaml yaml = new Yaml();
- String output = yaml.dump(supplementary);
- assertEquals("!!binary |-\n 8J+ZiA==\n", output);
- byte[] binary = (byte[]) yaml.load(output);
- String binString = new String(binary, "UTF-8");
- assertEquals(supplementary, binString);
+ }
+
+ public void testLoadSupplementaryCodePoint() {
+ new Yaml().load("\"\ud83d\ude48\"\n");
+ }
+
+ public void testLoadSurrogateCharacter() {
+ try {
+ new Yaml().load("\"\ud83d\"\n");
+ fail("separate surrogate characters are not printable");
+ } catch (Exception e) {
+ assertEquals("special characters are not allowed", e.getMessage());
}
+ }
+
+ /*
+ * This method tests loading of the document with a lot of SupplementaryCharacters. Main purpose
+ * is to check that StreamReader actually reads document fully, but not in one read (since file is
+ * bigger than StreamReader buffer).
+ */
+ public void testLoadingEmoji() {
+ InputStream input = this.getClass().getClassLoader().getResourceAsStream("issues/emoji.yaml");
+ EmojiContainer emoji = new Yaml().loadAs(input, EmojiContainer.class);
+
+ assertEquals(emoji.sizes.keySet(), emoji.values.keySet());
- public void testLoadSupplementaryCharacter() {
- try {
- new Yaml().load("\"\ud83d\ude48\"\n");
- fail("Are Supplementary Characters printable ?");
- } catch (Exception e) {
- assertEquals("special characters are not allowed", e.getMessage());
- }
+ for (Map.Entry<String, Map<String, Integer>> mainTopic : emoji.sizes.entrySet()) {
+ String mainName = mainTopic.getKey();
+ Map<String, Integer> subtopic2size = mainTopic.getValue();
+
+ Map<String, List<String>> subtopic2values = emoji.values.get(mainName);
+ assertEquals(subtopic2size.keySet(), subtopic2values.keySet());
+
+ for (Map.Entry<String, Integer> subTopic : subtopic2size.entrySet()) {
+ String subName = subTopic.getKey();
+
+ assertEquals(subTopic.getValue().intValue(), subtopic2values.get(subName).size());
+ }
}
+
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue138/ReaderExceptionTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue138/ReaderExceptionTest.java
index 851ab171..4084fda7 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue138/ReaderExceptionTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue138/ReaderExceptionTest.java
@@ -1,35 +1,32 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue138;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.reader.ReaderException;
public class ReaderExceptionTest extends TestCase {
- public void testGetters() {
- try {
- new Yaml().load("012\u0019");
- fail();
- } catch (ReaderException e) {
- assertEquals(3, e.getPosition());
- assertEquals("'string'", e.getName());
- assertEquals('\u0019', e.getCharacter());
- }
+ public void testGetters() {
+ try {
+ new Yaml().load("012\u0019");
+ fail();
+ } catch (ReaderException e) {
+ assertEquals(3, e.getPosition());
+ assertEquals("'string'", e.getName());
+ assertEquals(0x19, e.getCodePoint());
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue139/MergeValueTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue139/MergeValueTest.java
index debf99f6..7dc347cd 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue139/MergeValueTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue139/MergeValueTest.java
@@ -1,70 +1,66 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue139;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
public class MergeValueTest extends TestCase {
- public void testNotUniqueSimple() {
- String simple = "{key: 1, key: 2}";
- Yaml yaml = new Yaml();
- @SuppressWarnings("unchecked")
- Map<String, Integer> map = (Map<String, Integer>) yaml.load(simple);
- assertEquals(1, map.size());
- assertEquals(new Integer(2), map.get("key"));
- }
-
- public void testMerge() {
- check("issues/issue139-1.yaml");// merge with unique keys
- check("issues/issue139-2.yaml");// merge with same key
- }
+ public void testNotUniqueSimple() {
+ String simple = "{key: 1, key: 2}";
+ Yaml yaml = new Yaml();
+ @SuppressWarnings("unchecked")
+ Map<String, Integer> map = yaml.load(simple);
+ assertEquals(1, map.size());
+ assertEquals(Integer.valueOf(2), map.get("key"));
+ }
- private void check(String name) {
- String input = Util.getLocalResource(name);
- // System.out.println(input);
- Yaml yaml = new Yaml();
- @SuppressWarnings("unchecked")
- Map<String, Object> map = (Map<String, Object>) yaml.load(input);
- assertEquals(2, map.size());
- assertTrue(map.containsKey("common"));
- assertTrue(map.containsKey("production"));
- assertEquals(map.get("common"), map.get("production"));
- }
+ public void testMerge() {
+ check("issues/issue139-1.yaml");// merge with unique keys
+ check("issues/issue139-2.yaml");// merge with same key
+ }
- /**
- * http://yaml.org/type/merge.html: If the value associated with the key is
- * a single mapping node, each of its key/value pairs is inserted into the
- * current mapping, <b>unless the key already exists in it</b>.
- */
+ private void check(String name) {
+ String input = Util.getLocalResource(name);
+ // System.out.println(input);
+ Yaml yaml = new Yaml();
@SuppressWarnings("unchecked")
- public void testMergeUnlessAlreadyExists() {
- String input = Util.getLocalResource("issues/issue139-3.yaml");
- // System.out.println(input);
- Yaml yaml = new Yaml();
- Map<String, Object> map = (Map<String, Object>) yaml.load(input);
- assertEquals(2, map.size());
- Map<String, Integer> common = (Map<String, Integer>) map.get("common");
- Map<String, Integer> production = (Map<String, Integer>) map.get("production");
- assertEquals(new Integer(2), common.get("key"));
- assertEquals(new Integer(3), production.get("key"));
- }
+ Map<String, Object> map = yaml.load(input);
+ assertEquals(2, map.size());
+ assertTrue(map.containsKey("common"));
+ assertTrue(map.containsKey("production"));
+ assertEquals(map.get("common"), map.get("production"));
+ }
+
+ /**
+ * http://yaml.org/type/merge.html: If the value associated with the key is a single mapping node,
+ * each of its key/value pairs is inserted into the current mapping, <b>unless the key already
+ * exists in it</b>.
+ */
+ @SuppressWarnings("unchecked")
+ public void testMergeUnlessAlreadyExists() {
+ String input = Util.getLocalResource("issues/issue139-3.yaml");
+ // System.out.println(input);
+ Yaml yaml = new Yaml();
+ Map<String, Object> map = yaml.load(input);
+ assertEquals(2, map.size());
+ Map<String, Integer> common = (Map<String, Integer>) map.get("common");
+ Map<String, Integer> production = (Map<String, Integer>) map.get("production");
+ assertEquals(Integer.valueOf(2), common.get("key"));
+ assertEquals(Integer.valueOf(3), production.get("key"));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue139/UniqueKeyTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue139/UniqueKeyTest.java
index 4117b979..28488b02 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue139/UniqueKeyTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue139/UniqueKeyTest.java
@@ -1,25 +1,21 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue139;
import java.util.List;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.Constructor;
import org.yaml.snakeyaml.error.YAMLException;
@@ -29,36 +25,36 @@ import org.yaml.snakeyaml.nodes.NodeTuple;
public class UniqueKeyTest extends TestCase {
- public void testNotUnique() {
- String data = "{key: 1, key: 2}";
- Yaml yaml = new Yaml(new UniqueKeyConstructor());
- try {
- yaml.load(data);
- fail("The same key must be rejected");
- } catch (Exception e) {
- assertEquals("The key is not unique key", e.getMessage());
- }
+ public void testNotUnique() {
+ String data = "{key: 1, key: 2}";
+ Yaml yaml = new Yaml(new UniqueKeyConstructor());
+ try {
+ yaml.load(data);
+ fail("The same key must be rejected");
+ } catch (Exception e) {
+ assertEquals("The key is not unique key", e.getMessage());
}
-
- private class UniqueKeyConstructor extends Constructor {
-
- @Override
- protected void constructMapping2ndStep(MappingNode node, Map<Object, Object> mapping) {
- List<NodeTuple> nodeValue = (List<NodeTuple>) node.getValue();
- for (NodeTuple tuple : nodeValue) {
- Node keyNode = tuple.getKeyNode();
- Node valueNode = tuple.getValueNode();
- Object key = constructObject(keyNode);
- if (key != null) {
- key.hashCode();// check circular dependencies
- }
- Object value = constructObject(valueNode);
- Object old = mapping.put(key, value);
- if (old != null) {
- throw new YAMLException("The key is not unique " + key);
- }
- }
+ }
+
+ private class UniqueKeyConstructor extends Constructor {
+
+ @Override
+ protected void constructMapping2ndStep(MappingNode node, Map<Object, Object> mapping) {
+ List<NodeTuple> nodeValue = node.getValue();
+ for (NodeTuple tuple : nodeValue) {
+ Node keyNode = tuple.getKeyNode();
+ Node valueNode = tuple.getValueNode();
+ Object key = constructObject(keyNode);
+ if (key != null) {
+ key.hashCode();// check circular dependencies
+ }
+ Object value = constructObject(valueNode);
+ Object old = mapping.put(key, value);
+ if (old != null) {
+ throw new YAMLException("The key is not unique " + key);
}
+ }
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue141/ConfigurableTimezoneTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue141/ConfigurableTimezoneTest.java
index 872af854..145e5784 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue141/ConfigurableTimezoneTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue141/ConfigurableTimezoneTest.java
@@ -1,45 +1,41 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue141;
import java.util.Date;
import java.util.TimeZone;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
public class ConfigurableTimezoneTest extends TestCase {
- public void testNoTimezone() {
- Yaml yaml = new Yaml();
- String output = yaml.dump(new Date());
- assertTrue(output, output.endsWith("Z\n"));
- }
+ public void testNoTimezone() {
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(new Date());
+ assertTrue(output, output.endsWith("Z\n"));
+ }
- public void testTimezone() {
- DumperOptions options = new DumperOptions();
- options.setTimeZone(TimeZone.getTimeZone("GMT+1:00"));
- Yaml yaml = new Yaml(options);
- Date date = new Date();
- String output = yaml.dump(date);
- // System.out.println(output);
- assertTrue(output, output.trim().endsWith("+1:00"));
- Date parsed = (Date) yaml.load(output);
- assertEquals(date, parsed);
- }
+ public void testTimezone() {
+ DumperOptions options = new DumperOptions();
+ options.setTimeZone(TimeZone.getTimeZone("GMT+1:00"));
+ Yaml yaml = new Yaml(options);
+ Date date = new Date();
+ String output = yaml.dump(date);
+ // System.out.println(output);
+ assertTrue(output, output.trim().endsWith("+01:00"));
+ Date parsed = yaml.load(output);
+ assertEquals(date, parsed);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue142/DerivedMapTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue142/DerivedMapTest.java
new file mode 100644
index 00000000..c78b94a1
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue142/DerivedMapTest.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue142;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+
+public class DerivedMapTest extends TestCase {
+
+ public static class Features extends LinkedHashMap<String, Object> {
+
+ }
+
+ public static class MyObject {
+
+ private String name;
+ private Map<String, Object> features = new LinkedHashMap<String, Object>();
+ private Features moreFeatures = new Features();
+
+ public Map<String, Object> getFeatures() {
+ return features;
+ }
+
+ public void setFeatures(Map<String, Object> features) {
+ this.features = features;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Features getMoreFeatures() {
+ return moreFeatures;
+ }
+
+ public void setMoreFeatures(Features moreFeatures) {
+ this.moreFeatures = moreFeatures;
+ }
+
+ }
+
+ public void testDerivedMap() {
+ MyObject o = new MyObject();
+ o.setName("Mickey");
+ o.getFeatures().put("Address", "Disney");
+ o.getMoreFeatures().put("Address", "Disney");
+ Yaml yaml = new Yaml();
+ String asYaml = yaml.dump(o);
+ // System.out.println(asYaml);
+ MyObject o2 = yaml.load(asYaml);
+ }
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue143/GenericMapTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue143/GenericMapTest.java
index c98449ec..8c7ec921 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue143/GenericMapTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue143/GenericMapTest.java
@@ -1,45 +1,44 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue143;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
public class GenericMapTest extends TestCase {
- public void testMap() throws Exception {
- BeanWithMap fact = new BeanWithMap();
- GenericMap<Integer> shash = fact.getMap();
- shash.put("toto", new Integer(10));
- DumperOptions options = new DumperOptions();
- options.setAllowReadOnlyProperties(true);
- Yaml yaml = new Yaml(options);
- // String txt = yaml.dump(fact);
- // assertTrue(txt.contains("org.yaml.snakeyaml.issues.issue143.GenericMapTest"));
- }
+ public void testMap() throws Exception {
+ BeanWithMap fact = new BeanWithMap();
+ GenericMap<Integer> shash = fact.getMap();
+ shash.put("toto", Integer.valueOf(10));
+ DumperOptions options = new DumperOptions();
+ options.setAllowReadOnlyProperties(true);
+ Yaml yaml = new Yaml(options);
+ // String txt = yaml.dump(fact);
+ // assertTrue(txt.contains("org.yaml.snakeyaml.issues.issue143.GenericMapTest"));
+ }
- public static class GenericMap<T> extends java.util.HashMap<String, T> {
- private static final long serialVersionUID = -6833859369398863926L;
- }
+ public static class GenericMap<T> extends java.util.HashMap<String, T> {
+
+ private static final long serialVersionUID = -6833859369398863926L;
+ }
+
+ public class BeanWithMap {
- public class BeanWithMap {
- public GenericMap<Integer> getMap() {
- return new GenericMap<Integer>();
- }
+ public GenericMap<Integer> getMap() {
+ return new GenericMap<Integer>();
}
-} \ No newline at end of file
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue144/BeanData.java b/src/test/java/org/yaml/snakeyaml/issues/issue144/BeanData.java
index 79880002..71b35192 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue144/BeanData.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue144/BeanData.java
@@ -1,46 +1,45 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue144;
public class BeanData {
- private String id;
- private float number;
- public BeanData() {
- this.id = "noid";
- }
+ private String id;
+ private float number;
- public BeanData(String id) {
- this.id = id;
- }
+ public BeanData() {
+ this.id = "noid";
+ }
- public String getId() {
- return id;
- }
+ public BeanData(String id) {
+ this.id = id;
+ }
- public void setId(String id) {
- this.id = id;
- }
+ public String getId() {
+ return id;
+ }
- public float getNumber() {
- return number;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- public void setNumber(float number) {
- this.number = number;
- }
+ public float getNumber() {
+ return number;
+ }
-} \ No newline at end of file
+ public void setNumber(float number) {
+ this.number = number;
+ }
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue144/FloatPropertyTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue144/FloatPropertyTest.java
index b9492aad..527aa2c4 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue144/FloatPropertyTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue144/FloatPropertyTest.java
@@ -1,42 +1,38 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue144;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.extensions.compactnotation.CompactConstructor;
public class FloatPropertyTest extends TestCase {
- public void testFloatAsJavaBeanProperty() throws Exception {
- BeanData bean = new BeanData();
- bean.setId("id1");
- bean.setNumber(3.5f);
- Yaml yaml = new Yaml();
- String txt = yaml.dump(bean);
- BeanData parsed = yaml.loadAs(txt, BeanData.class);
- assertEquals(3.5f, parsed.getNumber());
- }
+ public void testFloatAsJavaBeanProperty() throws Exception {
+ BeanData bean = new BeanData();
+ bean.setId("id1");
+ bean.setNumber(3.5f);
+ Yaml yaml = new Yaml();
+ String txt = yaml.dump(bean);
+ BeanData parsed = yaml.loadAs(txt, BeanData.class);
+ assertEquals(3.5f, parsed.getNumber());
+ }
- public void testCompact() {
- Yaml yaml = new Yaml(new CompactConstructor());
- BeanData obj = (BeanData) yaml
- .load("org.yaml.snakeyaml.issues.issue144.BeanData(id): { number: 123.4 }");
- assertEquals(123.4f, obj.getNumber());
- }
+ public void testCompact() {
+ Yaml yaml = new Yaml(new CompactConstructor());
+ BeanData obj = yaml.load("org.yaml.snakeyaml.issues.issue144.BeanData(id): { number: 123.4 }");
+ assertEquals(123.4f, obj.getNumber());
+ }
-} \ No newline at end of file
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue145/AbstractThing.java b/src/test/java/org/yaml/snakeyaml/issues/issue145/AbstractThing.java
index c169e387..516faac3 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue145/AbstractThing.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue145/AbstractThing.java
@@ -1,28 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue145;
public abstract class AbstractThing {
- protected String id;
- public String getId() {
- return id;
- }
+ protected String id;
- public void setId(String id) {
- this.id = id;
- }
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue145/CompleteThing.java b/src/test/java/org/yaml/snakeyaml/issues/issue145/CompleteThing.java
index eca4a066..498b7f46 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue145/CompleteThing.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue145/CompleteThing.java
@@ -1,24 +1,22 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue145;
public class CompleteThing extends AbstractThing {
- @Override
- public String toString() {
- return "CompleteThing-" + id;
- }
+ @Override
+ public String toString() {
+ return "CompleteThing-" + id;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue145/LineNumberInExceptionTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue145/LineNumberInExceptionTest.java
index 39c8c740..5218fea0 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue145/LineNumberInExceptionTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue145/LineNumberInExceptionTest.java
@@ -1,55 +1,54 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue145;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class LineNumberInExceptionTest extends TestCase {
- public void testLineReport() {
- Yaml yaml = new Yaml();
- try {
- yaml.load("---\n!!org.yaml.snakeyaml.issues.issue145.AbstractThing { id: QQQ }");
- fail("Instances for abstract classes cannot be created");
- } catch (Exception e) {
- assertTrue(e.toString().contains("line 2, column 1"));
- assertEquals(
- "Can't construct a java object for tag:yaml.org,2002:org.yaml.snakeyaml.issues.issue145.AbstractThing; exception=java.lang.InstantiationException\n"
- + " in 'string', line 2, column 1:\n"
- + " !!org.yaml.snakeyaml.issues.issu ... \n" + " ^\n",
- e.getMessage());
- }
- }
+ public void testLineReport() {
+ Yaml yaml = new Yaml();
+ try {
+ yaml.load("---\n!!org.yaml.snakeyaml.issues.issue145.AbstractThing { id: QQQ }");
+ fail("Instances for abstract classes cannot be created");
+ } catch (Exception e) {
+ assertTrue(e.toString().contains("line 2, column 1"));
- public void testCompleteThing() {
- Yaml yaml = new Yaml();
- CompleteThing thing = (CompleteThing) yaml
- .load("---\n!!org.yaml.snakeyaml.issues.issue145.CompleteThing { id: QQQ }");
- assertEquals("QQQ", thing.getId());
+ String tag = "tag:yaml.org,2002:org.yaml.snakeyaml.issues.issue145.AbstractThing";
+ String expectedError =
+ String.format("Can't create an instance for %s\n" + " in 'string', line 2, column 1:\n"
+ + " !!org.yaml.snakeyaml.issues.issu ... \n" + " ^\n", tag);
+
+ assertEquals(expectedError, e.getMessage());
}
+ }
+
+ public void testCompleteThing() {
+ Yaml yaml = new Yaml();
+ CompleteThing thing =
+ yaml.load("---\n!!org.yaml.snakeyaml.issues.issue145.CompleteThing { id: QQQ }");
+ assertEquals("QQQ", thing.getId());
+ }
- public void testWrongParameter() {
- Yaml yaml = new Yaml();
- try {
- yaml.load("---\n!!org.yaml.snakeyaml.issues.issue145.CompleteThing { id2: QQQ }");
- fail("Invalid parameter");
- } catch (Exception e) {
- assertTrue("The error should ponit to QQQ.", e.toString().contains("line 2, column 59"));
- }
+ public void testWrongParameter() {
+ Yaml yaml = new Yaml();
+ try {
+ yaml.load("---\n!!org.yaml.snakeyaml.issues.issue145.CompleteThing { id2: QQQ }");
+ fail("Invalid parameter");
+ } catch (Exception e) {
+ assertTrue("The error should ponit to QQQ.", e.toString().contains("line 2, column 59"));
}
-} \ No newline at end of file
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue147/PrintableTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue147/PrintableTest.java
index a534b495..b96d8efa 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue147/PrintableTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue147/PrintableTest.java
@@ -1,29 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue147;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class PrintableTest extends TestCase {
- // http://code.google.com/p/snakeyaml/issues/detail?id=147
- public void testFFFD() {
- Yaml yaml = new Yaml();
- String fffd = (String) yaml.load(yaml.dump("\uFFFD"));
- assertEquals("\uFFFD", fffd);
- }
-} \ No newline at end of file
+
+ // http://code.google.com/p/snakeyaml/issues/detail?id=147
+ public void testFFFD() {
+ Yaml yaml = new Yaml();
+ String fffd = yaml.load(yaml.dump("\uFFFD"));
+ assertEquals("\uFFFD", fffd);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue148/PrintableUnicodeTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue148/PrintableUnicodeTest.java
index 0fa9322b..9a0b7afd 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue148/PrintableUnicodeTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue148/PrintableUnicodeTest.java
@@ -1,177 +1,180 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue148;
import java.util.Formatter;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.ScalarStyle;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.reader.ReaderException;
public class PrintableUnicodeTest extends TestCase {
- public void testFFFD() {
- Yaml yaml = createYaml();
- String fffd = yaml.dump("\uFFFD");
- assertEquals("\"\\ufffd\"\n", fffd);
- }
- public void testSerialization() {
- // test serialization of all Unicode codepoints
- Yaml yaml = createYaml();
- for (int c = Character.MIN_VALUE; c <= Character.MAX_VALUE; c++) {
- String original = Character.toString((char) c);
- String serialized = yaml.dump(original);
+ public void testFFFD() {
+ Yaml yaml = createYaml();
+ String fffd = yaml.dump("\uFFFD");
+ assertEquals("\"\\ufffd\"\n", fffd);
+ }
- // "On output, a YAML processor must only produce these acceptable
- // characters,
- // and should also escape all non-printable Unicode characters."
- for (int i = 0; i < serialized.length(); i++) {
- int cp = (int) serialized.charAt(i);
- if (!isAcceptable(cp))
- fail(String.format(
- "U+%04x: Serialization produced result with unacceptable U+%04x\n", c,
- cp));
- if (!isPrintable(cp))
- fail(String.format(
- "U+%04x: Serialization produced result with nonprintable U+%04x\n", c,
- cp));
- }
- }
- }
+ public void testSerialization() {
+ // test serialization of valid Unicode BMP codepoints
+ Yaml yaml = createYaml();
+ for (int c = Character.MIN_VALUE; c <= Character.MAX_VALUE; c++) {
+ if (Character.isHighSurrogate((char) c) || Character.isLowSurrogate((char) c)) {
+ continue;
+ }
- public void testDeserialization() {
- // test deserialization of non-escaped codepoints
- for (int c = Character.MIN_VALUE; c <= Character.MAX_VALUE; c++) {
- // ignore breaks, which have special meaning
- if (c == 0x0A || c == 0x0D || c == 0x85 || c == 0x2028 || c == 0x2029)
- continue;
- if (!isAcceptable(c) || c == 0x27)
- continue;
- String expected = Character.toString((char) c);
- String serialized = "'" + expected + "'";
+ String original = Character.toString((char) c);
+ String serialized = yaml.dump(original);
- String result;
- try {
- result = new Yaml().load(serialized).toString();
- } catch (ReaderException e) {
- fail(String
- .format("U+%04x: Deserialization threw ReaderException for an acceptable character\n",
- c));
- continue;
- }
- if (!result.equals(expected))
- fail(String.format("U+%04x: Deserialization incorrect: %s\n", c, hexdump(result)));
+ // "On output, a YAML processor must only produce these acceptable
+ // characters,
+ // and should also escape all non-printable Unicode characters."
+ for (int i = 0; i < serialized.length(); i++) {
+ int cp = serialized.charAt(i);
+ if (!isAcceptable(cp)) {
+ fail(String.format("U+%04x: Serialization produced result with unacceptable U+%04x\n", c,
+ cp));
+ }
+ if (!isPrintable(cp)) {
+ fail(String.format("U+%04x: Serialization produced result with nonprintable U+%04x\n", c,
+ cp));
}
+ }
}
+ }
- public void testDeserialization2() {
- // test deserialization of escaped codepoints
- // "Any such characters must be presented using escape sequences."
- for (int c = Character.MIN_VALUE; c <= Character.MAX_VALUE; c++) {
- String expected = Character.toString((char) c);
- String serialized = String.format("\"\\u%04x\"", c);
+ public void testDeserialization() {
+ // test deserialization of non-escaped codepoints
+ for (int c = Character.MIN_VALUE; c <= Character.MAX_VALUE; c++) {
+ // ignore breaks, which have special meaning
+ if (c == 0x0A || c == 0x0D || c == 0x85 || c == 0x2028 || c == 0x2029) {
+ continue;
+ }
+ if (!isAcceptable(c) || c == 0x27) {
+ continue;
+ }
+ String expected = Character.toString((char) c);
+ String serialized = "'" + expected + "'";
- String result;
- try {
- result = new Yaml().load(serialized).toString();
- } catch (ReaderException e) {
- fail(String
- .format("U+%04x: Deserialization threw ReaderException for an acceptable escaped character\n",
- c));
- continue;
- }
- if (!result.equals(expected))
- fail(String.format("U+%04x: Deserialization of escaped character incorrect: %s\n",
- c, hexdump(result)));
- }
+ String result;
+ try {
+ result = new Yaml().load(serialized).toString();
+ } catch (ReaderException e) {
+ fail(String.format(
+ "U+%04x: Deserialization threw ReaderException for an acceptable character\n", c));
+ continue;
+ }
+ if (!result.equals(expected)) {
+ fail(String.format("U+%04x: Deserialization incorrect: %s\n", c, hexdump(result)));
+ }
}
+ }
- private Yaml createYaml() {
- DumperOptions options = new DumperOptions();
- options.setAllowUnicode(false);
- options.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED);
- return new Yaml(options);
- }
+ public void testDeserialization2() {
+ // test deserialization of escaped codepoints
+ // "Any such characters must be presented using escape sequences."
+ for (int c = Character.MIN_VALUE; c <= Character.MAX_VALUE; c++) {
+ String expected = Character.toString((char) c);
+ String serialized = String.format("\"\\u%04x\"", c);
- /**
- * Test whether a character is printable, according to the YAML spec.
- * ('c-printable')
- */
- public static boolean isPrintable(int c) {
- return c == 0x9 || c == 0xA || c == 0xD || (c >= 0x20 && c <= 0x7E) // 8
- // bit
- || c == 0x85 || (c >= 0xA0 && c <= 0xD7FF) || (c >= 0xE000 && c <= 0xFFFD) // 16
- // bit
- || (c >= 0x10000 && c <= 0x10FFFF); // 32 bit
+ String result;
+ try {
+ result = new Yaml().load(serialized).toString();
+ } catch (ReaderException e) {
+ fail(String.format(
+ "U+%04x: Deserialization threw ReaderException for an acceptable escaped character\n",
+ c));
+ continue;
+ }
+ if (!result.equals(expected)) {
+ fail(String.format("U+%04x: Deserialization of escaped character incorrect: %s\n", c,
+ hexdump(result)));
+ }
}
+ }
+
+ private Yaml createYaml() {
+ DumperOptions options = new DumperOptions();
+ options.setAllowUnicode(false);
+ options.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED);
+ return new Yaml(options);
+ }
- /**
- * "On input, a YAML processor must accept all printable ASCII characters,
- * the space, tab, line break, and all Unicode characters beyond #x9F. On
- * output, a YAML processor must only produce these acceptable characters,
- * and should also escape all non-printable Unicode characters. The allowed
- * character range explicitly excludes the surrogate block #xD800-#xDFFF,
- * DEL #x7F, the C0 control block #x0-#x1F (except for #x9, #xA, and #xD),
- * the C1 control block #x80-#x9F, #xFFFE, and #xFFFF."
- */
- public static boolean isAcceptable(int c) {
- return (c >= 0x20 && c <= 0x7e // accept all printable ASCII characters,
- // the space,
- || c == 0x09 // tab,
- || c == 0x0A || c == 0x0D || c == 0x85 || c == 0x2028 || c == 0x2029 // line
- // break,
+ /**
+ * Test whether a character is printable, according to the YAML spec. ('c-printable')
+ */
+ public static boolean isPrintable(int c) {
+ return c == 0x9 || c == 0xA || c == 0xD || (c >= 0x20 && c <= 0x7E) // 8
+ // bit
+ || c == 0x85 || (c >= 0xA0 && c <= 0xD7FF) || (c >= 0xE000 && c <= 0xFFFD) // 16
+ // bit
+ || (c >= 0x10000 && c <= 0x10FFFF); // 32 bit
+ }
+
+ /**
+ * "On input, a YAML processor must accept all printable ASCII characters, the space, tab, line
+ * break, and all Unicode characters beyond #x9F. On output, a YAML processor must only produce
+ * these acceptable characters, and should also escape all non-printable Unicode characters. The
+ * allowed character range explicitly excludes the surrogate block #xD800-#xDFFF, DEL #x7F, the C0
+ * control block #x0-#x1F (except for #x9, #xA, and #xD), the C1 control block #x80-#x9F, #xFFFE,
+ * and #xFFFF."
+ */
+ public static boolean isAcceptable(int c) {
+ return (c >= 0x20 && c <= 0x7e // accept all printable ASCII characters,
+ // the space,
+ || c == 0x09 // tab,
+ || c == 0x0A || c == 0x0D || c == 0x85 || c == 0x2028 || c == 0x2029 // line
+ // break,
|| isUnicodeCharacter(c) && c >= 0x9F // and all Unicode characters
- // beyond #x9F
- ) && !( // The allowed character range explicitly excludes
- c >= 0xD800 && c <= 0xDFFF // the surrogate block #xD800-#xDFFF
- || c == 0x7f // DEL #x7F,
- || c <= 0x1F && !(c == 0x09 || c == 0x0A || c == 0x0D) // the
- // C0
- // control
- // block
- // #x0-#x1F
- // (except
- // for
- // #x9,
- // #xA,
- // and
- // #xD),
- || c >= 0x80 && c <= 0x9F // the C1 control block
- // #x80-#x9F,
- || c == 0xFFFE // #xFFFE,
- || c == 0xFFFF // and #xFFFF.
- );
- }
+ // beyond #x9F
+ ) && !( // The allowed character range explicitly excludes
+ c >= 0xD800 && c <= 0xDFFF // the surrogate block #xD800-#xDFFF
+ || c == 0x7f // DEL #x7F,
+ || c <= 0x1F && !(c == 0x09 || c == 0x0A || c == 0x0D) // the
+ // C0
+ // control
+ // block
+ // #x0-#x1F
+ // (except
+ // for
+ // #x9,
+ // #xA,
+ // and
+ // #xD),
+ || c >= 0x80 && c <= 0x9F // the C1 control block
+ // #x80-#x9F,
+ || c == 0xFFFE // #xFFFE,
+ || c == 0xFFFF // and #xFFFF.
+ );
+ }
- /**
- * Tests whether a codepoint is a designated Unicode noncharacter or not.
- */
- public static boolean isUnicodeCharacter(int c) {
- int plane = c / 0x10000;
- return !(c >= 0xFDD0 && c <= 0xFDEF) && (plane <= 16 && (c & 0xFFFE) != 0xFFFE);
- }
+ /**
+ * Tests whether a codepoint is a designated Unicode noncharacter or not.
+ */
+ public static boolean isUnicodeCharacter(int c) {
+ int plane = c / 0x10000;
+ return !(c >= 0xFDD0 && c <= 0xFDEF) && (plane <= 16 && (c & 0xFFFE) != 0xFFFE);
+ }
- public static String hexdump(String input) {
- StringBuilder result = new StringBuilder();
- Formatter formatter = new Formatter(result);
- for (int i = 0; i < input.length(); i++)
- formatter.format("%02x ", (int) input.charAt(i));
- return result.toString();
+ public static String hexdump(String input) {
+ StringBuilder result = new StringBuilder();
+ Formatter formatter = new Formatter(result);
+ for (int i = 0; i < input.length(); i++) {
+ formatter.format("%02x ", (int) input.charAt(i));
}
-} \ No newline at end of file
+ return result.toString();
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue149/ComponentBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue149/ComponentBean.java
index 97f7d1ed..54fa6f28 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue149/ComponentBean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue149/ComponentBean.java
@@ -1,37 +1,36 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue149;
public class ComponentBean {
- private int property1;
- private String property2;
- public int getProperty1() {
- return property1;
- }
+ private int property1;
+ private String property2;
- public void setProperty1(int property1) {
- this.property1 = property1;
- }
+ public int getProperty1() {
+ return property1;
+ }
- public String getProperty2() {
- return property2;
- }
+ public void setProperty1(int property1) {
+ this.property1 = property1;
+ }
- public void setProperty2(String property2) {
- this.property2 = property2;
- }
+ public String getProperty2() {
+ return property2;
+ }
+
+ public void setProperty2(String property2) {
+ this.property2 = property2;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue149/GlobalDirectivesTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue149/GlobalDirectivesTest.java
index 6c2b5f41..67ee4de3 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue149/GlobalDirectivesTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue149/GlobalDirectivesTest.java
@@ -1,24 +1,20 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue149;
import java.util.Iterator;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.TypeDescription;
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
@@ -26,54 +22,55 @@ import org.yaml.snakeyaml.constructor.Constructor;
import org.yaml.snakeyaml.nodes.Tag;
public class GlobalDirectivesTest extends TestCase {
- public void testOneDocument() {
- String input = Util.getLocalResource("issues/issue149-one-document.yaml");
- // System.out.println(input);
- Constructor constr = new Constructor();
- TypeDescription description = new TypeDescription(ComponentBean.class, new Tag(
- "tag:ualberta.ca,2012:29"));
- constr.addTypeDescription(description);
- Yaml yaml = new Yaml(constr);
- Iterator<Object> parsed = yaml.loadAll(input).iterator();
- ComponentBean bean = (ComponentBean) parsed.next();
- assertEquals(0, bean.getProperty1());
- assertEquals("aaa", bean.getProperty2());
- assertFalse(parsed.hasNext());
- }
- public void testDirectives() {
- String input = Util.getLocalResource("issues/issue149-losing-directives.yaml");
- // System.out.println(input);
- Constructor constr = new Constructor();
- TypeDescription description = new TypeDescription(ComponentBean.class, new Tag(
- "tag:ualberta.ca,2012:" + 29));
- constr.addTypeDescription(description);
- Yaml yaml = new Yaml(constr);
- Iterator<Object> parsed = yaml.loadAll(input).iterator();
- ComponentBean bean1 = (ComponentBean) parsed.next();
- assertEquals(0, bean1.getProperty1());
- assertEquals("aaa", bean1.getProperty2());
- ComponentBean bean2 = (ComponentBean) parsed.next();
- assertEquals(3, bean2.getProperty1());
- assertEquals("bbb", bean2.getProperty2());
- assertFalse(parsed.hasNext());
- }
+ public void testOneDocument() {
+ String input = Util.getLocalResource("issues/issue149-one-document.yaml");
+ // System.out.println(input);
+ Constructor constr = new Constructor();
+ TypeDescription description =
+ new TypeDescription(ComponentBean.class, new Tag("tag:ualberta.ca,2012:29"));
+ constr.addTypeDescription(description);
+ Yaml yaml = new Yaml(constr);
+ Iterator<Object> parsed = yaml.loadAll(input).iterator();
+ ComponentBean bean = (ComponentBean) parsed.next();
+ assertEquals(0, bean.getProperty1());
+ assertEquals("aaa", bean.getProperty2());
+ assertFalse(parsed.hasNext());
+ }
+
+ public void testDirectives() {
+ String input = Util.getLocalResource("issues/issue149-losing-directives.yaml");
+ // System.out.println(input);
+ Constructor constr = new Constructor();
+ TypeDescription description =
+ new TypeDescription(ComponentBean.class, new Tag("tag:ualberta.ca,2012:" + 29));
+ constr.addTypeDescription(description);
+ Yaml yaml = new Yaml(constr);
+ Iterator<Object> parsed = yaml.loadAll(input).iterator();
+ ComponentBean bean1 = (ComponentBean) parsed.next();
+ assertEquals(0, bean1.getProperty1());
+ assertEquals("aaa", bean1.getProperty2());
+ ComponentBean bean2 = (ComponentBean) parsed.next();
+ assertEquals(3, bean2.getProperty1());
+ assertEquals("bbb", bean2.getProperty2());
+ assertFalse(parsed.hasNext());
+ }
- public void testDirectives2() {
- String input = Util.getLocalResource("issues/issue149-losing-directives-2.yaml");
- // System.out.println(input);
- Constructor constr = new Constructor();
- TypeDescription description = new TypeDescription(ComponentBean.class, new Tag(
- "tag:ualberta.ca,2012:" + 29));
- constr.addTypeDescription(description);
- Yaml yaml = new Yaml(constr);
- Iterator<Object> parsed = yaml.loadAll(input).iterator();
- ComponentBean bean1 = (ComponentBean) parsed.next();
- assertEquals(0, bean1.getProperty1());
- assertEquals("aaa", bean1.getProperty2());
- ComponentBean bean2 = (ComponentBean) parsed.next();
- assertEquals(3, bean2.getProperty1());
- assertEquals("bbb", bean2.getProperty2());
- assertFalse(parsed.hasNext());
- }
-} \ No newline at end of file
+ public void testDirectives2() {
+ String input = Util.getLocalResource("issues/issue149-losing-directives-2.yaml");
+ // System.out.println(input);
+ Constructor constr = new Constructor();
+ TypeDescription description =
+ new TypeDescription(ComponentBean.class, new Tag("tag:ualberta.ca,2012:" + 29));
+ constr.addTypeDescription(description);
+ Yaml yaml = new Yaml(constr);
+ Iterator<Object> parsed = yaml.loadAll(input).iterator();
+ ComponentBean bean1 = (ComponentBean) parsed.next();
+ assertEquals(0, bean1.getProperty1());
+ assertEquals("aaa", bean1.getProperty2());
+ ComponentBean bean2 = (ComponentBean) parsed.next();
+ assertEquals(3, bean2.getProperty1());
+ assertEquals("bbb", bean2.getProperty2());
+ assertFalse(parsed.hasNext());
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue150/Car.java b/src/test/java/org/yaml/snakeyaml/issues/issue150/Car.java
index 1973d9d1..b602bd98 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue150/Car.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue150/Car.java
@@ -1,47 +1,45 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue150;
import java.util.Collection;
/**
- *
+ *
* @author tturki
- *
+ *
*/
public class Car {
- private String plate;
- private Collection<Wheel> wheels;
- public Car() {
- }
+ private String plate;
+ private Collection<Wheel> wheels;
+
+ public Car() {}
- public String getPlate() {
- return plate;
- }
+ public String getPlate() {
+ return plate;
+ }
- public void setPlate(String plate) {
- this.plate = plate;
- }
+ public void setPlate(String plate) {
+ this.plate = plate;
+ }
- public Collection<Wheel> getWheels() {
- return wheels;
- }
+ public Collection<Wheel> getWheels() {
+ return wheels;
+ }
- public void setWheels(Collection<Wheel> wheels) {
- this.wheels = wheels;
- }
-} \ No newline at end of file
+ public void setWheels(Collection<Wheel> wheels) {
+ this.wheels = wheels;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue150/Wheel.java b/src/test/java/org/yaml/snakeyaml/issues/issue150/Wheel.java
index bae16372..dbd767f4 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue150/Wheel.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue150/Wheel.java
@@ -1,31 +1,29 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue150;
public class Wheel {
- private Integer id;
- public Wheel() {
- }
+ private Integer id;
- public Integer getId() {
- return id;
- }
+ public Wheel() {}
- public void setId(Integer id) {
- this.id = id;
- }
-} \ No newline at end of file
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue150/YamlLoadAsIssueTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue150/YamlLoadAsIssueTest.java
index f4002d46..ea2af791 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue150/YamlLoadAsIssueTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue150/YamlLoadAsIssueTest.java
@@ -1,32 +1,26 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue150;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
import java.io.Reader;
import java.io.StringReader;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
import java.util.regex.Pattern;
-
import org.junit.Before;
import org.junit.Test;
import org.yaml.snakeyaml.Yaml;
@@ -41,101 +35,102 @@ import org.yaml.snakeyaml.nodes.Tag;
public class YamlLoadAsIssueTest {
- private StringBuilder doc;
-
- @Before
- public void setUp() {
- doc = new StringBuilder();
- line("!car");
- line("plate: 12-XP-F4");
- line("wheels:");
- line("- w#1");
- line("- w#2");
- line("- w#3");
- line("- w#4");
+ private StringBuilder doc;
+
+ @Before
+ public void setUp() {
+ doc = new StringBuilder();
+ line("!car");
+ line("plate: 12-XP-F4");
+ line("wheels:");
+ line("- w#1");
+ line("- w#2");
+ line("- w#3");
+ line("- w#4");
+ }
+
+ private StringBuilder line(String text) {
+ return doc.append(text).append('\n');
+ }
+
+ @Test
+ public void loadConstructsDocumentCorrectly() {
+ Yaml yaml = yaml();
+ Object result = yaml.load(reader());
+ assertNotNull(result);
+ assertEquals(Car.class, result.getClass());
+ assertEquals("12-XP-F4", ((Car) result).getPlate());
+ assertEquals(4, ((Car) result).getWheels().size());
+ }
+
+ private Yaml yaml() {
+ Yaml yaml = new Yaml(new MyConstructor());
+ yaml.addImplicitResolver(new Tag("!wheel"), Pattern.compile("w#\\d+"), "w");
+ return yaml;
+ }
+
+ @Test
+ public void ignoreImplicitTag() {
+ Yaml yaml = yaml();
+ Car car = yaml.loadAs(reader(), Car.class);
+ assertNotNull(car);
+ assertEquals("12-XP-F4", car.getPlate());
+ ArrayList<Wheel> wheels = new ArrayList<Wheel>(car.getWheels());
+ assertEquals(4, wheels.size());
+ for (int i = 0; i < wheels.size(); i++) {
+ assertEquals(wheels.get(i).getId(), Integer.valueOf(i + 1));
}
+ }
- private StringBuilder line(String text) {
- return doc.append(text).append('\n');
- }
+ private Reader reader() {
+ return new StringReader(doc.toString());
+ }
- @Test
- public void loadConstructsDocumentCorrectly() {
- Yaml yaml = yaml();
- Object result = yaml.load(reader());
- assertNotNull(result);
- assertEquals(Car.class, result.getClass());
- assertEquals("12-XP-F4", ((Car) result).getPlate());
- assertEquals(4, ((Car) result).getWheels().size());
- }
-
- private Yaml yaml() {
- Yaml yaml = new Yaml(new MyConstructor());
- yaml.addImplicitResolver(new Tag("!wheel"), Pattern.compile("w#\\d+"), "w");
- return yaml;
- }
+ private class MyConstructor extends Constructor {
- @Test
- public void ignoreImplicitTag() {
- Yaml yaml = yaml();
- Car car = yaml.loadAs(reader(), Car.class);
- assertNotNull(car);
- assertEquals("12-XP-F4", car.getPlate());
- ArrayList<Wheel> wheels = new ArrayList<Wheel>(car.getWheels());
- assertEquals(4, wheels.size());
- for (int i = 0; i < wheels.size(); i++) {
- assertEquals(wheels.get(i).getId(), Integer.valueOf(i + 1));
- }
+ public MyConstructor() {
+ yamlConstructors.put(new Tag("!car"), new ConstructCar());
+ yamlConstructors.put(new Tag("!wheel"), new ConstructWheel());
}
- private Reader reader() {
- return new StringReader(doc.toString());
+ private String toScalarString(Node node) {
+ return constructScalar((ScalarNode) node);
}
- private class MyConstructor extends Constructor {
- public MyConstructor() {
- yamlConstructors.put(new Tag("!car"), new ConstructCar());
- yamlConstructors.put(new Tag("!wheel"), new ConstructWheel());
- }
-
- private String toScalarString(Node node) {
- return (String) constructScalar((ScalarNode) node);
+ private class ConstructCar extends AbstractConstruct {
+
+ @SuppressWarnings("unchecked")
+ public Car construct(Node node) {
+ Car car = new Car();
+ MappingNode mapping = (MappingNode) node;
+ List<NodeTuple> list = mapping.getValue();
+ for (NodeTuple tuple : list) {
+ String field = toScalarString(tuple.getKeyNode());
+ if ("plate".equals(field)) {
+ car.setPlate(toScalarString(tuple.getValueNode()));
+ }
+ if ("wheels".equals(field)) {
+ SequenceNode snode = (SequenceNode) tuple.getValueNode();
+ List<Wheel> wheels = (List<Wheel>) constructSequence(snode);
+ car.setWheels(wheels);
+ }
}
+ return car;
+ }
+ }
- private class ConstructCar extends AbstractConstruct {
-
- @SuppressWarnings("unchecked")
- public Car construct(Node node) {
- Car car = new Car();
- MappingNode mapping = (MappingNode) node;
- List<NodeTuple> list = mapping.getValue();
- for (NodeTuple tuple : list) {
- String field = toScalarString(tuple.getKeyNode());
- if ("plate".equals(field)) {
- car.setPlate(toScalarString(tuple.getValueNode()));
- }
- if ("wheels".equals(field)) {
- SequenceNode snode = (SequenceNode) tuple.getValueNode();
- List<Wheel> wheels = (List<Wheel>) constructSequence(snode);
- car.setWheels(wheels);
- }
- }
- return car;
- }
- }
+ private class ConstructWheel extends AbstractConstruct {
- private class ConstructWheel extends AbstractConstruct {
-
- public Wheel construct(Node node) {
- Wheel w = null;
- String strValue = toScalarString(node);
- if (strValue != null && strValue.length() > 2) {
- strValue = strValue.trim().substring(2);
- w = new Wheel();
- w.setId(Integer.valueOf(strValue));
- }
- return w;
- }
+ public Wheel construct(Node node) {
+ Wheel w = null;
+ String strValue = toScalarString(node);
+ if (strValue != null && strValue.length() > 2) {
+ strValue = strValue.trim().substring(2);
+ w = new Wheel();
+ w.setId(Integer.valueOf(strValue));
}
+ return w;
+ }
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue151/EscapedUnicodeTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue151/EscapedUnicodeTest.java
index 86a88fcd..e3500af3 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue151/EscapedUnicodeTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue151/EscapedUnicodeTest.java
@@ -1,36 +1,33 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue151;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class EscapedUnicodeTest extends TestCase {
- public void testUnicode() {
- Yaml yaml = new Yaml();
- // http://www.tutorialspoint.com/html/ascii_table_lookup.htm
- String str = (String) yaml.load("\"\\xC3\\xA4\"");
- assertEquals("2 escape sequences must be converted to 2 characters.", "ä", str);
- }
+ public void testUnicode() {
+ Yaml yaml = new Yaml();
+ // http://www.tutorialspoint.com/html/ascii_table_lookup.htm
+ String str = yaml.load("\"\\xC3\\xA4\"");
+ assertEquals("2 escape sequences must be converted to 2 characters.", "ä", str);
+ }
- public void testUnicode2() {
- Yaml yaml = new Yaml();
- String str = (String) yaml.load("\"Acetylsalicyls\\xE4ure\"");
- assertEquals("E4 -> ä", "Acetylsalicylsäure", str);
- }
+ public void testUnicode2() {
+ Yaml yaml = new Yaml();
+ String str = yaml.load("\"Acetylsalicyls\\xE4ure\"");
+ assertEquals("E4 -> ä", "Acetylsalicylsäure", str);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue154/MissingPropertyTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue154/MissingPropertyTest.java
index 6a4c5146..431643a6 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue154/MissingPropertyTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue154/MissingPropertyTest.java
@@ -1,22 +1,19 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue154;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.Constructor;
import org.yaml.snakeyaml.error.YAMLException;
@@ -24,62 +21,62 @@ import org.yaml.snakeyaml.representer.Representer;
public class MissingPropertyTest extends TestCase {
- private Yaml yaml;
+ private Yaml yaml;
- public void setUp() {
- yaml = new Yaml();
- }
+ public void setUp() {
+ yaml = new Yaml();
+ }
- /**
- * A normal scalar property should work fine.
- */
- public void testPublicField() throws Exception {
- String doc = "hello: 5";
- TestBean bean = yaml.loadAs(doc, TestBean.class);
- assertNotNull(bean);
- assertEquals(5, bean.hello);
- }
+ /**
+ * A normal scalar property should work fine.
+ */
+ public void testPublicField() throws Exception {
+ String doc = "hello: 5";
+ TestBean bean = yaml.loadAs(doc, TestBean.class);
+ assertNotNull(bean);
+ assertEquals(5, bean.hello);
+ }
- /**
- * By default, unknown fields should throw a YAMLException.
- */
- public void testUnknownField() throws Exception {
- try {
- String doc = "goodbye: 10";
- yaml.loadAs(doc, TestBean.class);
- } catch (YAMLException e) {
- assertTrue(e.getMessage().contains("Cannot create property=goodbye"));
- }
+ /**
+ * By default, unknown fields should throw a YAMLException.
+ */
+ public void testUnknownField() throws Exception {
+ try {
+ String doc = "goodbye: 10";
+ yaml.loadAs(doc, TestBean.class);
+ } catch (YAMLException e) {
+ assertTrue(e.getMessage().contains("Cannot create property=goodbye"));
}
+ }
- /**
- * A new method setSkipMissingProperties(boolean) was added to configure
- * whether missing properties should throw a YAMLException (the default) or
- * simply show a warning. The default is false.
- */
- public void testSkipMissingProperties() throws Exception {
- Representer representer = new Representer();
- representer.getPropertyUtils().setSkipMissingProperties(true);
- yaml = new Yaml(new Constructor(), representer);
- String doc = "goodbye: 10\nhello: 5\nfizz: [1]";
- TestBean bean = yaml.loadAs(doc, TestBean.class);
- assertNotNull(bean);
- assertEquals(5, bean.hello);
- }
+ /**
+ * A new method setSkipMissingProperties(boolean) was added to configure whether missing
+ * properties should throw a YAMLException (the default) or simply show a warning. The default is
+ * false.
+ */
+ public void testSkipMissingProperties() throws Exception {
+ Representer representer = new Representer();
+ representer.getPropertyUtils().setSkipMissingProperties(true);
+ yaml = new Yaml(new Constructor(), representer);
+ String doc = "goodbye: 10\nhello: 5\nfizz: [1]";
+ TestBean bean = yaml.loadAs(doc, TestBean.class);
+ assertNotNull(bean);
+ assertEquals(5, bean.hello);
+ }
- /**
- * The default for setSkipMissingProperties(boolean) is false; this just
- * ensures it works if set manually.
- */
- public void testNoSkipMissingProperties() throws Exception {
- try {
- Representer representer = new Representer();
- representer.getPropertyUtils().setSkipMissingProperties(false);
- yaml = new Yaml(new Constructor(), representer);
- String doc = "goodbye: 10";
- yaml.loadAs(doc, TestBean.class);
- } catch (YAMLException e) {
- assertTrue(e.getMessage().contains("Cannot create property=goodbye"));
- }
+ /**
+ * The default for setSkipMissingProperties(boolean) is false; this just ensures it works if set
+ * manually.
+ */
+ public void testNoSkipMissingProperties() throws Exception {
+ try {
+ Representer representer = new Representer();
+ representer.getPropertyUtils().setSkipMissingProperties(false);
+ yaml = new Yaml(new Constructor(), representer);
+ String doc = "goodbye: 10";
+ yaml.loadAs(doc, TestBean.class);
+ } catch (YAMLException e) {
+ assertTrue(e.getMessage().contains("Cannot create property=goodbye"));
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue154/TestBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue154/TestBean.java
index 264b58b0..522d210a 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue154/TestBean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue154/TestBean.java
@@ -1,20 +1,19 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue154;
public class TestBean {
- public int hello;
+
+ public int hello;
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue155/BinaryTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue155/BinaryTest.java
index f5c5ef29..21323f83 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue155/BinaryTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue155/BinaryTest.java
@@ -1,34 +1,32 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue155;
+import java.nio.charset.StandardCharsets;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class BinaryTest extends TestCase {
- public void testBinaryString() throws Exception {
- String data = "\u2666";
- byte[] bytes = data.getBytes("UTF-8");
- String inconsistentString = new String(bytes, "ISO-8859-1");
- Yaml yaml = new Yaml();
- String payload = yaml.dump(inconsistentString);
- // System.out.println("payload: '" + payload + "'");
- String loaded = new String((byte[]) yaml.load(payload), "UTF-8");
- assertEquals(inconsistentString, loaded);
- }
+ public void testBinaryString() throws Exception {
+ String data = "\u2666";
+ byte[] bytes = data.getBytes(StandardCharsets.UTF_8);
+ String inconsistentString = new String(bytes, StandardCharsets.ISO_8859_1);
+ Yaml yaml = new Yaml();
+ String payload = yaml.dump(inconsistentString);
+ // System.out.println("payload: '" + payload + "'");
+ String loaded = new String((byte[]) yaml.load(payload), StandardCharsets.UTF_8);
+ assertEquals(inconsistentString, loaded);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue163/LinearScalaTralingTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue163/LinearScalaTralingTest.java
index 6210f924..598a1ec8 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue163/LinearScalaTralingTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue163/LinearScalaTralingTest.java
@@ -1,43 +1,39 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue163;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class LinearScalaTralingTest extends TestCase {
- public void testClipChomping() throws Exception {
- String data = "testnode: |\n This is line 1\n This is line 2\n";
- Yaml yaml = new Yaml();
- @SuppressWarnings("unchecked")
- Map<String, String> payload = (Map<String, String>) yaml.load(data);
- assertEquals("This is line 1\nThis is line 2\n", payload.get("testnode"));
- }
+ public void testClipChomping() throws Exception {
+ String data = "testnode: |\n This is line 1\n This is line 2\n";
+ Yaml yaml = new Yaml();
+ @SuppressWarnings("unchecked")
+ Map<String, String> payload = yaml.load(data);
+ assertEquals("This is line 1\nThis is line 2\n", payload.get("testnode"));
+ }
- public void testStripChomping() throws Exception {
- // mind the trailing '|-' to indicate strip chomping
- String data = "testnode: |-\n This is line 1\n This is line 2\n";
- Yaml yaml = new Yaml();
- @SuppressWarnings("unchecked")
- Map<String, String> payload = (Map<String, String>) yaml.load(data);
- assertEquals("No traling line break expected.", "This is line 1\nThis is line 2",
- payload.get("testnode"));
- }
+ public void testStripChomping() throws Exception {
+ // mind the trailing '|-' to indicate strip chomping
+ String data = "testnode: |-\n This is line 1\n This is line 2\n";
+ Yaml yaml = new Yaml();
+ @SuppressWarnings("unchecked")
+ Map<String, String> payload = yaml.load(data);
+ assertEquals("No traling line break expected.", "This is line 1\nThis is line 2",
+ payload.get("testnode"));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue171/ClassWithGenericMap.java b/src/test/java/org/yaml/snakeyaml/issues/issue171/ClassWithGenericMap.java
index 5cfe7cc5..15ac3712 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue171/ClassWithGenericMap.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue171/ClassWithGenericMap.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue171;
@@ -20,5 +18,7 @@ import java.util.HashMap;
import java.util.Map;
class ClassWithGenericMap {
- public final Map<String, Collection<Integer>> services = new HashMap<String, Collection<Integer>>();
-} \ No newline at end of file
+
+ public final Map<String, Collection<Integer>> services =
+ new HashMap<String, Collection<Integer>>();
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue171/CustomRepresenter.java b/src/test/java/org/yaml/snakeyaml/issues/issue171/CustomRepresenter.java
index 093f90a9..976d9ed1 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue171/CustomRepresenter.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue171/CustomRepresenter.java
@@ -1,34 +1,35 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue171;
+import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.nodes.Node;
import org.yaml.snakeyaml.nodes.Tag;
import org.yaml.snakeyaml.representer.Represent;
import org.yaml.snakeyaml.representer.Representer;
class CustomRepresenter extends Representer {
- public CustomRepresenter() {
- this.representers.put(ClassWithGenericMap.class, new RepresentClassX());
- }
- private class RepresentClassX implements Represent {
- public Node representData(Object data) {
- ClassWithGenericMap classX = (ClassWithGenericMap) data;
- return representMapping(Tag.MAP, classX.services, false);
- }
+ public CustomRepresenter() {
+ this.representers.put(ClassWithGenericMap.class, new RepresentClassX());
+ }
+
+ private class RepresentClassX implements Represent {
+
+ public Node representData(Object data) {
+ ClassWithGenericMap classX = (ClassWithGenericMap) data;
+ return representMapping(Tag.MAP, classX.services, DumperOptions.FlowStyle.BLOCK);
}
-} \ No newline at end of file
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue171/GenericExtendsObjectTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue171/GenericExtendsObjectTest.java
index 4ff2a491..9dc67fad 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue171/GenericExtendsObjectTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue171/GenericExtendsObjectTest.java
@@ -1,36 +1,32 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue171;
import java.util.ArrayList;
import java.util.List;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class GenericExtendsObjectTest extends TestCase {
- public void testNoCompilationError() throws Exception {
- Yaml yaml = new Yaml(new CustomRepresenter());
- ClassWithGenericMap map = new ClassWithGenericMap();
- List<Integer> list = new ArrayList<Integer>();
- list.add(7);
- map.services.put("wow", list);
- String output = yaml.dump(map);
- assertEquals("wow: [7]\n", output);
- }
+ public void testNoCompilationError() throws Exception {
+ Yaml yaml = new Yaml(new CustomRepresenter());
+ ClassWithGenericMap map = new ClassWithGenericMap();
+ List<Integer> list = new ArrayList<Integer>();
+ list.add(7);
+ map.services.put("wow", list);
+ String output = yaml.dump(map);
+ assertEquals("wow: [7]\n", output);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue173/RecursiveAnchorTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue173/RecursiveAnchorTest.java
index 4571d1ce..a712c169 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue173/RecursiveAnchorTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue173/RecursiveAnchorTest.java
@@ -1,54 +1,50 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue173;
import java.util.HashMap;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.representer.Representer;
public class RecursiveAnchorTest extends TestCase {
- public void testWithoutCustomStyle() throws Exception {
- Map<String, Map<String, Object>> rootMap = new HashMap<String, Map<String, Object>>();
- Map<String, Object> enclosedMap = new HashMap<String, Object>();
- enclosedMap.put("world", "test");
- rootMap.put("test", enclosedMap);
- Yaml yaml = new Yaml();
- String output = yaml.dump(rootMap);
- assertEquals("test: {world: test}\n", output);
- }
-
- public void testWithBlockStyle() throws Exception {
- Map<String, Map<String, Object>> rootMap = new HashMap<String, Map<String, Object>>();
- Map<String, Object> enclosedMap = new HashMap<String, Object>();
- enclosedMap.put("world", "test");
- rootMap.put("test", enclosedMap);
-
- DumperOptions yamlOptions = new DumperOptions();
- yamlOptions.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
-
- Representer yamlRepresenter = new Representer();
-
- Yaml yaml = new Yaml(yamlRepresenter, yamlOptions);
- String output = yaml.dump(rootMap);
- assertEquals("test:\n world: test\n", output);
- }
+ public void testWithoutCustomStyle() throws Exception {
+ Map<String, Map<String, Object>> rootMap = new HashMap<String, Map<String, Object>>();
+ Map<String, Object> enclosedMap = new HashMap<String, Object>();
+ enclosedMap.put("world", "test");
+ rootMap.put("test", enclosedMap);
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(rootMap);
+ assertEquals("test: {world: test}\n", output);
+ }
+
+ public void testWithBlockStyle() throws Exception {
+ Map<String, Map<String, Object>> rootMap = new HashMap<String, Map<String, Object>>();
+ Map<String, Object> enclosedMap = new HashMap<String, Object>();
+ enclosedMap.put("world", "test");
+ rootMap.put("test", enclosedMap);
+
+ DumperOptions yamlOptions = new DumperOptions();
+ yamlOptions.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+
+ Representer yamlRepresenter = new Representer();
+
+ Yaml yaml = new Yaml(yamlRepresenter, yamlOptions);
+ String output = yaml.dump(rootMap);
+ assertEquals("test:\n world: test\n", output);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue176/SingleQuoteTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue176/SingleQuoteTest.java
index be5a0404..75297d07 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue176/SingleQuoteTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue176/SingleQuoteTest.java
@@ -1,25 +1,21 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue176;
import java.util.LinkedHashMap;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.FlowStyle;
import org.yaml.snakeyaml.Yaml;
@@ -28,36 +24,36 @@ import org.yaml.snakeyaml.representer.Representer;
public class SingleQuoteTest extends TestCase {
- public void testNoSingleQuoteForBlockStyle() throws Exception {
- checkQuotes(true, "cows:\n steak:cow: '11'");
- }
+ public void testNoSingleQuoteForBlockStyle() throws Exception {
+ checkQuotes(true, "cows:\n steak:cow: '11'");
+ }
- public void testSingleQuoteForFlowStyle() throws Exception {
- checkQuotes(false, "cows: {'steak:cow': '11'}");
- }
+ public void testSingleQuoteForFlowStyle() throws Exception {
+ checkQuotes(false, "cows: {'steak:cow': '11'}");
+ }
- private void checkQuotes(boolean isBlock, String expectation) {
- DumperOptions options = new DumperOptions();
- options.setIndent(4);
- if (isBlock) {
- options.setDefaultFlowStyle(FlowStyle.BLOCK);
- }
- Representer representer = new Representer();
-
- Yaml yaml = new Yaml(new SafeConstructor(), representer, options);
-
- LinkedHashMap<String, Object> lvl1 = new LinkedHashMap<String, Object>();
- lvl1.put("steak:cow", "11");
- LinkedHashMap<String, Object> root = new LinkedHashMap<String, Object>();
- root.put("cows", lvl1);
- String output = yaml.dump(root);
- assertEquals(expectation + "\n", output);
-
- // parse the value back
- @SuppressWarnings("unchecked")
- Map<String, Object> cows = (Map<String, Object>) yaml.load(output);
- @SuppressWarnings("unchecked")
- Map<String, String> cow = (Map<String, String>) cows.get("cows");
- assertEquals("11", cow.get("steak:cow"));
+ private void checkQuotes(boolean isBlock, String expectation) {
+ DumperOptions options = new DumperOptions();
+ options.setIndent(4);
+ if (isBlock) {
+ options.setDefaultFlowStyle(FlowStyle.BLOCK);
}
+ Representer representer = new Representer();
+
+ Yaml yaml = new Yaml(new SafeConstructor(), representer, options);
+
+ LinkedHashMap<String, Object> lvl1 = new LinkedHashMap<String, Object>();
+ lvl1.put("steak:cow", "11");
+ LinkedHashMap<String, Object> root = new LinkedHashMap<String, Object>();
+ root.put("cows", lvl1);
+ String output = yaml.dump(root);
+ assertEquals(expectation + "\n", output);
+
+ // parse the value back
+ @SuppressWarnings("unchecked")
+ Map<String, Object> cows = yaml.load(output);
+ @SuppressWarnings("unchecked")
+ Map<String, String> cow = (Map<String, String>) cows.get("cows");
+ assertEquals("11", cow.get("steak:cow"));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue177/PointBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue177/PointBean.java
index ea46af97..a5c7e9c5 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue177/PointBean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue177/PointBean.java
@@ -1,26 +1,25 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue177;
public class PointBean {
- public int x;
- public int y;
- @Override
- public String toString() {
- return "PointBean";
- }
+ public int x;
+ public int y;
+
+ @Override
+ public String toString() {
+ return "PointBean";
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue177/PointBeanTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue177/PointBeanTest.java
index 274cba3a..beff107d 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue177/PointBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue177/PointBeanTest.java
@@ -1,43 +1,38 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue177;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
public class PointBeanTest extends TestCase {
- public void testNoSingleQuoteForBlockStyle() throws Exception {
- String input = Util.getLocalResource("issues/issue177-1.yaml");
- try {
- Yaml yaml = new Yaml();
- yaml.load(input);
- fail();
- } catch (Exception e) {
- assertEquals("Cannot create property=points for JavaBean=All Points\n"
- + " in 'string', line 1, column 1:\n"
- + " !!org.yaml.snakeyaml.issues.issu ... \n" + " ^\n"
- + "Cannot create property=x for JavaBean=PointBean\n"
- + " in 'string', line 7, column 5:\n" + " x: a\n" + " ^\n"
- + "For input string: \"a\"\n" + " in 'string', line 7, column 8:\n"
- + " x: a\n" + " ^\n" + "\n"
- + " in 'string', line 3, column 3:\n" + " pt1:\n" + " ^\n",
- e.getMessage());
- }
+ public void testNoSingleQuoteForBlockStyle() throws Exception {
+ String input = Util.getLocalResource("issues/issue177-1.yaml");
+ try {
+ Yaml yaml = new Yaml();
+ yaml.load(input);
+ fail();
+ } catch (Exception e) {
+ assertEquals("Cannot create property=points for JavaBean=All Points\n"
+ + " in 'string', line 1, column 1:\n" + " !!org.yaml.snakeyaml.issues.issu ... \n"
+ + " ^\n" + "Cannot create property=x for JavaBean=PointBean\n"
+ + " in 'string', line 7, column 5:\n" + " x: a\n" + " ^\n"
+ + "For input string: \"a\"\n" + " in 'string', line 7, column 8:\n" + " x: a\n"
+ + " ^\n" + "\n" + " in 'string', line 3, column 3:\n" + " pt1:\n"
+ + " ^\n", e.getMessage());
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue177/Points.java b/src/test/java/org/yaml/snakeyaml/issues/issue177/Points.java
index e0e57c5a..6e6fa86b 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue177/Points.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue177/Points.java
@@ -1,27 +1,26 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue177;
import java.util.Map;
public class Points {
- public Map<String, PointBean> points;
- @Override
- public String toString() {
- return "All Points";
- }
+ public Map<String, PointBean> points;
+
+ @Override
+ public String toString() {
+ return "All Points";
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue182/InfinityFloatBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue182/InfinityFloatBean.java
index 691959f4..6d72f2a7 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue182/InfinityFloatBean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue182/InfinityFloatBean.java
@@ -1,21 +1,20 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue182;
public class InfinityFloatBean {
- public float infinityFloat;
- public Float infinityFloatObject;
+
+ public float infinityFloat;
+ public Float infinityFloatObject;
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue182/InfinityFloatBeanTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue182/InfinityFloatBeanTest.java
index f589f03d..99c2a101 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue182/InfinityFloatBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue182/InfinityFloatBeanTest.java
@@ -1,36 +1,33 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue182;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class InfinityFloatBeanTest extends TestCase {
- public void testInfinityFloatBean() throws Exception {
+ public void testInfinityFloatBean() throws Exception {
- InfinityFloatBean bean = new InfinityFloatBean();
- bean.infinityFloat = Float.POSITIVE_INFINITY;
- bean.infinityFloatObject = Float.POSITIVE_INFINITY;
+ InfinityFloatBean bean = new InfinityFloatBean();
+ bean.infinityFloat = Float.POSITIVE_INFINITY;
+ bean.infinityFloatObject = Float.POSITIVE_INFINITY;
- Yaml yaml = new Yaml();
- String yamled = yaml.dump(bean);
- InfinityFloatBean loadedBean = yaml.loadAs(yamled, InfinityFloatBean.class);
- assertEquals(Float.POSITIVE_INFINITY, loadedBean.infinityFloat);
- assertEquals(Float.POSITIVE_INFINITY, loadedBean.infinityFloatObject);
- }
+ Yaml yaml = new Yaml();
+ String yamled = yaml.dump(bean);
+ InfinityFloatBean loadedBean = yaml.loadAs(yamled, InfinityFloatBean.class);
+ assertEquals(Float.POSITIVE_INFINITY, loadedBean.infinityFloat);
+ assertEquals(Float.POSITIVE_INFINITY, loadedBean.infinityFloatObject);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue183/NumberBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue183/NumberBean.java
index 0d498468..5a093f70 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue183/NumberBean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue183/NumberBean.java
@@ -1,20 +1,19 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue183;
public class NumberBean {
- public Number number;
+
+ public Number number;
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue183/NumberBeanTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue183/NumberBeanTest.java
index 8200a013..7a6a1444 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue183/NumberBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue183/NumberBeanTest.java
@@ -1,95 +1,104 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue183;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class NumberBeanTest extends TestCase {
- public void testNumberBean() throws Exception {
-
- NumberBean number = new NumberBean();
- number.number = 1;
-
- Yaml yaml = new Yaml();
- String dump = yaml.dump(number);
- NumberBean loaded = yaml.loadAs(dump, NumberBean.class);
- assertEquals(new Long(1), loaded.number);
- }
-
- public void testNumberAsFloatInfinity() throws Exception {
- NumberBean number = new NumberBean();
- number.number = Float.POSITIVE_INFINITY;
-
- Yaml yaml = new Yaml();
- String dump = yaml.dump(number);
- NumberBean loaded = yaml.loadAs(dump, NumberBean.class);
- assertEquals(Float.POSITIVE_INFINITY, loaded.number.floatValue());
- }
-
- public void testNumberAsDoubleInfinity() throws Exception {
- NumberBean number = new NumberBean();
- number.number = Double.POSITIVE_INFINITY;
-
- Yaml yaml = new Yaml();
- String dump = yaml.dump(number);
- NumberBean loaded = yaml.loadAs(dump, NumberBean.class);
- assertEquals(Double.POSITIVE_INFINITY, loaded.number.doubleValue());
- }
-
- public void testNumberAsNegativeFloatInfinity() throws Exception {
- NumberBean number = new NumberBean();
- number.number = Float.NEGATIVE_INFINITY;
-
- Yaml yaml = new Yaml();
- String dump = yaml.dump(number);
- NumberBean loaded = yaml.loadAs(dump, NumberBean.class);
- assertEquals(Float.NEGATIVE_INFINITY, loaded.number.floatValue());
- }
-
- public void testNumberAsNegativeDoubleInfinity() throws Exception {
- NumberBean number = new NumberBean();
- number.number = Double.NEGATIVE_INFINITY;
-
- Yaml yaml = new Yaml();
- String dump = yaml.dump(number);
- NumberBean loaded = yaml.loadAs(dump, NumberBean.class);
- assertEquals(Double.NEGATIVE_INFINITY, loaded.number.doubleValue());
- }
-
- public void testNumberAsFloatNaN() throws Exception {
- NumberBean number = new NumberBean();
- number.number = Float.NaN;
-
- Yaml yaml = new Yaml();
- String dump = yaml.dump(number);
- NumberBean loaded = yaml.loadAs(dump, NumberBean.class);
- assertEquals(Float.NaN, loaded.number.floatValue());
- }
-
- public void testNumberAsDoubleNaN() throws Exception {
- NumberBean number = new NumberBean();
- number.number = Double.NaN;
-
- Yaml yaml = new Yaml();
- String dump = yaml.dump(number);
- NumberBean loaded = yaml.loadAs(dump, NumberBean.class);
- assertEquals(Double.NaN, loaded.number.doubleValue());
- }
+ public void testNumberAsInteger() throws Exception {
+
+ NumberBean number = new NumberBean();
+ number.number = 1;
+ assertEquals(Integer.class, number.number.getClass());
+
+ Yaml yaml = new Yaml();
+ String dump = yaml.dump(number);
+ NumberBean loaded = yaml.loadAs(dump, NumberBean.class);
+ assertEquals("Integer is converted to Double.", Double.valueOf(1), loaded.number);
+ }
+
+ public void testNumberAsDouble() throws Exception {
+
+ NumberBean number = new NumberBean();
+ number.number = 1.0;
+
+ Yaml yaml = new Yaml();
+ String dump = yaml.dump(number);
+ NumberBean loaded = yaml.loadAs(dump, NumberBean.class);
+ assertEquals(number.number, loaded.number);
+ }
+
+ public void testNumberAsFloatInfinity() throws Exception {
+ NumberBean number = new NumberBean();
+ number.number = Float.POSITIVE_INFINITY;
+
+ Yaml yaml = new Yaml();
+ String dump = yaml.dump(number);
+ NumberBean loaded = yaml.loadAs(dump, NumberBean.class);
+ assertEquals(Float.POSITIVE_INFINITY, loaded.number.floatValue());
+ }
+
+ public void testNumberAsDoubleInfinity() throws Exception {
+ NumberBean number = new NumberBean();
+ number.number = Double.POSITIVE_INFINITY;
+
+ Yaml yaml = new Yaml();
+ String dump = yaml.dump(number);
+ NumberBean loaded = yaml.loadAs(dump, NumberBean.class);
+ assertEquals(Double.POSITIVE_INFINITY, loaded.number.doubleValue());
+ }
+
+ public void testNumberAsNegativeFloatInfinity() throws Exception {
+ NumberBean number = new NumberBean();
+ number.number = Float.NEGATIVE_INFINITY;
+
+ Yaml yaml = new Yaml();
+ String dump = yaml.dump(number);
+ NumberBean loaded = yaml.loadAs(dump, NumberBean.class);
+ assertEquals(Float.NEGATIVE_INFINITY, loaded.number.floatValue());
+ }
+
+ public void testNumberAsNegativeDoubleInfinity() throws Exception {
+ NumberBean number = new NumberBean();
+ number.number = Double.NEGATIVE_INFINITY;
+
+ Yaml yaml = new Yaml();
+ String dump = yaml.dump(number);
+ NumberBean loaded = yaml.loadAs(dump, NumberBean.class);
+ assertEquals(Double.NEGATIVE_INFINITY, loaded.number.doubleValue());
+ }
+
+ public void testNumberAsFloatNaN() throws Exception {
+ NumberBean number = new NumberBean();
+ number.number = Float.NaN;
+
+ Yaml yaml = new Yaml();
+ String dump = yaml.dump(number);
+ NumberBean loaded = yaml.loadAs(dump, NumberBean.class);
+ assertEquals(Float.NaN, loaded.number.floatValue());
+ }
+
+ public void testNumberAsDoubleNaN() throws Exception {
+ NumberBean number = new NumberBean();
+ number.number = Double.NaN;
+
+ Yaml yaml = new Yaml();
+ String dump = yaml.dump(number);
+ NumberBean loaded = yaml.loadAs(dump, NumberBean.class);
+ assertEquals(Double.NaN, loaded.number.doubleValue());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue188/ErrorMessageTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue188/ErrorMessageTest.java
index fa17b680..39a941d4 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue188/ErrorMessageTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue188/ErrorMessageTest.java
@@ -1,35 +1,32 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue188;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class ErrorMessageTest extends TestCase {
- public void testErrorMessage() throws Exception {
+ public void testErrorMessage() throws Exception {
- try {
- Yaml yaml = new Yaml();
- String doc = "templates:\n" + " master:\n" + " type: Compute : invalid123";
- yaml.load(doc);
- fail();
- } catch (Exception e) {
- assertFalse(e.getMessage(), e.getMessage().contains("null"));
- }
+ try {
+ Yaml yaml = new Yaml();
+ String doc = "templates:\n" + " master:\n" + " type: Compute : invalid123";
+ yaml.load(doc);
+ fail();
+ } catch (Exception e) {
+ assertFalse(e.getMessage(), e.getMessage().contains("null"));
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue192/EqualsSignTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue192/EqualsSignTest.java
index f48f7d14..a012d5a3 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue192/EqualsSignTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue192/EqualsSignTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue192;
@@ -20,11 +18,11 @@ import org.yaml.snakeyaml.Yaml;
public class EqualsSignTest extends TestCase {
- public void testMappingNode() {
- new Yaml().load("part1: =");
- }
+ public void testMappingNode() {
+ new Yaml().load("part1: =");
+ }
- public void testScalarNode() {
- new Yaml().load("=");
- }
+ public void testScalarNode() {
+ new Yaml().load("=");
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue193/AbstractBeanTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue193/AbstractBeanTest.java
index 8476a6a7..074b0076 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue193/AbstractBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue193/AbstractBeanTest.java
@@ -1,25 +1,20 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue193;
import junit.framework.TestCase;
-
-import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
-import org.yaml.snakeyaml.constructor.BaseConstructor;
import org.yaml.snakeyaml.constructor.Constructor;
import org.yaml.snakeyaml.introspector.BeanAccess;
import org.yaml.snakeyaml.introspector.PropertyUtils;
@@ -27,26 +22,26 @@ import org.yaml.snakeyaml.representer.Representer;
public class AbstractBeanTest extends TestCase {
- public void testErrorMessage() throws Exception {
+ public void testErrorMessage() throws Exception {
- BeanA1 b = new BeanA1();
- b.setId(2l);
- b.setName("name1");
+ BeanA1 b = new BeanA1();
+ b.setId(2L);
+ b.setName("name1");
- Constructor c = new Constructor();
- Representer r = new Representer();
+ Constructor c = new Constructor();
+ Representer r = new Representer();
- PropertyUtils pu = new PropertyUtils();
- c.setPropertyUtils(pu);
- r.setPropertyUtils(pu);
+ PropertyUtils pu = new PropertyUtils();
+ c.setPropertyUtils(pu);
+ r.setPropertyUtils(pu);
- pu.getProperties(BeanA1.class, BeanAccess.FIELD);
+ pu.getProperties(BeanA1.class, BeanAccess.FIELD);
- Yaml yaml = new Yaml(c, r);
- // yaml.setBeanAccess(BeanAccess.FIELD);
- String dump = yaml.dump(b);
- BeanA1 b2 = (BeanA1) yaml.load(dump);
- assertEquals(b.getId(), b2.getId());
- assertEquals(b.getName(), b2.getName());
- }
+ Yaml yaml = new Yaml(c, r);
+ // yaml.setBeanAccess(BeanAccess.FIELD);
+ String dump = yaml.dump(b);
+ BeanA1 b2 = yaml.load(dump);
+ assertEquals(b.getId(), b2.getId());
+ assertEquals(b.getName(), b2.getName());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue193/BeanA.java b/src/test/java/org/yaml/snakeyaml/issues/issue193/BeanA.java
index e2ab61b9..a8f54009 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue193/BeanA.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue193/BeanA.java
@@ -1,22 +1,20 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue193;
public abstract class BeanA {
- public abstract Object getId();
+ public abstract Object getId();
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue193/BeanA1.java b/src/test/java/org/yaml/snakeyaml/issues/issue193/BeanA1.java
index f7b7719f..15323d05 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue193/BeanA1.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue193/BeanA1.java
@@ -1,40 +1,38 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue193;
public class BeanA1 extends BeanA {
- private Long id;
+ private Long id;
- public Long getId() {
- return id;
- }
+ public Long getId() {
+ return id;
+ }
- public void setId(Long id) {
- this.id = id;
- }
+ public void setId(Long id) {
+ this.id = id;
+ }
- private String name;
+ private String name;
- public String getName() {
- return name;
- }
+ public String getName() {
+ return name;
+ }
- public void setName(String name) {
- this.name = name;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue193/TestYaml.java b/src/test/java/org/yaml/snakeyaml/issues/issue193/TestYaml.java
index 662c74bd..7b1c9cee 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue193/TestYaml.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue193/TestYaml.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue193;
@@ -19,50 +17,47 @@ import org.yaml.snakeyaml.Yaml;
public class TestYaml {
- public static abstract class BeanA {
+ public static abstract class BeanA {
- public abstract Object getId();
+ public abstract Object getId();
- }
-
- public static class BeanA1 extends BeanA {
+ }
- private Long id;
+ public static class BeanA1 extends BeanA {
- // @Override
- public Long getId() {
- return id;
- }
+ private Long id;
- public void setId(Long id) {
- this.id = id;
- }
+ // @Override
+ public Long getId() {
+ return id;
+ }
- private String name;
+ public void setId(Long id) {
+ this.id = id;
+ }
- public String getName() {
- return name;
- }
+ private String name;
- public void setName(String name) {
- this.name = name;
- }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
}
- public static void main(String[] args) {
+ }
- System.out.println("test...");
- BeanA1 b = new BeanA1();
- b.setId(2l);
- b.setName("name1");
- Yaml yaml = new Yaml();
- String dump = yaml.dump(b);
+ public static void main(String[] args) {
- System.out.println("dump:" + dump);
+ BeanA1 b = new BeanA1();
+ b.setId(2L);
+ b.setName("name1");
+ Yaml yaml = new Yaml();
+ String dump = yaml.dump(b);
- dump = "!!org.yaml.snakeyaml.issues.issue193.TestYaml$BeanA1 {id: 2, name: name1}";
+ dump = "!!org.yaml.snakeyaml.issues.issue193.TestYaml$BeanA1 {id: 2, name: name1}";
- yaml.load(dump);
- }
+ yaml.load(dump);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue203/ContentIdentifier.java b/src/test/java/org/yaml/snakeyaml/issues/issue203/ContentIdentifier.java
index 0557412e..99190bc8 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue203/ContentIdentifier.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue203/ContentIdentifier.java
@@ -1,19 +1,19 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue203;
-public interface ContentIdentifier extends Identifiable<Long> {};
+public interface ContentIdentifier extends Identifiable<Long> {
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue203/ContentIdentifierImpl.java b/src/test/java/org/yaml/snakeyaml/issues/issue203/ContentIdentifierImpl.java
index b4c10f8c..d9419d21 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue203/ContentIdentifierImpl.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue203/ContentIdentifierImpl.java
@@ -1,29 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue203;
-public class ContentIdentifierImpl implements ContentIdentifier {
+public class ContentIdentifierImpl implements ContentIdentifier {
- private Long id;
+ private final Long id;
- public ContentIdentifierImpl(Long id) {
- this.id = id;
- }
+ public ContentIdentifierImpl(Long id) {
+ this.id = id;
+ }
- public Long getId() {
- return id;
- }
-} \ No newline at end of file
+ public Long getId() {
+ return id;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue203/DataBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue203/DataBean.java
index dc96d04c..68d319a7 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue203/DataBean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue203/DataBean.java
@@ -1,39 +1,38 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue203;
public class DataBean {
- private String id;
- private ContentIdentifier content;
- public String getId() {
- return id;
- }
+ private String id;
+ private ContentIdentifier content;
- public void setId(String id) {
- this.id = id;
- }
+ public String getId() {
+ return id;
+ }
+ public void setId(String id) {
+ this.id = id;
+ }
- public ContentIdentifier getContent() {
- return content;
- }
- public void setContent(ContentIdentifier content) {
- this.content = content;
- }
+ public ContentIdentifier getContent() {
+ return content;
+ }
+
+ public void setContent(ContentIdentifier content) {
+ this.content = content;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue203/GenericTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue203/GenericTest.java
index 165fbe6b..ec2924b6 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue203/GenericTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue203/GenericTest.java
@@ -1,32 +1,28 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue203;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class GenericTest extends TestCase {
- public void testGenericInterface() {
- Yaml yaml = new Yaml();
- String uuu = "!!org.yaml.snakeyaml.issues.issue203.DataBean\n"
- + "content: !!org.yaml.snakeyaml.issues.issue203.ContentIdentifierImpl 33\n"
- + "id: 555";
- DataBean obj = (DataBean) yaml.load(uuu);
- assertEquals(33, obj.getContent().getId().intValue());
- }
+ public void testGenericInterface() {
+ Yaml yaml = new Yaml();
+ String uuu = "!!org.yaml.snakeyaml.issues.issue203.DataBean\n"
+ + "content: !!org.yaml.snakeyaml.issues.issue203.ContentIdentifierImpl 33\n" + "id: 555";
+ DataBean obj = yaml.load(uuu);
+ assertEquals(33, obj.getContent().getId().intValue());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue203/Identifiable.java b/src/test/java/org/yaml/snakeyaml/issues/issue203/Identifiable.java
index dbe1ffe2..6426925f 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue203/Identifiable.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue203/Identifiable.java
@@ -1,22 +1,21 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue203;
import java.io.Serializable;
public interface Identifiable<ID extends Serializable> {
- public ID getId();
-} \ No newline at end of file
+
+ ID getId();
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue205/AppleSmileTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue205/AppleSmileTest.java
index f17556ec..7141113c 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue205/AppleSmileTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue205/AppleSmileTest.java
@@ -1,36 +1,33 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue205;
+import java.io.InputStream;
+import java.util.Map;
import junit.framework.TestCase;
import org.yaml.snakeyaml.Yaml;
-import java.io.InputStream;
-
public class AppleSmileTest extends TestCase {
- public void testEmoji() {
- //http://support.apple.com/en-us/ht4976
- InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("issues/ios_emoji_surrogate.yaml");
- Yaml yaml = new Yaml();
- try {
- yaml.load(input);
- fail("Surrogate characters must not be accepted.");
- } catch (Exception e) {
- assertEquals("special characters are not allowed", e.getMessage());
- }
- }
+ public void testEmoji() {
+ // http://support.apple.com/en-us/ht4976
+ InputStream input = Thread.currentThread().getContextClassLoader()
+ .getResourceAsStream("issues/ios_emoji_surrogate.yaml");
+ Yaml yaml = new Yaml();
+ Map<String, String> map = yaml.load(input);
+ String ios_emoji = map.get("text");
+ assertEquals("😷😊", ios_emoji);
+ System.out.println(ios_emoji);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue207/OctalNumberTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue207/OctalNumberTest.java
index 82dd5d50..b3962708 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue207/OctalNumberTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue207/OctalNumberTest.java
@@ -1,41 +1,38 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue207;
-import junit.framework.TestCase;
-import org.yaml.snakeyaml.Yaml;
+import static org.junit.Assert.assertEquals;
-import java.io.InputStream;
import java.util.Map;
+import org.junit.Test;
+import org.yaml.snakeyaml.Yaml;
-public class OctalNumberTest extends TestCase {
+public class OctalNumberTest {
- public void testOctalNumbersMoreThenSeven() {
- Yaml yaml = new Yaml();
- assertEquals(7, yaml.load("07"));
- assertEquals(63, yaml.load("077"));
- assertEquals(0, yaml.load("0"));
- assertEquals("0A", yaml.load("0A"));
- assertEquals("09", yaml.load("!!str 09"));
+ @Test
+ public void testOctalNumbersMoreThenSeven() {
+ Yaml yaml = new Yaml();
+ assertEquals(Integer.valueOf(7), yaml.load("07"));
+ assertEquals(Integer.valueOf(63), yaml.load("077"));
+ assertEquals(Integer.valueOf(0), yaml.load("0"));
+ assertEquals("0A", yaml.load("0A"));
+ assertEquals("09", yaml.load("!!str 09"));
- /* TODO fix 207 and 130
- assertEquals("08", yaml.load("08"));
- assertEquals("09", yaml.load("09"));
- Map<String, String> parsed9 = (Map<String, String>) yaml.load("a: 09");
- assertEquals("09", parsed9.get("a"));
- */
- }
+ assertEquals("08", yaml.load("08"));
+ assertEquals("09", yaml.load("09"));
+ Map<String, String> parsed9 = yaml.load("a: 09");
+ assertEquals("09", parsed9.get("a"));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue24/LineNumberTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue24/LineNumberTest.java
index 3ea8ead0..222cce67 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue24/LineNumberTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue24/LineNumberTest.java
@@ -1,22 +1,19 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue24;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
@@ -24,16 +21,17 @@ import org.yaml.snakeyaml.Yaml;
* to test http://code.google.com/p/snakeyaml/issues/detail?id=24
*/
public class LineNumberTest extends TestCase {
- public void test1() {
- String resource = Util.getLocalResource("issues/issue24-1.yaml");
- // System.out.println(resource);
- Yaml yaml = new Yaml();
- try {
- yaml.load(resource);
- fail();
- } catch (Exception e) {
- assertTrue(e.toString(), e.toString().contains("line 3"));
- assertTrue(e.toString(), e.toString().contains("column 12"));
- }
+
+ public void test1() {
+ String resource = Util.getLocalResource("issues/issue24-1.yaml");
+ // System.out.println(resource);
+ Yaml yaml = new Yaml();
+ try {
+ yaml.load(resource);
+ fail();
+ } catch (Exception e) {
+ assertTrue(e.toString(), e.toString().contains("line 3"));
+ assertTrue(e.toString(), e.toString().contains("column 12"));
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue29/BigJavaBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue29/BigJavaBean.java
index 5141662e..cb20be40 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue29/BigJavaBean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue29/BigJavaBean.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue29;
@@ -19,109 +17,120 @@ import java.util.List;
import java.util.Map;
public class BigJavaBean {
- private String name;
- private String address;
- private String description;
- private int id;
- private List<Integer> numbers;
- private Map<String, String> data;
-
- public BigJavaBean() {
- }
- public BigJavaBean(int id, String name, String address, String description) {
- super();
- this.name = name;
- this.address = address;
- this.description = description;
- this.id = id;
- }
+ private String name;
+ private String address;
+ private String description;
+ private int id;
+ private List<Integer> numbers;
+ private Map<String, String> data;
- public String getName() {
- return name;
- }
+ public BigJavaBean() {}
- public void setName(String name) {
- this.name = name;
- }
+ public BigJavaBean(int id, String name, String address, String description) {
+ super();
+ this.name = name;
+ this.address = address;
+ this.description = description;
+ this.id = id;
+ }
- public String getAddress() {
- return address;
- }
+ public String getName() {
+ return name;
+ }
- public String getDescription() {
- return description;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public int getId() {
- return id;
- }
+ public String getAddress() {
+ return address;
+ }
- public List<Integer> getNumbers() {
- return numbers;
- }
+ public String getDescription() {
+ return description;
+ }
- public void setNumbers(List<Integer> numbers) {
- this.numbers = numbers;
- }
+ public int getId() {
+ return id;
+ }
- public Map<String, String> getData() {
- return data;
- }
+ public List<Integer> getNumbers() {
+ return numbers;
+ }
- public void setData(Map<String, String> data) {
- this.data = data;
- }
+ public void setNumbers(List<Integer> numbers) {
+ this.numbers = numbers;
+ }
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((address == null) ? 0 : address.hashCode());
- result = prime * result + ((data == null) ? 0 : data.hashCode());
- result = prime * result + ((description == null) ? 0 : description.hashCode());
- result = prime * result + id;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- result = prime * result + ((numbers == null) ? 0 : numbers.hashCode());
- return result;
- }
+ public Map<String, String> getData() {
+ return data;
+ }
+
+ public void setData(Map<String, String> data) {
+ this.data = data;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((address == null) ? 0 : address.hashCode());
+ result = prime * result + ((data == null) ? 0 : data.hashCode());
+ result = prime * result + ((description == null) ? 0 : description.hashCode());
+ result = prime * result + id;
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ result = prime * result + ((numbers == null) ? 0 : numbers.hashCode());
+ return result;
+ }
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- BigJavaBean other = (BigJavaBean) obj;
- if (address == null) {
- if (other.address != null)
- return false;
- } else if (!address.equals(other.address))
- return false;
- if (data == null) {
- if (other.data != null)
- return false;
- } else if (!data.equals(other.data))
- return false;
- if (description == null) {
- if (other.description != null)
- return false;
- } else if (!description.equals(other.description))
- return false;
- if (id != other.id)
- return false;
- if (name == null) {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- if (numbers == null) {
- if (other.numbers != null)
- return false;
- } else if (!numbers.equals(other.numbers))
- return false;
- return true;
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ BigJavaBean other = (BigJavaBean) obj;
+ if (address == null) {
+ if (other.address != null) {
+ return false;
+ }
+ } else if (!address.equals(other.address)) {
+ return false;
+ }
+ if (data == null) {
+ if (other.data != null) {
+ return false;
+ }
+ } else if (!data.equals(other.data)) {
+ return false;
+ }
+ if (description == null) {
+ if (other.description != null) {
+ return false;
+ }
+ } else if (!description.equals(other.description)) {
+ return false;
+ }
+ if (id != other.id) {
+ return false;
+ }
+ if (name == null) {
+ if (other.name != null) {
+ return false;
+ }
+ } else if (!name.equals(other.name)) {
+ return false;
+ }
+ if (numbers == null) {
+ return other.numbers == null;
+ } else {
+ return numbers.equals(other.numbers);
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue29/FlexibleScalarStyleTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue29/FlexibleScalarStyleTest.java
index 384b83d1..f5f1d236 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue29/FlexibleScalarStyleTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue29/FlexibleScalarStyleTest.java
@@ -1,25 +1,21 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue29;
import java.util.LinkedHashMap;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.ScalarStyle;
import org.yaml.snakeyaml.Util;
@@ -32,85 +28,87 @@ import org.yaml.snakeyaml.representer.Representer;
* to test http://code.google.com/p/snakeyaml/issues/detail?id=29
*/
public class FlexibleScalarStyleTest extends TestCase {
- public void testLong() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(ScalarStyle.FOLDED);
- Yaml yaml = new Yaml(options);
- String result = yaml
- .dump("qqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqq "
- + "qqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqq "
- + "qqqqqqqqqqqqqqqqqqqqqqqqq 111111111111111111111111\n "
- + "qqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqq\n");
- // System.out.println(result);
- assertTrue(result.startsWith(">\n"));
- assertEquals(
- ">\n qqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqq\n qqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqq 111111111111111111111111\n qqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqq\n",
- result);
- }
- public void testNoFoldedScalar() {
- DumperOptions options = new DumperOptions();
- options.setWidth(30);
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(getData());
- // System.out.println(output);
- String etalon = Util.getLocalResource("representer/scalar-style1.yaml");
- assertEquals(etalon, output);
- }
+ public void testLong() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(ScalarStyle.FOLDED);
+ Yaml yaml = new Yaml(options);
+ String result =
+ yaml.dump("qqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqq "
+ + "qqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqq "
+ + "qqqqqqqqqqqqqqqqqqqqqqqqq 111111111111111111111111\n "
+ + "qqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqq\n");
+ // System.out.println(result);
+ assertTrue(result.startsWith(">\n"));
+ assertEquals(
+ ">\n qqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqq\n qqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqq 111111111111111111111111\n qqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqq\n",
+ result);
+ }
- public void testCustomScalarStyle() {
- DumperOptions options = new DumperOptions();
- options.setWidth(30);
- Yaml yaml = new Yaml(new MyRepresenter(), options);
- String output = yaml.dump(getData());
- // System.out.println(output);
- String etalon = Util.getLocalResource("representer/scalar-style2.yaml");
- assertEquals(etalon, output);
- }
+ public void testDefaultScalarStyle() {
+ DumperOptions options = new DumperOptions();
+ options.setWidth(30);
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(getData());
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("representer/scalar-style1.yaml");
+ assertEquals(etalon, output);
+ }
- public void testCustomScalarStyleNoSplitLines() {
- DumperOptions options = new DumperOptions();
- options.setWidth(30);
- options.setSplitLines(false);
- Yaml yaml = new Yaml(new MyRepresenter(), options);
- String output = yaml.dump(getData());
- // System.out.println(output);
- String etalon = Util.getLocalResource("representer/scalar-style3.yaml");
- assertEquals(etalon, output);
- }
+ public void testCustomScalarStyle() {
+ DumperOptions options = new DumperOptions();
+ options.setWidth(30);
+ Yaml yaml = new Yaml(new MyRepresenter(), options);
+ String output = yaml.dump(getData());
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("representer/scalar-style2.yaml");
+ assertEquals(etalon, output);
+ }
- private Map<String, String> getData() {
- Map<String, String> map = new LinkedHashMap<String, String>();
- map.put("name", "Steve Jobs");
- map.put("address", "Name\nStreet Number\nCountry");
- map.put("description",
- "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
- return map;
- }
+ public void testCustomScalarStyleNoSplitLines() {
+ DumperOptions options = new DumperOptions();
+ options.setWidth(30);
+ options.setSplitLines(false);
+ Yaml yaml = new Yaml(new MyRepresenter(), options);
+ String output = yaml.dump(getData());
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("representer/scalar-style3.yaml");
+ assertEquals(etalon, output);
+ }
- private class MyRepresenter extends Representer {
+ private Map<String, String> getData() {
+ Map<String, String> map = new LinkedHashMap<String, String>();
+ map.put("name", "Steve Jobs");
+ map.put("address", "Name\nStreet Number\nCountry");
+ map.put("description",
+ "1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999 0000000000");
+ return map;
+ }
- public MyRepresenter() {
- super();
- this.representers.put(String.class, new FlexibleRepresent());
- }
+ private class MyRepresenter extends Representer {
+
+ public MyRepresenter() {
+ super();
+ this.representers.put(String.class, new FlexibleRepresent());
+ }
+
+ private class FlexibleRepresent extends RepresentString {
- private class FlexibleRepresent extends RepresentString {
- public Node representData(Object data) {
- ScalarNode node = (ScalarNode) super.representData(data);
- if (node.getStyle() == null) {
- // if Plain scalar style
- if (node.getValue().length() < 25) {
- return node;
- } else {
- // Folded scalar style
- return new ScalarNode(node.getTag(), node.getValue(), node.getStartMark(),
- node.getEndMark(), '>');
- }
- } else {
- return node;
- }
- }
+ public Node representData(Object data) {
+ ScalarNode node = (ScalarNode) super.representData(data);
+ if (node.isPlain()) {
+ // if Plain scalar style
+ if (node.getValue().length() < 25) {
+ return node;
+ } else {
+ // Folded scalar style
+ return new ScalarNode(node.getTag(), node.getValue(), node.getStartMark(),
+ node.getEndMark(), ScalarStyle.FOLDED);
+ }
+ } else {
+ return node;
}
+ }
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue29/FlexibleScalarStylesInJavaBeanTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue29/FlexibleScalarStylesInJavaBeanTest.java
index afddbc8e..06d0b665 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue29/FlexibleScalarStylesInJavaBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue29/FlexibleScalarStylesInJavaBeanTest.java
@@ -1,21 +1,18 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue29;
-import java.beans.IntrospectionException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
@@ -24,9 +21,8 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
-
import junit.framework.TestCase;
-
+import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.introspector.BeanAccess;
import org.yaml.snakeyaml.introspector.Property;
@@ -37,111 +33,112 @@ import org.yaml.snakeyaml.nodes.Tag;
import org.yaml.snakeyaml.representer.Representer;
public class FlexibleScalarStylesInJavaBeanTest extends TestCase {
- public void testDifferentStyles() {
- BigJavaBean bean1 = new BigJavaBean(1, "simple", "line 1\nline2\nzipcode", "short text1");
- List<Integer> numbers1 = new ArrayList<Integer>(Arrays.asList(1, 2, 3));
- bean1.setNumbers(numbers1);
- Map<String, String> data1 = new HashMap<String, String>();
- data1.put("key1", "value1");
- data1.put("key2", "value2");
- bean1.setData(data1);
- //
- BigJavaBean bean2 = new BigJavaBean(1, "second", "line 111\nline 222\nzipcode 12345\n\n",
- "info: semicolon is used");
- List<Integer> numbers2 = new ArrayList<Integer>(Arrays.asList(4, 5, 6, 777, 888, 999, 1000));
- bean2.setNumbers(numbers2);
- Map<String, String> data2 = new HashMap<String, String>();
- data2.put("key21", "value12");
- data2.put("key22", "value with\ntwo lines");
- bean2.setData(data2);
- //
- List<BigJavaBean> list = new ArrayList<BigJavaBean>();
- list.add(bean1);
- list.add(bean2);
- Yaml yaml = new Yaml(new MyRepresenter());
- yaml.setBeanAccess(BeanAccess.FIELD);
- String output = yaml.dump(list);
- // System.out.println(output);
- // parse back
- @SuppressWarnings("unchecked")
- List<BigJavaBean> parsed = (List<BigJavaBean>) yaml.load(output);
- assertEquals(2, parsed.size());
- assertEquals(bean1, parsed.get(0));
- assertEquals(bean2, parsed.get(1));
+ public void testDifferentStyles() {
+ BigJavaBean bean1 = new BigJavaBean(1, "simple", "line 1\nline2\nzipcode", "short text1");
+ List<Integer> numbers1 = new ArrayList<Integer>(Arrays.asList(1, 2, 3));
+ bean1.setNumbers(numbers1);
+ Map<String, String> data1 = new HashMap<String, String>();
+ data1.put("key1", "value1");
+ data1.put("key2", "value2");
+ bean1.setData(data1);
+ //
+ BigJavaBean bean2 = new BigJavaBean(1, "second", "line 111\nline 222\nzipcode 12345\n\n",
+ "info: semicolon is used");
+ List<Integer> numbers2 = new ArrayList<Integer>(Arrays.asList(4, 5, 6, 777, 888, 999, 1000));
+ bean2.setNumbers(numbers2);
+ Map<String, String> data2 = new HashMap<String, String>();
+ data2.put("key21", "value12");
+ data2.put("key22", "value with\ntwo lines");
+ bean2.setData(data2);
+ //
+ List<BigJavaBean> list = new ArrayList<BigJavaBean>();
+ list.add(bean1);
+ list.add(bean2);
+ Yaml yaml = new Yaml(new MyRepresenter());
+ yaml.setBeanAccess(BeanAccess.FIELD);
+ String output = yaml.dump(list);
+ // System.out.println(output);
+ // parse back
+ @SuppressWarnings("unchecked")
+ List<BigJavaBean> parsed = yaml.load(output);
+ assertEquals(2, parsed.size());
+ assertEquals(bean1, parsed.get(0));
+ assertEquals(bean2, parsed.get(1));
+
+ }
+
+ private class MyRepresenter extends Representer {
+
+ /*
+ * Change the default order. Important data goes first.
+ */
+ @Override
+ protected Set<Property> getProperties(Class<? extends Object> type) {
+ if (type.isAssignableFrom(BigJavaBean.class)) {
+ Set<Property> standard = super.getProperties(type);
+ Set<Property> sorted = new TreeSet<Property>(new PropertyComparator());
+ sorted.addAll(standard);
+ return sorted;
+ } else {
+ return super.getProperties(type);
+ }
}
- private class MyRepresenter extends Representer {
- /*
- * Change the default order. Important data goes first.
- */
- @Override
- protected Set<Property> getProperties(Class<? extends Object> type)
- throws IntrospectionException {
- if (type.isAssignableFrom(BigJavaBean.class)) {
- Set<Property> standard = super.getProperties(type);
- Set<Property> sorted = new TreeSet<Property>(new PropertyComparator());
- sorted.addAll(standard);
- return sorted;
- } else {
- return super.getProperties(type);
- }
- }
+ private class PropertyComparator implements Comparator<Property> {
- private class PropertyComparator implements Comparator<Property> {
- public int compare(Property o1, Property o2) {
- // important go first
- List<String> order = new ArrayList<String>(Arrays.asList("id", "name",
- "description", "address"));
- for (String name : order) {
- int c = compareByName(o1, o2, name);
- if (c != 0) {
- return c;
- }
- }
- // all the rest
- return o1.compareTo(o2);
- }
+ public int compare(Property o1, Property o2) {
+ // important go first
+ List<String> order =
+ new ArrayList<String>(Arrays.asList("id", "name", "description", "address"));
+ for (String name : order) {
+ int c = compareByName(o1, o2, name);
+ if (c != 0) {
+ return c;
+ }
+ }
+ // all the rest
+ return o1.compareTo(o2);
+ }
- private int compareByName(Property o1, Property o2, String name) {
- if (o1.getName().equals(name)) {
- return -1;
- } else if (o2.getName().equals(name)) {
- return 1;
- }
- return 0;// compare further
- }
+ private int compareByName(Property o1, Property o2, String name) {
+ if (o1.getName().equals(name)) {
+ return -1;
+ } else if (o2.getName().equals(name)) {
+ return 1;
}
+ return 0;// compare further
+ }
+ }
- @Override
- protected NodeTuple representJavaBeanProperty(Object javaBean, Property property,
- Object propertyValue, Tag customTag) {
- if (javaBean instanceof BigJavaBean) {
- BigJavaBean bean = (BigJavaBean) javaBean;
- NodeTuple standard = super.representJavaBeanProperty(javaBean, property,
- propertyValue, customTag);
- if (property.getName().equals("numbers")) {
- // when the list is small, make it block collection style
- if (bean.getNumbers().size() < 5) {
- SequenceNode n = (SequenceNode) standard.getValueNode();
- return new NodeTuple(standard.getKeyNode(), new SequenceNode(n.getTag(),
- true, n.getValue(), n.getStartMark(), n.getEndMark(), false));
- }
- }
- if (property.getName().equals("description")) {
- // if description contains ':' use folded scalar style and
- // not single quoted scalar style
- if (bean.getDescription().indexOf(':') > 0) {
- ScalarNode n = (ScalarNode) standard.getValueNode();
- return new NodeTuple(standard.getKeyNode(), new ScalarNode(n.getTag(),
- n.getValue(), n.getStartMark(), n.getEndMark(), '>'));
- }
- }
- return standard;
- } else {
- return super
- .representJavaBeanProperty(javaBean, property, propertyValue, customTag);
- }
+ @Override
+ protected NodeTuple representJavaBeanProperty(Object javaBean, Property property,
+ Object propertyValue, Tag customTag) {
+ if (javaBean instanceof BigJavaBean) {
+ BigJavaBean bean = (BigJavaBean) javaBean;
+ NodeTuple standard =
+ super.representJavaBeanProperty(javaBean, property, propertyValue, customTag);
+ if (property.getName().equals("numbers")) {
+ // when the list is small, make it block collection style
+ if (bean.getNumbers().size() < 5) {
+ SequenceNode n = (SequenceNode) standard.getValueNode();
+ return new NodeTuple(standard.getKeyNode(), new SequenceNode(n.getTag(), true,
+ n.getValue(), n.getStartMark(), n.getEndMark(), DumperOptions.FlowStyle.BLOCK));
+ }
+ }
+ if (property.getName().equals("description")) {
+ // if description contains ':' use folded scalar style and
+ // not single quoted scalar style
+ if (bean.getDescription().indexOf(':') > 0) {
+ ScalarNode n = (ScalarNode) standard.getValueNode();
+ return new NodeTuple(standard.getKeyNode(), new ScalarNode(n.getTag(), n.getValue(),
+ n.getStartMark(), n.getEndMark(), DumperOptions.ScalarStyle.FOLDED));
+ }
}
+ return standard;
+ } else {
+ return super.representJavaBeanProperty(javaBean, property, propertyValue, customTag);
+ }
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue306/BeanWithId.java b/src/test/java/org/yaml/snakeyaml/issues/issue306/BeanWithId.java
index 40f849e3..84221a98 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue306/BeanWithId.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue306/BeanWithId.java
@@ -1,39 +1,38 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue306;
import java.util.UUID;
public class BeanWithId {
- private int value;
- private UUID id;
- public int getValue() {
- return value;
- }
+ private int value;
+ private UUID id;
- public void setValue(int value) {
- this.value = value;
- }
+ public int getValue() {
+ return value;
+ }
- public UUID getId() {
- return id;
- }
+ public void setValue(int value) {
+ this.value = value;
+ }
- public void setId(UUID id) {
- this.id = id;
- }
+ public UUID getId() {
+ return id;
+ }
+
+ public void setId(UUID id) {
+ this.id = id;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue306/UuidSupportTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue306/UuidSupportTest.java
index 36228688..bef675f1 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue306/UuidSupportTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue306/UuidSupportTest.java
@@ -1,88 +1,85 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue306;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.util.UUID;
+import java.util.regex.Pattern;
import org.junit.Test;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.nodes.Tag;
-import java.util.UUID;
-import java.util.regex.Pattern;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
public class UuidSupportTest {
- public static final Pattern UUID_PATTERN = Pattern
- .compile("^(?:\\p{XDigit}{8}-\\p{XDigit}{4}-\\p{XDigit}{4}-\\p{XDigit}{4}-\\p{XDigit}{12})$");
- public static final Tag UUID_TAG = new Tag(Tag.PREFIX + "java.util.UUID");
+ public static final Pattern UUID_PATTERN = Pattern
+ .compile("^(?:\\p{XDigit}{8}-\\p{XDigit}{4}-\\p{XDigit}{4}-\\p{XDigit}{4}-\\p{XDigit}{12})$");
+ public static final Tag UUID_TAG = new Tag(Tag.PREFIX + "java.util.UUID");
- @Test
- public void pattern() {
- assertTrue(UUID_PATTERN.matcher("7f511847-781a-45df-9c8d-1e32e028b9b3").matches());
- assertTrue(UUID_PATTERN.matcher("AC4877BE-0C31-4458-A86E-0272EFE1AAA8").matches());
- }
+ @Test
+ public void pattern() {
+ assertTrue(UUID_PATTERN.matcher("7f511847-781a-45df-9c8d-1e32e028b9b3").matches());
+ assertTrue(UUID_PATTERN.matcher("AC4877BE-0C31-4458-A86E-0272EFE1AAA8").matches());
+ }
- @Test
- public void dumpAsString() {
- UUID uuid = UUID.randomUUID();
- String str = uuid.toString();
- Yaml yaml = new Yaml();
- yaml.addImplicitResolver(UUID_TAG, UUID_PATTERN, null);
- String output = yaml.dump(str);
- assertEquals("'" + str + "'\n", output);
- assertEquals(str + "\n", yaml.dump(uuid));
- }
+ @Test
+ public void dumpAsString() {
+ UUID uuid = UUID.randomUUID();
+ String str = uuid.toString();
+ Yaml yaml = new Yaml();
+ yaml.addImplicitResolver(UUID_TAG, UUID_PATTERN, null);
+ String output = yaml.dump(str);
+ assertEquals("'" + str + "'\n", output);
+ assertEquals(str + "\n", yaml.dump(uuid));
+ }
- @Test
- public void loadAsUuid() {
- Yaml yaml = new Yaml();
- yaml.addImplicitResolver(UUID_TAG, UUID_PATTERN, null);
- UUID uuid = (UUID) yaml.load("7f511847-781a-45df-9c8d-1e32e028b9b3");
- assertEquals("7f511847-781a-45df-9c8d-1e32e028b9b3", uuid.toString());
- }
+ @Test
+ public void loadAsUuid() {
+ Yaml yaml = new Yaml();
+ yaml.addImplicitResolver(UUID_TAG, UUID_PATTERN, null);
+ UUID uuid = yaml.load("7f511847-781a-45df-9c8d-1e32e028b9b3");
+ assertEquals("7f511847-781a-45df-9c8d-1e32e028b9b3", uuid.toString());
+ }
- @Test
- public void loadFromBean() {
- String input = Util.getLocalResource("issues/issue306-1.yaml");
- Yaml yaml = new Yaml();
- BeanWithId bean = yaml.loadAs(input, BeanWithId.class);
- assertEquals("7f511847-781a-45df-9c8d-1e32e028b9b3", bean.getId().toString());
- }
+ @Test
+ public void loadFromBean() {
+ String input = Util.getLocalResource("issues/issue306-1.yaml");
+ Yaml yaml = new Yaml();
+ BeanWithId bean = yaml.loadAs(input, BeanWithId.class);
+ assertEquals("7f511847-781a-45df-9c8d-1e32e028b9b3", bean.getId().toString());
+ }
- @Test
- public void dumpUuid() {
- UUID uuid = UUID.randomUUID();
- Yaml yaml = new Yaml();
- String output = yaml.dump(uuid);
- assertEquals("!!java.util.UUID '" + uuid.toString() + "'\n", output);
- }
+ @Test
+ public void dumpUuid() {
+ UUID uuid = UUID.randomUUID();
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(uuid);
+ assertEquals("!!java.util.UUID '" + uuid + "'\n", output);
+ }
- @Test
- public void dumpBean() {
- BeanWithId bean = new BeanWithId();
- bean.setValue(3);
- UUID uuid = UUID.fromString("ac4877be-0c31-4458-a86e-0272efe1aaa8");
- bean.setId(uuid);
- Yaml yaml = new Yaml();
- String output = yaml.dumpAs(bean, Tag.MAP, DumperOptions.FlowStyle.BLOCK);
- String expected = Util.getLocalResource("issues/issue306-2.yaml");
- assertEquals(expected, output);
- }
+ @Test
+ public void dumpBean() {
+ BeanWithId bean = new BeanWithId();
+ bean.setValue(3);
+ UUID uuid = UUID.fromString("ac4877be-0c31-4458-a86e-0272efe1aaa8");
+ bean.setId(uuid);
+ Yaml yaml = new Yaml();
+ String output = yaml.dumpAs(bean, Tag.MAP, DumperOptions.FlowStyle.BLOCK);
+ String expected = Util.getLocalResource("issues/issue306-2.yaml");
+ assertEquals(expected, output);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue307/Blocks.java b/src/test/java/org/yaml/snakeyaml/issues/issue307/Blocks.java
new file mode 100644
index 00000000..23fec53a
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue307/Blocks.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue307;
+
+public class Blocks {
+
+ @OrderAnnotation(order = 3)
+ public int x;
+
+ @OrderAnnotation(order = 2)
+ public int y;
+
+ @OrderAnnotation(order = 1)
+ public int z;
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue307/CustomerBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue307/CustomerBean.java
new file mode 100644
index 00000000..e30b177b
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue307/CustomerBean.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue307;
+
+public class CustomerBean extends OrderBean {
+
+ @OrderAnnotation(order = -1)
+ String customerName;
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue307/OrderAnnotation.java b/src/test/java/org/yaml/snakeyaml/issues/issue307/OrderAnnotation.java
new file mode 100644
index 00000000..5d67d20b
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue307/OrderAnnotation.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue307;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface OrderAnnotation {
+
+ int order() default 0;
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue307/OrderBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue307/OrderBean.java
new file mode 100644
index 00000000..ddaa6193
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue307/OrderBean.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue307;
+
+public class OrderBean {
+
+ public String name;
+
+ @OrderAnnotation(order = 1)
+ public Blocks type;
+
+ @OrderAnnotation(order = 2)
+ public Integer age;
+
+ @OrderAnnotation(order = 3)
+ public String text;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Blocks getType() {
+ return type;
+ }
+
+ public void setType(Blocks type) {
+ this.type = type;
+ }
+
+ public Integer getAge() {
+ return age;
+ }
+
+ public void setAge(Integer age) {
+ this.age = age;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue307/OrderTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue307/OrderTest.java
new file mode 100644
index 00000000..0e0c6269
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue307/OrderTest.java
@@ -0,0 +1,104 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue307;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Comparator;
+import java.util.Set;
+import java.util.TreeSet;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Util;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.introspector.BeanAccess;
+import org.yaml.snakeyaml.introspector.Property;
+import org.yaml.snakeyaml.introspector.PropertyUtils;
+import org.yaml.snakeyaml.representer.Representer;
+
+public class OrderTest extends TestCase {
+
+ public void test_order() {
+ Representer representer = new Representer();
+ representer.setPropertyUtils(new OrderUtil());
+ Yaml yaml = new Yaml(representer);
+ String s = Util.getLocalResource("issues/issue307-order.yaml");
+ OrderBean orderBean = yaml.loadAs(s, OrderBean.class);
+ String dump = yaml.dump(orderBean);
+ // System.out.println(dump);
+ String str = "!!org.yaml.snakeyaml.issues.issue307.OrderBean\n" + "name: tian\n"
+ + "type: {z: 256, y: 255, x: 254}\n" + "age: 22\n" + "text: omit\n";
+ assertEquals(str, dump);
+ }
+
+ public void test_extend_order() {
+ Representer representer = new Representer();
+ representer.setPropertyUtils(new OrderUtil());
+ Yaml yaml = new Yaml(representer);
+ String s = Util.getLocalResource("issues/issue307-order.yaml");
+ CustomerBean orderBean2 = yaml.loadAs(s, CustomerBean.class);
+ orderBean2.setCustomerName("customer");
+ String dump = yaml.dump(orderBean2);
+ // System.out.println(dump);
+ String str = "!!org.yaml.snakeyaml.issues.issue307.CustomerBean\n" + "customerName: customer\n"
+ + "name: tian\n" + "type: {z: 256, y: 255, x: 254}\n" + "age: 22\n" + "text: omit\n";
+ assertEquals(str, dump);
+ }
+
+ public static class OrderUtil extends PropertyUtils {
+
+ @Override
+ protected Set<Property> createPropertySet(final Class<?> type, BeanAccess bAccess) {
+ Set<Property> properties = new TreeSet<>(new Comparator<Property>() {
+ @Override
+ public int compare(Property prop1, Property prop2) {
+ Integer order1 = getValue(prop1.getName(), type);
+ Integer order2 = getValue(prop2.getName(), type);
+ if (order1 == null) {
+ order1 = 0;
+ }
+ if (order2 == null) {
+ order2 = 0;
+ }
+ if (order1 < order2) {
+ return -1;
+ }
+ if (order1 > order2) {
+ return 1;
+ }
+ return prop1.getName().compareTo(prop2.getName());
+ }
+ });
+ properties.addAll(super.createPropertySet(type, bAccess));
+ return properties;
+ }
+
+ public Integer getValue(String name, Class<?> type) {
+ PropertyUtils propertyUtils = new PropertyUtils();
+ propertyUtils.setBeanAccess(BeanAccess.FIELD);
+ Property property = propertyUtils.getProperty(type, name);
+ Annotation annotation = property.getAnnotation(OrderAnnotation.class);
+ Integer invoke = null;
+ if (annotation != null) {
+ try {
+ Method method = annotation.annotationType().getDeclaredMethod("order");
+ invoke = (Integer) method.invoke(annotation, null);
+ } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ }
+ return invoke;
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue310/Option.java b/src/test/java/org/yaml/snakeyaml/issues/issue310/Option.java
index 9c0cddb4..c78efe21 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue310/Option.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue310/Option.java
@@ -1,34 +1,32 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue310;
public final class Option<T> {
- private final T value;
+ private final T value;
- public static <T> Option<T> valueOf(T v) {
- return new Option<T>(v);
- }
+ public static <T> Option<T> valueOf(T v) {
+ return new Option<T>(v);
+ }
- private Option(T v) {
- this.value = v;
- }
+ private Option(T v) {
+ this.value = v;
+ }
- public T getValue() {
- return value;
- }
+ public T getValue() {
+ return value;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue310/Person.java b/src/test/java/org/yaml/snakeyaml/issues/issue310/Person.java
index c18cde2c..5adf6299 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue310/Person.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue310/Person.java
@@ -1,46 +1,44 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue310;
public class Person {
- private final int id;
- private final String name;
- private final Option<Double> income;
+ private final int id;
+ private final String name;
+ private final Option<Double> income;
- public Person() {
- this(0, "", Option.valueOf(0.));
- }
+ public Person() {
+ this(0, "", Option.valueOf(0.));
+ }
- public Person(int id, String name, Option<Double> income) {
- this.id = id;
- this.name = name;
- this.income = income;
- }
+ public Person(int id, String name, Option<Double> income) {
+ this.id = id;
+ this.name = name;
+ this.income = income;
+ }
- public int getId() {
- return id;
- }
+ public int getId() {
+ return id;
+ }
- public String getName() {
- return name;
- }
+ public String getName() {
+ return name;
+ }
- public Option<Double> getIncome() {
- return income;
- }
+ public Option<Double> getIncome() {
+ return income;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue310/PropertyWithPrivateCostructorTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue310/PropertyWithPrivateCostructorTest.java
index cb527624..d84db4e8 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue310/PropertyWithPrivateCostructorTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue310/PropertyWithPrivateCostructorTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue310;
@@ -26,50 +24,51 @@ import org.yaml.snakeyaml.representer.Representer;
public class PropertyWithPrivateCostructorTest {
- public static class OptionRepresenter extends Representer {
+ public static class OptionRepresenter extends Representer {
- public OptionRepresenter() {
- this.representers.put(Option.class, new RepresentOption());
- }
+ public OptionRepresenter() {
+ this.representers.put(Option.class, new RepresentOption());
+ }
- private class RepresentOption implements Represent {
- public Node representData(Object data) {
- Option<?> opt = (Option<?>) data;
- return represent(opt.getValue());
- }
- }
+ private class RepresentOption implements Represent {
+ public Node representData(Object data) {
+ Option<?> opt = (Option<?>) data;
+ return represent(opt.getValue());
+ }
}
- @Test
- public void loadFromString() {
+ }
- String yamlStr = "id: 123\n" + "income: 123456.78\n" + "name: Neo Anderson";
+ @Test
+ public void loadFromString() {
- Person loadedPerson = yaml().loadAs(yamlStr, Person.class);
+ String yamlStr = "id: 123\n" + "income: 123456.78\n" + "name: Neo Anderson";
- assertEquals("id", loadedPerson.getId(), 123);
- assertEquals("name", loadedPerson.getName(), "Neo Anderson");
- assertEquals("income", loadedPerson.getIncome().getValue().doubleValue(), 123456.78, 0.);
- }
+ Person loadedPerson = yaml().loadAs(yamlStr, Person.class);
- @Test
- public void dumpNload() {
+ assertEquals("id", loadedPerson.getId(), 123);
+ assertEquals("name", loadedPerson.getName(), "Neo Anderson");
+ assertEquals("income", loadedPerson.getIncome().getValue().doubleValue(), 123456.78, 0.);
+ }
- Person person = new Person(123, "Neo Anderson", Option.valueOf(123456.78));
+ @Test
+ public void dumpNload() {
- String dump = yaml().dumpAsMap(person);
+ Person person = new Person(123, "Neo Anderson", Option.valueOf(123456.78));
- Person loadedPerson = yaml().loadAs(dump, Person.class);
+ String dump = yaml().dumpAsMap(person);
- assertEquals("id", loadedPerson.getId(), 123);
- assertEquals("name", loadedPerson.getName(), "Neo Anderson");
- assertEquals("income", loadedPerson.getIncome().getValue().doubleValue(), 123456.78, 0.);
- }
+ Person loadedPerson = yaml().loadAs(dump, Person.class);
- private Yaml yaml() {
- Yaml _yaml = new Yaml(new OptionRepresenter());
- _yaml.setBeanAccess(BeanAccess.FIELD);
- return _yaml;
- }
+ assertEquals("id", loadedPerson.getId(), 123);
+ assertEquals("name", loadedPerson.getName(), "Neo Anderson");
+ assertEquals("income", loadedPerson.getIncome().getValue().doubleValue(), 123456.78, 0.);
+ }
+
+ private Yaml yaml() {
+ Yaml _yaml = new Yaml(new OptionRepresenter());
+ _yaml.setBeanAccess(BeanAccess.FIELD);
+ return _yaml;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue311/BeanWithEnum.java b/src/test/java/org/yaml/snakeyaml/issues/issue311/BeanWithEnum.java
index 7bd5e2cf..18888336 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue311/BeanWithEnum.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue311/BeanWithEnum.java
@@ -1,57 +1,55 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue311;
public class BeanWithEnum {
- private boolean boolField;
- private String name;
- private BooleanEnum enumField;
+ private boolean boolField;
+ private String name;
+ private BooleanEnum enumField;
- public BeanWithEnum() {
- this(true, "", BooleanEnum.UNKNOWN);
- }
+ public BeanWithEnum() {
+ this(true, "", BooleanEnum.UNKNOWN);
+ }
- public BeanWithEnum(boolean boolField, String name, BooleanEnum enumField) {
- this.boolField = boolField;
- this.name = name;
- this.enumField = enumField;
- }
+ public BeanWithEnum(boolean boolField, String name, BooleanEnum enumField) {
+ this.boolField = boolField;
+ this.name = name;
+ this.enumField = enumField;
+ }
- public boolean isBoolField() {
- return boolField;
- }
+ public boolean isBoolField() {
+ return boolField;
+ }
- public String getName() {
- return name;
- }
+ public String getName() {
+ return name;
+ }
- public BooleanEnum getEnumField() {
- return enumField;
- }
+ public BooleanEnum getEnumField() {
+ return enumField;
+ }
- public void setBoolField(boolean boolField) {
- this.boolField = boolField;
- }
+ public void setBoolField(boolean boolField) {
+ this.boolField = boolField;
+ }
- public void setName(String name) {
- this.name = name;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public void setEnumField(BooleanEnum enumField) {
- this.enumField = enumField;
- }
+ public void setEnumField(BooleanEnum enumField) {
+ this.enumField = enumField;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue311/BooleanEnum.java b/src/test/java/org/yaml/snakeyaml/issues/issue311/BooleanEnum.java
index f37aabd5..8b85ae29 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue311/BooleanEnum.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue311/BooleanEnum.java
@@ -1,45 +1,44 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue311;
public enum BooleanEnum {
- TRUE(true), FALSE(false), UNKNOWN();
+ TRUE(true), FALSE(false), UNKNOWN();
- private boolean boolValue;
- private boolean defined;
+ private final boolean boolValue;
+ private final boolean defined;
- BooleanEnum(boolean p) {
- boolValue = p;
- defined = true;
- }
+ BooleanEnum(boolean p) {
+ boolValue = p;
+ defined = true;
+ }
- BooleanEnum() {
- boolValue = false;
- defined = false;
- }
+ BooleanEnum() {
+ boolValue = false;
+ defined = false;
+ }
- boolean getBoolValue() {
- if (!defined)
- throw new IllegalArgumentException("Undefined has no value");
- else
- return boolValue;
+ boolean getBoolValue() {
+ if (!defined) {
+ throw new IllegalArgumentException("Undefined has no value");
+ } else {
+ return boolValue;
}
+ }
- boolean isDefined() {
- return defined;
- }
-} \ No newline at end of file
+ boolean isDefined() {
+ return defined;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue311/BooleanEnumTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue311/BooleanEnumTest.java
index 3f0107ac..205dd060 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue311/BooleanEnumTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue311/BooleanEnumTest.java
@@ -1,20 +1,20 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue311;
+import static org.junit.Assert.assertEquals;
+
import org.junit.Test;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
@@ -26,87 +26,92 @@ import org.yaml.snakeyaml.nodes.Tag;
import org.yaml.snakeyaml.representer.Represent;
import org.yaml.snakeyaml.representer.Representer;
-import static org.junit.Assert.assertEquals;
-
public class BooleanEnumTest {
- @Test
- public void loadEnum() {
-
- Yaml yaml = new Yaml(new MyConstructor(), new MyRepresenter());
- BeanWithEnum parsed = yaml.loadAs("{boolField: true, enumField: true, name: '10'}", BeanWithEnum.class);
- //System.out.println(parsed.getEnumField());
- assertEquals(BooleanEnum.TRUE, parsed.getEnumField());
- assertEquals("10", parsed.getName());
+ @Test
+ public void loadEnum() {
+
+ Yaml yaml = new Yaml(new MyConstructor(), new MyRepresenter());
+ BeanWithEnum parsed =
+ yaml.loadAs("{boolField: true, enumField: true, name: '10'}", BeanWithEnum.class);
+ // System.out.println(parsed.getEnumField());
+ assertEquals(BooleanEnum.TRUE, parsed.getEnumField());
+ assertEquals("10", parsed.getName());
+ }
+
+ @Test
+ public void loadEnumUndefined() {
+
+ Yaml yaml = new Yaml(new MyConstructor(), new MyRepresenter());
+ BeanWithEnum parsed =
+ yaml.loadAs("{boolField: true, enumField: nonsense, name: bar}", BeanWithEnum.class);
+ // System.out.println(parsed.getEnumField());
+ assertEquals(BooleanEnum.UNKNOWN, parsed.getEnumField());
+ assertEquals("bar", parsed.getName());
+ }
+
+ @Test
+ public void dumpEnum() {
+
+ BeanWithEnum bean = new BeanWithEnum(true, "10", BooleanEnum.TRUE);
+ Yaml yaml = new Yaml(new MyConstructor(), new MyRepresenter());
+ String output = yaml.dumpAs(bean, Tag.MAP, DumperOptions.FlowStyle.FLOW);
+ assertEquals("{boolField: true, enumField: 'true', name: '10'}\n", output);
+ }
+
+ class MyRepresenter extends Representer {
+
+ public MyRepresenter() {
+ this.representers.put(BooleanEnum.class, new RepresentEnum());
}
- @Test
- public void loadEnumUndefined() {
-
- Yaml yaml = new Yaml(new MyConstructor(), new MyRepresenter());
- BeanWithEnum parsed = yaml.loadAs("{boolField: true, enumField: nonsense, name: bar}", BeanWithEnum.class);
- //System.out.println(parsed.getEnumField());
- assertEquals(BooleanEnum.UNKNOWN, parsed.getEnumField());
- assertEquals("bar", parsed.getName());
- }
+ private class RepresentEnum implements Represent {
- @Test
- public void dumpEnum() {
+ public Node representData(Object data) {
+ BooleanEnum myEnum = (BooleanEnum) data;
+ String value;
+ switch (myEnum) {
+ case TRUE:
+ value = "true";
+ break;
- BeanWithEnum bean = new BeanWithEnum(true, "10", BooleanEnum.TRUE);
- Yaml yaml = new Yaml(new MyConstructor(), new MyRepresenter());
- String output = yaml.dumpAs(bean, Tag.MAP, DumperOptions.FlowStyle.FLOW);
- assertEquals("{boolField: true, enumField: 'true', name: '10'}\n", output);
- }
+ case FALSE:
+ value = "false";
+ break;
- class MyRepresenter extends Representer {
- public MyRepresenter() {
- this.representers.put(BooleanEnum.class, new RepresentEnum());
- }
+ case UNKNOWN:
+ value = "unknown";
+ break;
- private class RepresentEnum implements Represent {
- public Node representData(Object data) {
- BooleanEnum myEnum = (BooleanEnum) data;
- String value;
- switch (myEnum) {
- case TRUE:
- value = "true";
- break;
-
- case FALSE:
- value = "false";
- break;
-
- case UNKNOWN:
- value = "unknown";
- break;
-
- default:
- throw new IllegalArgumentException();
- }
- return representScalar(Tag.STR, value);
- }
+ default:
+ throw new IllegalArgumentException();
}
+ return representScalar(Tag.STR, value);
+ }
}
+ }
- class MyConstructor extends Constructor {
- public MyConstructor() {
- this.yamlClassConstructors.put(NodeId.scalar, new ConstructEnum());
- }
+ class MyConstructor extends Constructor {
+
+ public MyConstructor() {
+ this.yamlClassConstructors.put(NodeId.scalar, new ConstructEnum());
+ }
- private class ConstructEnum extends ConstructScalar {
- public Object construct(Node node) {
- if (node.getType().equals(BooleanEnum.class)) {
- String val = (String) constructScalar((ScalarNode) node);
- if ("true".equals(val)) {
- return BooleanEnum.TRUE;
- } else if ("false".equals(val)) {
- return BooleanEnum.FALSE;
- } else
- return BooleanEnum.UNKNOWN;
- }
- return super.construct(node);
- }
+ private class ConstructEnum extends ConstructScalar {
+
+ public Object construct(Node node) {
+ if (node.getType().equals(BooleanEnum.class)) {
+ String val = constructScalar((ScalarNode) node);
+ if ("true".equals(val)) {
+ return BooleanEnum.TRUE;
+ } else if ("false".equals(val)) {
+ return BooleanEnum.FALSE;
+ } else {
+ return BooleanEnum.UNKNOWN;
+ }
}
+ return super.construct(node);
+ }
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue318/ContextClassLoaderTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue318/ContextClassLoaderTest.java
index 82f29ee7..a9ae9dca 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue318/ContextClassLoaderTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue318/ContextClassLoaderTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue318;
@@ -27,7 +25,6 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Properties;
-
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -35,102 +32,116 @@ import org.yaml.snakeyaml.Yaml;
public class ContextClassLoaderTest {
- static public class DomainBean {
-
- private int value = 0;
-
- public void setValue(int value) {
- this.value = value;
- }
-
- public int getValue() {
- return value;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + value;
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- DomainBean other = (DomainBean) obj;
- if (value != other.value)
- return false;
- return true;
- }
+ static public class DomainBean {
+
+ private int value = 0;
+
+ public void setValue(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + value;
+ return result;
}
- private URLClassLoader yamlCL;
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ DomainBean other = (DomainBean) obj;
+ return value == other.value;
+ }
- @Before
- public void before() throws MalformedURLException {
- Properties classpath = new Properties();
- InputStream cpProperties = getClass().getResourceAsStream("classpath.properties");
- try {
- classpath.load(cpProperties);
- } catch (IOException e2) {
- fail(e2.getLocalizedMessage());
- }
+ }
- File runtimeClassesDir = new File(classpath.getProperty("runtime_classes_dir"));
+ private URLClassLoader yamlCL;
- yamlCL = new URLClassLoader(new URL[] { runtimeClassesDir.toURI().toURL() }, null);
+ @Before
+ public void before() throws MalformedURLException {
+ Properties classpath = new Properties();
+ InputStream cpProperties = getClass().getResourceAsStream("classpath.properties");
+ try {
+ classpath.load(cpProperties);
+ } catch (IOException e2) {
+ fail(e2.getLocalizedMessage());
}
- @After
- public void after() {
- // URLClassLoader.close is @since 1.7
- // if (yamlCL != null) {
- // try {
- // yamlCL.close();
- // } catch (IOException e) {
- // e.printStackTrace();
- // } finally {
+ File runtimeClassesDir = new File(classpath.getProperty("runtime_classes_dir"));
+
+ ClassLoader noSnakeYAMLClassLoader =
+ new ClassLoader(Thread.currentThread().getContextClassLoader()) {
+
+ @Override
+ protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
+ if (!name.startsWith("org.yaml.snakeyaml")) {
+ return super.loadClass(name, resolve);
+ }
+ throw new ClassNotFoundException("Can't load SnakeYaml classes by this ClassLoader");
+ }
+
+ };
+
+ yamlCL =
+ new URLClassLoader(new URL[] {runtimeClassesDir.toURI().toURL()}, noSnakeYAMLClassLoader);
+ }
+
+ @After
+ public void after() {
+ if (yamlCL != null) {
+ try {
+ yamlCL.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
yamlCL = null;
- // }
- // }
+ }
}
+ }
- @Test(expected = ClassNotFoundException.class)
- public void expectNoDomainClassInYamlCL() throws ClassNotFoundException {
- yamlCL.loadClass(DomainBean.class.getName());
- }
+ @Test(expected = ClassNotFoundException.class)
+ public void expectNoDomainClassInYamlCL() throws ClassNotFoundException {
+ yamlCL.loadClass(DomainBean.class.getName());
+ }
- @Test
- public void yamlClassInYAMLCL() throws ClassNotFoundException {
- yamlCL.loadClass(Yaml.class.getName());
- }
+ @Test
+ public void yamlClassInYAMLCL() throws ClassNotFoundException {
+ yamlCL.loadClass(Yaml.class.getName());
+ }
- @Test
- public void domainInDifferentConstructor() throws ClassNotFoundException,
- InstantiationException, IllegalAccessException, NoSuchMethodException,
- SecurityException, IllegalArgumentException, InvocationTargetException {
+ @Test
+ public void domainInDifferentConstructor() throws ClassNotFoundException, InstantiationException,
+ IllegalAccessException, NoSuchMethodException, SecurityException, IllegalArgumentException,
+ InvocationTargetException {
- Class<?> yamlClass = yamlCL.loadClass(Yaml.class.getName());
+ Class<?> yamlClass = yamlCL.loadClass(Yaml.class.getName());
- DomainBean bean = new DomainBean();
- bean.setValue(13);
+ DomainBean bean = new DomainBean();
+ bean.setValue(13);
- Object yaml = yamlClass.newInstance();
+ Object yaml = yamlClass.newInstance();
- Method dumpMethod = yaml.getClass().getMethod("dump", new Class<?>[] { Object.class });
- String dump = dumpMethod.invoke(yaml, bean).toString();
+ Method dumpMethod = yaml.getClass().getMethod("dump", Object.class);
+ String dump = dumpMethod.invoke(yaml, bean).toString();
- Method loadMethod = yaml.getClass().getMethod("load", new Class<?>[] { String.class });
- DomainBean object = (DomainBean) loadMethod.invoke(yaml, dump);
+ Method loadMethod = yaml.getClass().getMethod("load", String.class);
+ DomainBean object = (DomainBean) loadMethod.invoke(yaml, dump);
- assertEquals(bean, object);
- }
+ assertEquals(bean, object);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue322_382/PropertyWithoutGetterTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue322_382/PropertyWithoutGetterTest.java
new file mode 100644
index 00000000..51dca53e
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue322_382/PropertyWithoutGetterTest.java
@@ -0,0 +1,111 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue322_382;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Test;
+import org.yaml.snakeyaml.TypeDescription;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.constructor.Constructor;
+
+public class PropertyWithoutGetterTest {
+
+ @Test
+ public void testPublicFooWithPublicFields() {
+ Constructor constructor = new Constructor();
+ constructor.addTypeDescription(new TypeDescription(PublicFooWithPublicFields.class, "!foo"));
+ Yaml yaml = new Yaml(constructor);
+
+ PublicFooWithPublicFields foo =
+ yaml.loadAs("!foo\ncountryCodes: [NZ, NO]\nsome: NO", PublicFooWithPublicFields.class);
+
+ assertEquals(2, foo.countryCodes.size());
+ assertEquals("NZ", foo.countryCodes.get(0));
+ assertEquals("The type (String) must be taken from the field.", "NO", foo.countryCodes.get(1));
+ assertEquals("NO", foo.some);
+ }
+
+ @Test
+ public void testStaticFooWithoutGetter() {
+ Constructor constructor = new Constructor();
+ constructor.addTypeDescription(new TypeDescription(StaticFooWithoutGetter.class, "!foo"));
+ Yaml yaml = new Yaml(constructor);
+
+ StaticFooWithoutGetter foo =
+ yaml.loadAs("!foo\ncountryCodes: [NZ, NO]\nsome: NO", StaticFooWithoutGetter.class);
+
+ assertEquals(2, foo.countryCodes.size());
+ assertEquals("NZ", foo.countryCodes.get(0));
+ assertEquals("The type List(String) must be taken from the setter.", "NO",
+ foo.countryCodes.get(1));
+ assertEquals("NO", foo.some);
+ }
+
+ @Test
+ public void testStaticFooWithGetter() {
+ Constructor constructor = new Constructor();
+ constructor.addTypeDescription(new TypeDescription(StaticFooWithGetter.class, "!foo"));
+ Yaml yaml = new Yaml(constructor);
+
+ StaticFooWithGetter foo =
+ yaml.loadAs("!foo\ncountryCodes: [NZ, NO]\nsome: NO", StaticFooWithGetter.class);
+
+ assertEquals(2, foo.countryCodes.size());
+ assertEquals("NZ", foo.countryCodes.get(0));
+ assertEquals("The type List(String) must be taken from the getter.", "NO",
+ foo.countryCodes.get(1));
+ assertEquals("NO", foo.some);
+ }
+
+ public static class StaticFooWithoutGetter {
+
+ private List<String> countryCodes = new ArrayList<String>();
+ private String some;
+
+ public void setCountryCodes(List<String> countryCodes) {
+ for (Object countryCode : countryCodes) {
+ // System.out.println(countryCode.getClass().getName());
+ }
+ this.countryCodes = countryCodes;
+ }
+
+ public void setSome(String sime) {
+ this.some = sime;
+ }
+ }
+
+ public static class StaticFooWithGetter {
+
+ private List<String> countryCodes = new ArrayList<String>();
+ private String some;
+
+ public List<String> getCountryCodes() {
+ return countryCodes;
+ }
+
+ public void setCountryCodes(List<String> countryCodes) {
+ for (Object countryCode : countryCodes) {
+ // System.out.println(countryCode.getClass().getName());
+ }
+ this.countryCodes = countryCodes;
+ }
+
+ public void setSome(String sime) {
+ this.some = sime;
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue322_382/PublicFooWithPublicFields.java b/src/test/java/org/yaml/snakeyaml/issues/issue322_382/PublicFooWithPublicFields.java
new file mode 100644
index 00000000..9b2a7e5a
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue322_382/PublicFooWithPublicFields.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue322_382;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class PublicFooWithPublicFields {
+
+ public List<String> countryCodes = new ArrayList<String>();
+ public String some;
+
+ public void setCountryCodes(List<String> countryCodes) {
+ for (Object countryCode : countryCodes) {
+ System.out.println(countryCode.getClass().getName());
+ }
+ this.countryCodes = countryCodes;
+ }
+
+ public void setSome(String sime) {
+ this.some = sime;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue332/Data.java b/src/test/java/org/yaml/snakeyaml/issues/issue332/Data.java
index 56eeb4c7..28cb08e8 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue332/Data.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue332/Data.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue332;
@@ -19,52 +17,48 @@ import java.beans.ConstructorProperties;
import java.math.BigDecimal;
public class Data {
- private String label;
- private String unit;
+ private String label;
- private BigDecimal value;
+ private String unit;
- public BigDecimal getValue() {
- return value;
- }
+ private BigDecimal value;
- public String getLabel() {
- return label;
- }
+ public BigDecimal getValue() {
+ return value;
+ }
- @ConstructorProperties({"label", "value", "unit"})
- public Data(String label, BigDecimal value, String unit) {
- this.label = label;
- this.value = value;
- this.unit = unit;
- }
+ public String getLabel() {
+ return label;
+ }
-// public void setLabel(String label) {
-// this.label = label;
-// }
-//
-// public void setUnit(String unit) {
-// this.unit = unit;
-// }
-//
-// public void setValue(BigDecimal value) {
-// this.value = value;
-// }
+ @ConstructorProperties({"label", "value", "unit"})
+ public Data(String label, BigDecimal value, String unit) {
+ this.label = label;
+ this.value = value;
+ this.unit = unit;
+ }
- public String getUnit() {
- return unit;
- }
+ // public void setLabel(String label) {
+ // this.label = label;
+ // }
+ //
+ // public void setUnit(String unit) {
+ // this.unit = unit;
+ // }
+ //
+ // public void setValue(BigDecimal value) {
+ // this.value = value;
+ // }
- public Data() {
- }
+ public String getUnit() {
+ return unit;
+ }
- @Override
- public String toString() {
- return "Data{" +
- "label='" + label + '\'' +
- ", unit='" + unit + '\'' +
- ", value=" + value +
- '}';
- }
+ public Data() {}
+
+ @Override
+ public String toString() {
+ return "Data{" + "label='" + label + '\'' + ", unit='" + unit + '\'' + ", value=" + value + '}';
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue332/DataTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue332/DataTest.java
index 6b6098df..55a87fd0 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue332/DataTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue332/DataTest.java
@@ -1,39 +1,38 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue332;
-import org.junit.Test;
-import org.yaml.snakeyaml.Yaml;
+import static org.junit.Assert.assertEquals;
import java.math.BigDecimal;
-
-import static org.junit.Assert.assertEquals;
+import org.junit.Test;
+import org.yaml.snakeyaml.Yaml;
public class DataTest {
- @Test
- public void testGetUnit() throws Exception {
- Data data = new Data("Voltage", BigDecimal.TEN, "V");
- assertEquals("!!org.yaml.snakeyaml.issues.issue332.Data {}", new Yaml().dump(data).trim());
- //TODO assertEquals("!!org.yaml.snakeyaml.issues.issue332.Data {label: Voltage, unit: V, value: !!float '10'}", new Yaml().dump(data).trim());
- }
+ @Test
+ public void testGetUnit() throws Exception {
+ Data data = new Data("Voltage", BigDecimal.TEN, "V");
+ assertEquals("!!org.yaml.snakeyaml.issues.issue332.Data {}", new Yaml().dump(data).trim());
+ // TODO assertEquals("!!org.yaml.snakeyaml.issues.issue332.Data {label: Voltage, unit: V, value:
+ // !!float '10'}", new Yaml().dump(data).trim());
+ }
- @Test
- public void testLoad() throws Exception {
- String doc = "!!org.yaml.snakeyaml.issues.issue332.Data [Voltage, 10, volts]";
- assertEquals("Data{label='Voltage', unit='volts', value=10}", (new Yaml().load(doc)).toString());
- }
-} \ No newline at end of file
+ @Test
+ public void testLoad() throws Exception {
+ String doc = "!!org.yaml.snakeyaml.issues.issue332.Data [Voltage, 10, volts]";
+ assertEquals("Data{label='Voltage', unit='volts', value=10}",
+ (new Yaml().load(doc)).toString());
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue335/JavaLangObjectTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue335/JavaLangObjectTest.java
new file mode 100644
index 00000000..0d97c6ef
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue335/JavaLangObjectTest.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue335;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.junit.Test;
+import org.yaml.snakeyaml.Yaml;
+
+public class JavaLangObjectTest {
+
+ @Test
+ public void testLoadObjectAsMapping() throws Exception {
+ Object obj = new Yaml().load("!!java.lang.Object {}");
+ assertEquals(Object.class, obj.getClass());
+ }
+
+ @Test
+ public void testLoadObjectAsScalar() throws Exception {
+ try {
+ new Yaml().load("!!java.lang.Object");
+ fail("Object has no single argument constructor");
+ } catch (Exception e) {
+ assertTrue(e.getMessage().contains("No single argument constructor found"));
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue337/DuplicateKeyTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue337/DuplicateKeyTest.java
new file mode 100644
index 00000000..c5d88945
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue337/DuplicateKeyTest.java
@@ -0,0 +1,176 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue337;
+
+import static junit.framework.TestCase.assertTrue;
+import static org.junit.Assert.assertEquals;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+import org.junit.Test;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Util;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.constructor.DuplicateKeyException;
+
+public class DuplicateKeyTest {
+
+ public static class MapProvider<K, V> {
+
+ private Map<K, V> map = new LinkedHashMap<K, V>();
+
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Map<K, V> getMap() {
+ return map;
+ }
+
+ public void setMap(Map<K, V> map) {
+ this.map = map;
+ }
+
+ @SuppressWarnings("rawtypes")
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof MapProvider) {
+ return map.equals(((MapProvider) obj).getMap());
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ public int hashCode() {
+ return map.hashCode();
+ }
+ }
+
+ // test guff
+ public static class FooEntry {
+
+ private String id;
+ private String url;
+
+ public FooEntry() {}
+
+ public FooEntry(String id, String url) {
+ this.id = id;
+ this.url = url;
+ }
+
+ public String getUrl() {
+ return this.url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public String getId() {
+ return this.id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ }
+
+ @Test
+ public void defaultConfigurationNoErrorsWithDuplicates() {
+ String input = Util.getLocalResource("issues/issue337-duplicate-keys.yaml");
+ Yaml yaml = new Yaml();
+ MapProvider<String, FooEntry> testdata = yaml.loadAs(input, MapProvider.class);
+ assertEquals("has-dup-keys", testdata.getName());
+ assertEquals(1, testdata.getMap().size());
+ assertEquals("daaf8911-36e4-4e92-86ea-eb77ac2c1e91", testdata.getMap().get("someitem").getId());
+ }
+
+ @Test
+ public void errorOnDuplicateKeys() {
+ String input = Util.getLocalResource("issues/issue337-duplicate-keys.yaml");
+ LoaderOptions lc = new LoaderOptions();
+ lc.setAllowDuplicateKeys(false);
+ Yaml yaml = new Yaml(lc);
+ try {
+ yaml.loadAs(input, MapProvider.class);
+ } catch (DuplicateKeyException e) {
+ assertTrue(e.getMessage(), e.getMessage().contains("found duplicate key someitem"));
+ assertTrue(e.getMessage(), e.getMessage().contains("line 3, column 3"));
+ }
+ }
+
+ @Test
+ public void errorOnDuplicateKeysInJavaBeanProperty() {
+ String input = Util.getLocalResource("issues/issue337-duplicate-keys-javabean-property.yaml");
+ LoaderOptions lc = new LoaderOptions();
+ lc.setAllowDuplicateKeys(false);
+ Yaml yaml = new Yaml(lc);
+ try {
+ MapProvider<String, FooEntry> testdata = yaml.loadAs(input, MapProvider.class);
+ assertEquals("has-dup-keys", testdata.getName());
+ } catch (DuplicateKeyException e) {
+ assertTrue(e.getMessage(), e.getMessage().contains("found duplicate key name"));
+ assertTrue(e.getMessage(), e.getMessage().contains("line 9, column 1"));
+ }
+ }
+
+ @Test
+ public void acceptDuplicateKeysInJavaBeanProperty() {
+ String input = Util.getLocalResource("issues/issue337-duplicate-keys-javabean-property.yaml");
+ LoaderOptions lc = new LoaderOptions();
+ lc.setAllowDuplicateKeys(true);
+ Yaml yaml = new Yaml(lc);
+ MapProvider<String, FooEntry> testdata = yaml.loadAs(input, MapProvider.class);
+ assertEquals("has-dup-keys", testdata.getName());
+ }
+
+ @Test
+ public void defaultConfigUniqueKeysWorks() {
+ String input = Util.getLocalResource("issues/issue337-duplicate-keys-no-dups.yaml");
+ Yaml yaml = new Yaml();
+ MapProvider<String, FooEntry> testdata = yaml.loadAs(input, MapProvider.class);
+ assertEquals("no-dups-test", testdata.getName());
+ assertEquals(3, testdata.getMap().size());
+ assertEquals("aead4b16-4b61-4eff-b241-6eff26eaa778",
+ testdata.getMap().get("someitem1").getId());
+ assertEquals("daaf8911-36e4-4e92-86ea-eb77ac2c1e91",
+ testdata.getMap().get("someitem3").getId());
+ }
+
+ @Test
+ public void noDuplicatesConfigMutablePostChange() {
+ String input = Util.getLocalResource("issues/issue337-duplicate-keys-no-dups.yaml");
+ LoaderOptions lc = new LoaderOptions();
+ lc.setAllowDuplicateKeys(false);
+ Yaml yaml = new Yaml(lc);
+ MapProvider<String, FooEntry> testdata = yaml.loadAs(input, MapProvider.class);
+ assertEquals("no-dups-test", testdata.getName());
+ assertEquals(3, testdata.getMap().size());
+ assertEquals("aead4b16-4b61-4eff-b241-6eff26eaa778",
+ testdata.getMap().get("someitem1").getId());
+ assertEquals("daaf8911-36e4-4e92-86ea-eb77ac2c1e91",
+ testdata.getMap().get("someitem3").getId());
+ testdata.getMap().put("someitem1", new FooEntry("AnotherEntry", "AnotherURL"));
+ }
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue341/MultiBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue341/MultiBean.java
new file mode 100644
index 00000000..131ef5a4
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue341/MultiBean.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue341;
+
+public class MultiBean {
+
+ private Long id;
+ private String name;
+
+ public MultiBean(Long id, String name) {
+ this.id = id;
+ this.name = name;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue341/MultiRepresenter.java b/src/test/java/org/yaml/snakeyaml/issues/issue341/MultiRepresenter.java
new file mode 100644
index 00000000..06efd876
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue341/MultiRepresenter.java
@@ -0,0 +1,31 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue341;
+
+import org.yaml.snakeyaml.nodes.Node;
+import org.yaml.snakeyaml.representer.Representer;
+
+class MultiRepresenter extends Representer {
+
+ public MultiRepresenter() {
+ multiRepresenters.put(null, new RepresentAsSring());
+ }
+
+ private class RepresentAsSring extends RepresentString {
+
+ public Node representData(Object data) {
+ return super.representData(data.toString());
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue341/MultiRepresenterTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue341/MultiRepresenterTest.java
new file mode 100644
index 00000000..60202c09
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue341/MultiRepresenterTest.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue341;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+import org.yaml.snakeyaml.Yaml;
+
+public class MultiRepresenterTest {
+
+ @Test
+ public void testLoadObjectAsMapping() throws Exception {
+ String dump = new Yaml(new MultiRepresenter()).dump(new MultiBean(17L, "foo"));
+ assertTrue(dump.startsWith("org.yaml.snakeyaml.issues.issue341.MultiBean@"));
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue348/MultiLevelImmutableTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue348/MultiLevelImmutableTest.java
new file mode 100644
index 00000000..accc8f75
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue348/MultiLevelImmutableTest.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue348;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+
+import java.util.List;
+import java.util.Map;
+import org.junit.Test;
+import org.yaml.snakeyaml.Util;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.issues.issue348.model.Bar;
+import org.yaml.snakeyaml.issues.issue348.model.Baz;
+import org.yaml.snakeyaml.issues.issue348.model.Foo;
+
+public class MultiLevelImmutableTest {
+
+ @Test
+ public void testUnexpectedRecursive() {
+ Yaml yaml = new Yaml();
+ String data = Util.getLocalResource("issues/issue348.yaml");
+ Map<?, ?> loadedMap = yaml.loadAs(data, Map.class);
+
+ for (Map.Entry<?, ?> entry : loadedMap.entrySet()) {
+ assertThat(entry.getValue(), instanceOf(List.class));
+ }
+
+ Object foo = ((List) loadedMap.get("foo")).get(0);
+ Object bar = ((List) loadedMap.get("bar")).get(0);
+ Object baz = ((List) loadedMap.get("baz")).get(0);
+ assertThat(foo, instanceOf(Foo.class));
+ assertThat(bar, instanceOf(Bar.class));
+ assertThat(baz, instanceOf(Baz.class));
+
+ assertEquals(foo, ((Bar) bar).getFoo());
+ assertEquals(bar, ((Baz) baz).getBar());
+ assertEquals("foo", ((Foo) foo).getFoo());
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue348/model/Bar.java b/src/test/java/org/yaml/snakeyaml/issues/issue348/model/Bar.java
new file mode 100644
index 00000000..dd6db14a
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue348/model/Bar.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue348.model;
+
+public class Bar {
+
+ private Foo foo;
+
+ public Bar() {}
+
+ public Bar(Foo foo) {
+ this.foo = foo;
+ }
+
+ public Foo getFoo() {
+ return foo;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue348/model/Baz.java b/src/test/java/org/yaml/snakeyaml/issues/issue348/model/Baz.java
new file mode 100644
index 00000000..8ddade2a
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue348/model/Baz.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue348.model;
+
+public class Baz {
+
+ private Bar bar;
+
+ public Baz() {}
+
+ public Baz(Bar bar) {
+ this.bar = bar;
+ }
+
+ public Bar getBar() {
+ return bar;
+ }
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue348/model/Foo.java b/src/test/java/org/yaml/snakeyaml/issues/issue348/model/Foo.java
new file mode 100644
index 00000000..f95b348a
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue348/model/Foo.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue348.model;
+
+public class Foo {
+
+ private String foo;
+
+ public Foo() {}
+
+ public Foo(String str) {
+ this.foo = str;
+ }
+
+ public String getFoo() {
+ return foo;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue349/YamlBase64BinaryTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue349/YamlBase64BinaryTest.java
new file mode 100644
index 00000000..3185cb0c
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue349/YamlBase64BinaryTest.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue349;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Map;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+
+public class YamlBase64BinaryTest extends TestCase {
+
+ public void testLocalBinaryTags() throws IOException {
+ String[] names = {"1", "2", "3"};
+ for (String name : names) {
+ toBeTested(name);
+ }
+ }
+
+ public void toBeTested(String name) throws IOException {
+ Yaml yaml = new Yaml();
+ InputStream inputStream =
+ YamlBase64BinaryTest.class.getResourceAsStream("/issues/issue349-" + name + ".yaml");
+ Map<String, Object> bean = yaml.load(inputStream);
+ byte[] jpeg = (byte[]) bean.get("picture");
+ assertEquals(65, jpeg.length);
+ inputStream.close();
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue351/MergedOrderTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue351/MergedOrderTest.java
new file mode 100644
index 00000000..b9400757
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue351/MergedOrderTest.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue351;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertThat;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Map;
+import org.junit.Test;
+import org.yaml.snakeyaml.Yaml;
+
+public class MergedOrderTest {
+
+ @SuppressWarnings("rawtypes")
+ @Test
+ public void mergedLinkedMapOrder() throws IOException {
+ Yaml yaml = new Yaml();
+ InputStream inputStream = MergedOrderTest.class.getResourceAsStream("/issues/issue351_1.yaml");
+ Map<?, ?> bean = yaml.loadAs(inputStream, Map.class);
+
+ Object first = bean.get("prize_cashBack_fixture");
+ Object second = bean.get("prize_cashBack_sendEmail_fixture");
+
+ assertThat(first, instanceOf(Map.class));
+ assertThat(second, instanceOf(Map.class));
+
+ assertArrayEquals(((Map) first).entrySet().toArray(), ((Map) second).entrySet().toArray());
+
+ inputStream.close();
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue354/PunctuationInTheBeginningTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue354/PunctuationInTheBeginningTest.java
new file mode 100644
index 00000000..6aaa7269
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue354/PunctuationInTheBeginningTest.java
@@ -0,0 +1,38 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue354;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.util.Map;
+import org.junit.Test;
+import org.yaml.snakeyaml.Util;
+import org.yaml.snakeyaml.Yaml;
+
+/**
+ * The test does not fix anything. It just proves that SnakeYAML works as it should according to the
+ * spec 1.1
+ */
+public class PunctuationInTheBeginningTest {
+
+ @Test
+ public void testBacktickAndAtSign() throws IOException {
+ String input = Util.getLocalResource("issues/issue354.yaml");
+ Yaml yaml = new Yaml();
+ Map<String, Object> bean = yaml.load(input);
+ assertEquals("This is\n`a literal\n", bean.get("foo"));
+ assertEquals("And\n@this\n", bean.get("bar"));
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue358/UnexpectedIndentTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue358/UnexpectedIndentTest.java
new file mode 100644
index 00000000..74cc4104
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue358/UnexpectedIndentTest.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue358;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.junit.Test;
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.error.YAMLException;
+
+public class UnexpectedIndentTest {
+
+ @Test
+ public void testIndicatorIndentMuchSmaller() {
+ check(4, 6); // standard
+ check(4, 5); // ugly, but acceptable, because the YAML will be valid
+ try {
+ check(4, 4);
+ fail("Invalid indent may cause invalid YAML");
+ } catch (YAMLException e) {
+ assertEquals("Indicator indent must be smaller then indent.", e.getMessage());
+ }
+ try {
+ check(6, 4);
+ fail("Invalid indent may cause invalid YAML");
+ } catch (YAMLException e) {
+ assertEquals("Indicator indent must be smaller then indent.", e.getMessage());
+ }
+ }
+
+ private void check(int indicatorIndent, int indent) {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ options.setIndicatorIndent(indicatorIndent);
+ options.setIndent(indent);
+ Map<String, Object> map = create();
+ String dumped = new Yaml(options).dump(map);
+ // System.out.println(dumped);
+ Map<String, Object> parsed = new Yaml().load(dumped);
+ assertEquals(map, parsed);
+ }
+
+ private Map<String, Object> create() {
+ Map<String, Object> map = new HashMap<String, Object>();
+ List<Map<String, String>> list = new ArrayList<Map<String, String>>();
+ Map<String, String> member1 = new HashMap<String, String>();
+ member1.put("db_1", "ds");
+ member1.put("name", "asd");
+ list.add(member1);
+ Map<String, String> member2 = new HashMap<String, String>();
+ member2.put("db_2", "daas");
+ member2.put("name", "adas");
+ list.add(member2);
+ map.put("some", list);
+ return map;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue373/ModelMapIntegerBigdecimal.java b/src/test/java/org/yaml/snakeyaml/issues/issue373/ModelMapIntegerBigdecimal.java
new file mode 100644
index 00000000..ab882359
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue373/ModelMapIntegerBigdecimal.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue373;
+
+import java.math.BigDecimal;
+import java.util.Map;
+
+public class ModelMapIntegerBigdecimal {
+
+ private Map<Integer, BigDecimal> mapIntegerBigDecimal;
+
+ public ModelMapIntegerBigdecimal() {}
+
+ public Map<Integer, BigDecimal> getMapIntegerBigDecimal() {
+ return mapIntegerBigDecimal;
+ }
+
+ public void setMapIntegerBigDecimal(Map<Integer, BigDecimal> mapIntegerBigDecimal) {
+ this.mapIntegerBigDecimal = mapIntegerBigDecimal;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue373/UnknownRepresenterTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue373/UnknownRepresenterTest.java
new file mode 100644
index 00000000..0820b116
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue373/UnknownRepresenterTest.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue373;
+
+import static junit.framework.TestCase.assertTrue;
+
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.Map;
+import org.junit.Test;
+import org.yaml.snakeyaml.Yaml;
+
+/**
+ * Redundant test - it does not test anything. It is here only to prove that SnakeYAML does what it
+ * should.
+ */
+public class UnknownRepresenterTest {
+
+ @Test
+ public void testIndicatorIndentMuchSmaller() {
+ ModelMapIntegerBigdecimal mv = new ModelMapIntegerBigdecimal();
+
+ Map<Integer, BigDecimal> m = new HashMap<Integer, BigDecimal>();
+ Integer a = 1;
+ BigDecimal b = new BigDecimal("0.01");
+ m.put(a, b);
+ mv.setMapIntegerBigDecimal(m);
+
+ Yaml yaml = new Yaml();
+ String str = yaml.dump(mv);
+ // System.out.println(str);
+ assertTrue(str.contains("mapIntegerBigDecimal: {1: 0.01"));
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue374/NumberAsJavaBeanPropertyTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue374/NumberAsJavaBeanPropertyTest.java
new file mode 100644
index 00000000..a15725f1
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue374/NumberAsJavaBeanPropertyTest.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue374;
+
+import static org.junit.Assert.assertEquals;
+
+import java.text.NumberFormat;
+import java.text.ParseException;
+import java.util.Locale;
+import org.junit.Test;
+import org.yaml.snakeyaml.Yaml;
+
+
+public class NumberAsJavaBeanPropertyTest {
+
+ @Test
+ public void testNumberAsDouble() {
+ Locale originalLocale = Locale.getDefault();
+
+ Locale.setDefault(Locale.CANADA_FRENCH);
+
+ AmbiguousNumberType original = new AmbiguousNumberType();
+ original.number = 1.1;
+ assertEquals(Double.class, original.number.getClass());
+
+ Yaml yaml = new Yaml();
+ String str = yaml.dump(original);
+
+ AmbiguousNumberType interpreted = yaml.load(str);
+
+ Locale.setDefault(originalLocale);
+ assertEquals(original.number, interpreted.number);
+ }
+
+ public static class AmbiguousNumberType {
+
+ public Number number;
+ }
+
+ @Test
+ public void testNumberAsInteger() {
+ AmbiguousNumberType original = new AmbiguousNumberType();
+ original.number = 1;
+ assertEquals(Integer.class, original.number.getClass());
+
+ Yaml yaml = new Yaml();
+ String str = yaml.dump(original);
+
+ AmbiguousNumberType interpreted = yaml.load(str);
+
+ assertEquals(Double.valueOf(original.number.intValue()), interpreted.number);
+ }
+
+ @Test
+ public void testNumberAsLong() {
+ AmbiguousNumberType original = new AmbiguousNumberType();
+ original.number = 1L;
+ assertEquals(Long.class, original.number.getClass());
+
+ Yaml yaml = new Yaml();
+ String str = yaml.dump(original);
+
+ AmbiguousNumberType interpreted = yaml.load(str);
+
+ assertEquals(Double.valueOf(original.number.intValue()), interpreted.number);
+ }
+
+ @Test
+ public void testNumberFormatParse() throws ParseException {
+ NumberFormat nf = NumberFormat.getInstance(Locale.US);
+ assertEquals(Long.valueOf(1), nf.parse("1"));
+ assertEquals("NumberFormat converts 1.0 to 1 - this is against the specification.",
+ Long.valueOf(1), nf.parse("1.0"));
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue375/EmptyDocumentTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue375/EmptyDocumentTest.java
new file mode 100644
index 00000000..3671e60d
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue375/EmptyDocumentTest.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue375;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.yaml.snakeyaml.Yaml;
+
+public class EmptyDocumentTest {
+
+ @Test
+ public void returnNullForEmptyDocument() {
+ Yaml yaml = new Yaml();
+ Assert.assertNull(yaml.loadAs("", TestObject.class));
+ Assert.assertNull(yaml.loadAs("\n \n", TestObject.class));
+ Assert.assertNull(yaml.loadAs("---\n", TestObject.class));
+ Assert.assertNull(yaml.loadAs("---\n#comment\n...\n", TestObject.class));
+ }
+
+ public static class TestObject {
+
+ private int attribute1;
+
+ public int getAttribute1() {
+ return attribute1;
+ }
+
+ public void setAttribute1(int attribute1) {
+ this.attribute1 = attribute1;
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue377/BillionLaughsAttackTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue377/BillionLaughsAttackTest.java
new file mode 100644
index 00000000..ea2e3ce8
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue377/BillionLaughsAttackTest.java
@@ -0,0 +1,89 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue377;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.Map;
+import org.junit.Test;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.error.YAMLException;
+
+/**
+ * https://en.wikipedia.org/wiki/Billion_laughs_attack#Variations
+ */
+public class BillionLaughsAttackTest {
+
+ public static final String data =
+ "a: &a [\"lol\",\"lol\",\"lol\",\"lol\",\"lol\",\"lol\",\"lol\",\"lol\",\"lol\"]\n"
+ + "b: &b [*a,*a,*a,*a,*a,*a,*a,*a,*a]\n" + "c: &c [*b,*b,*b,*b,*b,*b,*b,*b,*b]\n"
+ + "d: &d [*c,*c,*c,*c,*c,*c,*c,*c,*c]\n" + "e: &e [*d,*d,*d,*d,*d,*d,*d,*d,*d]\n"
+ + "f: &f [*e,*e,*e,*e,*e,*e,*e,*e,*e]\n" + "g: &g [*f,*f,*f,*f,*f,*f,*f,*f,*f]\n"
+ + "h: &h [*g,*g,*g,*g,*g,*g,*g,*g,*g]\n" + "i: &i [*h,*h,*h,*h,*h,*h,*h,*h,*h]";
+
+ public static final String scalarAliasesData =
+ "a: &a foo\n" + "b: *a\n" + "c: *a\n" + "d: *a\n" + "e: *a\n" + "f: *a\n" + "g: *a\n";
+
+ @Test
+ public void billionLaughsAttackLoaded() {
+ LoaderOptions settings = new LoaderOptions();
+ settings.setMaxAliasesForCollections(72);
+ Yaml yaml = new Yaml(settings);
+ Map map = yaml.load(data);
+ assertNotNull(map);
+ }
+
+ @Test
+ public void billionLaughsAttackExpanded() {
+ LoaderOptions settings = new LoaderOptions();
+ settings.setMaxAliasesForCollections(100);
+ Yaml yaml = new Yaml(settings);
+ Map map = yaml.load(data);
+ assertNotNull(map);
+ try {
+ map.toString();
+ fail("Expected overflow");
+ } catch (Throwable e) {
+ assertTrue("Catched exception " + e + " is not an instance of OutOfMemoryError",
+ e instanceof OutOfMemoryError);
+ }
+ }
+
+ @Test
+ public void billionLaughsAttackWithRestrictedAliases() {
+ LoaderOptions settings = new LoaderOptions();
+ Yaml yaml = new Yaml(settings);
+ try {
+ yaml.load(data);
+ fail();
+ } catch (YAMLException e) {
+ assertEquals("Number of aliases for non-scalar nodes exceeds the specified max=50",
+ e.getMessage());
+ }
+ }
+
+ @Test
+ public void doNotRestrictScalarAliases() {
+ LoaderOptions settings = new LoaderOptions();
+ settings.setMaxAliasesForCollections(5); // smaller than number of aliases for scalars
+ Yaml yaml = new Yaml(settings);
+ Map map = yaml.load(scalarAliasesData);
+ assertNotNull(map);
+ }
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue377/ReferencesTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue377/ReferencesTest.java
new file mode 100644
index 00000000..cb17cb8a
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue377/ReferencesTest.java
@@ -0,0 +1,131 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue377;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.HashMap;
+import org.junit.Test;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.constructor.SafeConstructor;
+
+public class ReferencesTest {
+
+ /**
+ * Create data which is difficult to parse.
+ *
+ * @param size - size of the map, defines the complexity
+ * @return YAML to parse
+ */
+ private String createDump(int size) {
+ HashMap root = new HashMap();
+ HashMap s1, s2, t1, t2;
+ s1 = root;
+ s2 = new HashMap();
+ /*
+ * the time to parse grows very quickly SIZE -> time to parse in seconds 25 -> 1 26 -> 2 27 -> 3
+ * 28 -> 8 29 -> 13 30 -> 28 31 -> 52 32 -> 113 33 -> 245 34 -> 500
+ */
+ for (int i = 0; i < size; i++) {
+
+ t1 = new HashMap();
+ t2 = new HashMap();
+ t1.put("foo", "1");
+ t2.put("bar", "2");
+
+ s1.put("a", t1);
+ s1.put("b", t2);
+ s2.put("a", t1);
+ s2.put("b", t2);
+
+ s1 = t1;
+ s2 = t2;
+ }
+
+ // this is VERY BAD code
+ // the map has itself as a key (no idea why it may be used except of a DoS attack)
+ HashMap f = new HashMap();
+ f.put(f, "a");
+ f.put("g", root);
+
+ Yaml yaml = new Yaml(new SafeConstructor());
+ String output = yaml.dump(f);
+ return output;
+ }
+
+ @Test
+ public void referencesWithRecursiveKeysNotAllowedByDefault() {
+ String output = createDump(30);
+ // System.out.println(output);
+ long time1 = System.currentTimeMillis();
+ // Load
+ LoaderOptions settings = new LoaderOptions();
+ settings.setMaxAliasesForCollections(150);
+ Yaml yaml = new Yaml(settings);
+ try {
+ yaml.load(output);
+ fail();
+ } catch (Exception e) {
+ assertEquals("Recursive key for mapping is detected but it is not configured to be allowed.",
+ e.getMessage());
+ }
+ long time2 = System.currentTimeMillis();
+ float duration = (time2 - time1) / 1000;
+ assertTrue("It should fail quickly. Time was " + duration + " seconds.", duration < 1.0);
+ }
+
+ @Test
+ public void parseManyAliasesForCollections() {
+ String output = createDump(25);
+ // Load
+ // long time1 = System.currentTimeMillis();
+ LoaderOptions settings = new LoaderOptions();
+ settings.setMaxAliasesForCollections(50);
+ settings.setAllowRecursiveKeys(true);
+ Yaml yaml = new Yaml(settings);
+ yaml.load(output);
+ // Disabling this as it runs slower than 0.9 on my machine
+ // long time2 = System.currentTimeMillis();
+ // double duration = (time2 - time1) / 1000.0;
+ // assertTrue("It should take time. Time was " + duration + " seconds.", duration > 0.9);
+ // assertTrue("Time was " + duration + " seconds.", duration < 5.0);
+ }
+
+ @Test
+ public void referencesWithRestrictedNesting() {
+ // without alias restriction this size should occupy tons of CPU, memory and time to parse
+ int depth = 35;
+ String bigYAML = createDump(depth);
+ // Load
+ long time1 = System.currentTimeMillis();
+ LoaderOptions settings = new LoaderOptions();
+ settings.setMaxAliasesForCollections(1000);
+ settings.setAllowRecursiveKeys(true);
+ settings.setNestingDepthLimit(depth);
+ Yaml yaml = new Yaml(settings);
+ try {
+ yaml.load(bigYAML);
+ fail();
+ } catch (Exception e) {
+ assertEquals("Nesting Depth exceeded max 35", e.getMessage());
+ }
+ long time2 = System.currentTimeMillis();
+ float duration = (time2 - time1) / 1000;
+ assertTrue("It should fail quickly. Time was " + duration + " seconds.", duration < 1.0);
+ }
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue377/ReferencesWithListsTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue377/ReferencesWithListsTest.java
new file mode 100644
index 00000000..d1b9dd40
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue377/ReferencesWithListsTest.java
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue377;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.List;
+import java.util.Map;
+import org.junit.Test;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Yaml;
+
+/**
+ * Recursive keys setting has no influence on sequences
+ */
+public class ReferencesWithListsTest {
+
+ @Test
+ public void referencesWithRecursiveKeysInListAllowedByDefault() {
+ String output = "a: &test\n" + "- *test";
+ LoaderOptions settings = new LoaderOptions();
+ settings.setAllowRecursiveKeys(true);
+ Yaml yaml = new Yaml(settings);
+ // System.out.println(output);
+ Map<String, Object> parsed = yaml.load(output);
+ assertNotNull(output, parsed);
+ assertEquals(1, parsed.size());
+ }
+
+ @Test
+ public void referencesWithRecursiveSequences() {
+ String output = "&test\n" + "- *test";
+ LoaderOptions settings = new LoaderOptions();
+ settings.setAllowRecursiveKeys(true);
+ Yaml yaml = new Yaml(settings);
+ // System.out.println(output);
+ List<Object> parsed = yaml.load(output);
+ assertNotNull(output, parsed);
+ assertEquals(1, parsed.size());
+ }
+
+ @Test
+ public void referencesWithRecursiveKeysInList() {
+ String output = "a: &test\n" + "- *test";
+ LoaderOptions settings = new LoaderOptions();
+ settings.setAllowRecursiveKeys(false);
+ Yaml yaml = new Yaml(settings);
+ // System.out.println(output);
+ Map<String, Object> parsed = yaml.load(output);
+ assertNotNull(output, parsed);
+ assertEquals(1, parsed.size());
+ // try {
+ // yaml.load(output);
+ // fail("Should not have been reached, expected an exception because recursive keys are not
+ // allowed.");
+ // } catch (Exception e) {
+ // assertEquals("Recursive key for mapping is detected but it is not configured to be allowed.",
+ // e.getMessage());
+ // }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue38/Bean.java b/src/test/java/org/yaml/snakeyaml/issues/issue38/Bean.java
index d644561e..1ac04482 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue38/Bean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue38/Bean.java
@@ -1,50 +1,48 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue38;
public class Bean {
- int value;
-
- public Bean() {
- }
-
- public Bean(int value) {
- this.value = value;
- }
-
- @Override
- public boolean equals(Object obj) {
- return toString().equals(obj.toString());
- }
-
- @Override
- public int hashCode() {
- return value;
- }
-
- @Override
- public String toString() {
- return "Bean " + String.valueOf(value);
- }
-
- public int getValue() {
- return value;
- }
-
- public void setValue(int value) {
- this.value = value;
- }
-} \ No newline at end of file
+
+ int value;
+
+ public Bean() {}
+
+ public Bean(int value) {
+ this.value = value;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return toString().equals(obj.toString());
+ }
+
+ @Override
+ public int hashCode() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return "Bean " + value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public void setValue(int value) {
+ this.value = value;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue38/BigNumberIdTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue38/BigNumberIdTest.java
index d80168ac..22ac5989 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue38/BigNumberIdTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue38/BigNumberIdTest.java
@@ -1,46 +1,46 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue38;
import java.util.ArrayList;
import java.util.List;
-
import junit.framework.TestCase;
-
+import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.Yaml;
/**
* to test http://code.google.com/p/snakeyaml/issues/detail?id=38
*/
public class BigNumberIdTest extends TestCase {
- @SuppressWarnings("unchecked")
- public void testBigNumberFormat() {
- List<Bean> list = new ArrayList<Bean>(2000);
- for (int i = 1; i < 1010; i++) {
- Bean value = new Bean(i);
- list.add(value);
- list.add(value);
- }
- Yaml yaml = new Yaml();
- String output = yaml.dump(list);
- // System.out.println(output);
- //
- List<Bean> list2 = (List<Bean>) yaml.load(output);
- for (Bean bean : list2) {
- assertTrue(bean.getValue() > 0);
- }
+
+ @SuppressWarnings("unchecked")
+ public void testBigNumberFormat() {
+ List<Bean> list = new ArrayList<Bean>(2000);
+ for (int i = 1; i < 1010; i++) {
+ Bean value = new Bean(i);
+ list.add(value);
+ list.add(value);
+ }
+ LoaderOptions options = new LoaderOptions();
+ options.setMaxAliasesForCollections(1500);
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(list);
+ // System.out.println(output);
+ //
+ List<Bean> list2 = yaml.load(output);
+ for (Bean bean : list2) {
+ assertTrue(bean.getValue() > 0);
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue383/RepresenterConfigurationTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue383/RepresenterConfigurationTest.java
new file mode 100644
index 00000000..a30ae49c
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue383/RepresenterConfigurationTest.java
@@ -0,0 +1,197 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue383;
+
+import static org.yaml.snakeyaml.DumperOptions.FlowStyle.BLOCK;
+import static org.yaml.snakeyaml.DumperOptions.FlowStyle.FLOW;
+import static org.yaml.snakeyaml.DumperOptions.ScalarStyle.FOLDED;
+import static org.yaml.snakeyaml.DumperOptions.ScalarStyle.PLAIN;
+
+import java.util.Calendar;
+import java.util.TimeZone;
+import org.junit.Assert;
+import org.junit.Test;
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.introspector.PropertyUtils;
+import org.yaml.snakeyaml.nodes.MappingNode;
+import org.yaml.snakeyaml.nodes.ScalarNode;
+import org.yaml.snakeyaml.representer.Representer;
+
+public class RepresenterConfigurationTest {
+
+ @Test
+ public void testDefaultFlowStyleNotOverridden() {
+ Representer representer = new Representer();
+ representer.setDefaultFlowStyle(BLOCK);
+ Yaml yaml = new Yaml(representer);
+
+ MappingNode node = (MappingNode) yaml.represent(new TestObject(27, "test"));
+ Assert.assertEquals(DumperOptions.FlowStyle.BLOCK, node.getFlowStyle());
+ }
+
+ @Test
+ public void testDefaultFlowStyleIsOverridden() {
+ Representer representer = new Representer();
+ representer.setDefaultFlowStyle(BLOCK);
+
+ DumperOptions dumperOptions = new DumperOptions();
+ dumperOptions.setDefaultFlowStyle(FLOW);
+
+ Yaml yaml = new Yaml(representer, dumperOptions);
+
+ MappingNode node = (MappingNode) yaml.represent(new TestObject(27, "test"));
+ Assert.assertEquals(DumperOptions.FlowStyle.FLOW, node.getFlowStyle());
+ }
+
+ @Test
+ public void testDefaultScalarStyleNotOverridden() {
+ Representer representer = new Representer();
+ representer.setDefaultScalarStyle(FOLDED);
+
+ Yaml yaml = new Yaml(representer);
+
+ ScalarNode node = (ScalarNode) yaml.represent("test");
+ Assert.assertEquals(FOLDED, node.getScalarStyle());
+ Assert.assertEquals(FOLDED.getChar(), node.getStyle());
+ }
+
+ @Test
+ public void testDefaultScalarStyleOverridden() {
+ Representer representer = new Representer();
+ representer.setDefaultScalarStyle(FOLDED);
+
+ DumperOptions dumperOptions = new DumperOptions();
+ dumperOptions.setDefaultScalarStyle(PLAIN);
+
+ Yaml yaml = new Yaml(representer, dumperOptions);
+
+ ScalarNode node = (ScalarNode) yaml.represent("test");
+ Assert.assertEquals(node.getScalarStyle(), PLAIN);
+ Assert.assertEquals(node.getStyle(), PLAIN.getChar());
+ }
+
+ @Test
+ public void testPlainStyleByDefault() {
+ Yaml yaml = new Yaml();
+ ScalarNode node = (ScalarNode) yaml.represent("test");
+ Assert.assertEquals(PLAIN, node.getScalarStyle());
+ Assert.assertEquals(PLAIN.getChar(), node.getStyle());
+ }
+
+ @Test
+ public void testTimeZoneNotOverridden() {
+ Representer representer = new Representer();
+ representer.setTimeZone(TimeZone.getTimeZone("Europe/Kiev"));
+
+ Yaml yaml = new Yaml(representer);
+
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTimeInMillis(0);
+
+ ScalarNode node = (ScalarNode) yaml.represent(calendar.getTime());
+
+ Assert.assertEquals("1970-01-01T03:00:00+03:00", node.getValue());
+ }
+
+ @Test
+ public void testTimeZoneOverridden() {
+ Representer representer = new Representer();
+ representer.setTimeZone(TimeZone.getTimeZone("Europe/Kiev"));
+
+ DumperOptions dumperOptions = new DumperOptions();
+ dumperOptions.setTimeZone(TimeZone.getTimeZone("UTC"));
+
+ Yaml yaml = new Yaml(representer, dumperOptions);
+
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTimeInMillis(0);
+
+ ScalarNode node = (ScalarNode) yaml.represent(calendar.getTime());
+
+ Assert.assertEquals("1970-01-01T00:00:00Z", node.getValue());
+ }
+
+ @Test
+ public void testDefaultTimeZone() {
+ Yaml yaml = new Yaml();
+
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTimeInMillis(0);
+
+ ScalarNode node = (ScalarNode) yaml.represent(calendar.getTime());
+
+ Assert.assertEquals("1970-01-01T00:00:00Z", node.getValue());
+ }
+
+ @Test
+ public void testAllowReadOnlyPropertiesNotOverridden() {
+ PropertyUtils propertyUtils = new PropertyUtils();
+ propertyUtils.setAllowReadOnlyProperties(true);
+ Representer representer = new Representer();
+ representer.setPropertyUtils(propertyUtils);
+
+ Yaml yaml = new Yaml(representer);
+ MappingNode mappingNode = (MappingNode) yaml.represent(new TestObject(27, "test"));
+ Assert.assertEquals(2, mappingNode.getValue().size());
+ }
+
+ @Test
+ public void testAllowReadOnlyPropertiesOverridden() {
+ PropertyUtils propertyUtils = new PropertyUtils();
+ propertyUtils.setAllowReadOnlyProperties(true);
+ Representer representer = new Representer();
+ representer.setPropertyUtils(propertyUtils);
+
+ DumperOptions dumperOptions = new DumperOptions();
+ dumperOptions.setAllowReadOnlyProperties(false);
+
+ Yaml yaml = new Yaml(representer, dumperOptions);
+ MappingNode mappingNode = (MappingNode) yaml.represent(new TestObject(27, "test"));
+ Assert.assertEquals(1, mappingNode.getValue().size());
+ }
+
+ @Test
+ public void testReadOnlyPropertiesNotAllowedByDefault() {
+ Yaml yaml = new Yaml();
+ MappingNode mappingNode = (MappingNode) yaml.represent(new TestObject(27, "test"));
+ Assert.assertEquals(1, mappingNode.getValue().size());
+ }
+
+
+ public static class TestObject {
+
+ private int id;
+
+ private final String value;
+
+ public TestObject(int id, String value) {
+ this.id = id;
+ this.value = value;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getValue() {
+ return value;
+ }
+ }
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue386/DuplicateKeysOrderTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue386/DuplicateKeysOrderTest.java
new file mode 100644
index 00000000..a791f76b
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue386/DuplicateKeysOrderTest.java
@@ -0,0 +1,42 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue386;
+
+import static org.hamcrest.CoreMatchers.hasItems;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+import java.util.Map;
+import org.junit.Test;
+import org.yaml.snakeyaml.Util;
+import org.yaml.snakeyaml.Yaml;
+
+public class DuplicateKeysOrderTest {
+
+ @Test
+ public void deleteDuplicatKeysInCorrectOrder() {
+ String input = Util.getLocalResource("issues/issue386-duplicate-keys-order.yaml");
+ Yaml yaml = new Yaml();
+ Map<String, String> testMap = yaml.load(input);
+
+ assertThat("Number of keys in map", testMap.size(), is(4));
+ assertThat(testMap.keySet(), hasItems("key1", "key2", "key3", "lostone"));
+
+ assertThat(testMap.get("key1"), is("1st-2"));
+ assertThat(testMap.get("key2"), is("2nd-2"));
+ assertThat(testMap.get("key3"), is("3rd-3"));
+ assertThat(testMap.get("lostone"), is("Not meeee!!!"));
+ }
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue387/YamlExecuteProcessContextTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue387/YamlExecuteProcessContextTest.java
new file mode 100644
index 00000000..c4bd63d5
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue387/YamlExecuteProcessContextTest.java
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue387;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertEquals;
+
+import java.util.Collection;
+import java.util.Set;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.junit.Test;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.constructor.Constructor;
+
+public class YamlExecuteProcessContextTest {
+
+ public enum ExecuteProcessConstants {
+ EXECUTE_ID, EXECUTE_STATUS_START, EXECUTE_STATUS_DONE
+ }
+
+ @NoArgsConstructor
+ @AllArgsConstructor
+ @Data
+ public static class YamlExecuteProcessContext {
+
+ private String executionID;
+ private String schemaName;
+ private String username;
+ private String hostname;
+ private String sql;
+ private Collection<YamlExecuteProcessUnit> unitStatuses;
+ private Long startTimeMillis;
+ }
+
+ @NoArgsConstructor
+ @AllArgsConstructor
+ @Data
+ public static class YamlExecuteProcessUnit {
+
+ private String unitID;
+ private ExecuteProcessConstants status;
+ }
+
+ @Test
+ public void parameterizedCollectionTest() {
+ String marshal = "unitStatuses: !!set\n" + " ? status: EXECUTE_STATUS_DONE\n"
+ + " unitID: '159917166'\n" + " : null\n";
+ Constructor constructor = new Constructor(YamlExecuteProcessContext.class);
+ YamlExecuteProcessContext unmarshal =
+ new Yaml(constructor).loadAs(marshal, YamlExecuteProcessContext.class);
+
+ assertThat(unmarshal.getUnitStatuses(), instanceOf(Set.class));
+
+ for (YamlExecuteProcessUnit unit : unmarshal.getUnitStatuses()) {
+ assertEquals(unit.getStatus(), ExecuteProcessConstants.EXECUTE_STATUS_DONE);
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue395/ReportPositionForDuplicateKeyTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue395/ReportPositionForDuplicateKeyTest.java
new file mode 100644
index 00000000..f62eaff0
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue395/ReportPositionForDuplicateKeyTest.java
@@ -0,0 +1,42 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue395;
+
+import static junit.framework.TestCase.assertTrue;
+
+import org.junit.Test;
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.constructor.Constructor;
+import org.yaml.snakeyaml.constructor.DuplicateKeyException;
+import org.yaml.snakeyaml.representer.Representer;
+import org.yaml.snakeyaml.resolver.Resolver;
+
+public class ReportPositionForDuplicateKeyTest {
+
+ @Test
+ public void deleteDuplicatKeysInCorrectOrder() {
+ LoaderOptions loaderOptions = new LoaderOptions();
+ loaderOptions.setAllowDuplicateKeys(false);
+ Yaml yaml = new Yaml(new Constructor(), new Representer(), new DumperOptions(), loaderOptions,
+ new Resolver());
+ try {
+ yaml.load("key1: a\nkey1: b");
+ } catch (DuplicateKeyException e) {
+ assertTrue(e.getMessage(), e.getMessage().contains("found duplicate key key1"));
+ assertTrue(e.getMessage(), e.getMessage().contains("line 1, column 1"));
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue397/ColonInFlowContextInListTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue397/ColonInFlowContextInListTest.java
new file mode 100644
index 00000000..9071f903
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue397/ColonInFlowContextInListTest.java
@@ -0,0 +1,39 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue397;
+
+import java.util.List;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+
+public class ColonInFlowContextInListTest extends TestCase {
+
+ private final Yaml loader = new Yaml();
+
+ public void testList() {
+ List<String> list = loader.load("[ http://foo ]");
+ assertTrue(list.contains("http://foo"));
+ }
+
+ public void testListNoSpaces() {
+ List<String> list = loader.load("[http://foo]");
+ assertTrue(list.contains("http://foo"));
+ }
+
+ public void testList2() {
+ List<String> list = loader.load("[ http://foo,http://bar ]");
+ assertTrue(list.contains("http://foo"));
+ assertTrue(list.contains("http://bar"));
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue397/ColonInFlowContextInMapTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue397/ColonInFlowContextInMapTest.java
new file mode 100644
index 00000000..568f6ffd
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue397/ColonInFlowContextInMapTest.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue397;
+
+import java.util.Map;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+
+public class ColonInFlowContextInMapTest extends TestCase {
+
+ private final Yaml loader = new Yaml();
+
+ public void test1() {
+ Map<String, Integer> map = loader.load("{a: 1}");
+ assertEquals(Integer.valueOf(1), map.get("a"));
+ }
+
+ public void test2() {
+ Map<String, Integer> map = loader.load("{a:}");
+ assertTrue(map.containsKey("a"));
+ }
+
+ public void test3() {
+ Map<String, Integer> map = loader.load("{a}");
+ assertTrue(map.containsKey("a"));
+ }
+
+ public void testTheOnlyCounterIntuitiveCase() {
+ Map<String, Integer> map = loader.load("{a:1}");
+ assertTrue(map.containsKey("a:1"));
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue397/ColonInFlowContextInSetTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue397/ColonInFlowContextInSetTest.java
new file mode 100644
index 00000000..acc12f75
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue397/ColonInFlowContextInSetTest.java
@@ -0,0 +1,39 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue397;
+
+import java.util.Set;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+
+public class ColonInFlowContextInSetTest extends TestCase {
+
+ private final Yaml loader = new Yaml();
+
+ public void testSet() {
+ Set<String> set = loader.load("!!set { http://foo }");
+ assertTrue(set.contains("http://foo"));
+ }
+
+ public void testSetNoSpaces() {
+ Set<String> set = loader.load("!!set {http://foo}");
+ assertTrue(set.contains("http://foo"));
+ }
+
+ public void testSet2() {
+ Set<String> set = loader.load("!!set { http://foo,http://bar }");
+ assertTrue(set.contains("http://foo"));
+ assertTrue(set.contains("http://bar"));
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue40/DogFoodBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue40/DogFoodBean.java
index e0c7dabc..94956ae9 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue40/DogFoodBean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue40/DogFoodBean.java
@@ -1,34 +1,33 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue40;
import java.math.BigDecimal;
public class DogFoodBean {
- BigDecimal decimal;
- public DogFoodBean() {
- decimal = BigDecimal.ZERO;
- }
+ BigDecimal decimal;
- public BigDecimal getDecimal() {
- return decimal;
- }
+ public DogFoodBean() {
+ decimal = BigDecimal.ZERO;
+ }
- public void setDecimal(BigDecimal decimal) {
- this.decimal = decimal;
- }
+ public BigDecimal getDecimal() {
+ return decimal;
+ }
+
+ public void setDecimal(BigDecimal decimal) {
+ this.decimal = decimal;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue40/DogFoodBeanTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue40/DogFoodBeanTest.java
index f0891e15..650cad4b 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue40/DogFoodBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue40/DogFoodBeanTest.java
@@ -1,72 +1,67 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue40;
import java.math.BigDecimal;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class DogFoodBeanTest extends TestCase {
- public void testOwnBigDecimal() {
- DogFoodBean input = new DogFoodBean();
- input.setDecimal(new BigDecimal("5"));
- Yaml yaml = new Yaml();
- String text = yaml.dump(input);
- // System.out.println(text);
- assertEquals("!!org.yaml.snakeyaml.issues.issue40.DogFoodBean {decimal: !!float '5'}\n",
- text);
- DogFoodBean output = (DogFoodBean) yaml.load(text);
- assertEquals(output.getDecimal(), input.getDecimal());
- }
+ public void testOwnBigDecimal() {
+ DogFoodBean input = new DogFoodBean();
+ input.setDecimal(new BigDecimal("5"));
+ Yaml yaml = new Yaml();
+ String text = yaml.dump(input);
+ // System.out.println(text);
+ assertEquals("!!org.yaml.snakeyaml.issues.issue40.DogFoodBean {decimal: !!float '5'}\n", text);
+ DogFoodBean output = yaml.load(text);
+ assertEquals(output.getDecimal(), input.getDecimal());
+ }
- public void testBigDecimalPrecision() {
- DogFoodBean input = new DogFoodBean();
- input.setDecimal(new BigDecimal("5.123"));
- Yaml yaml = new Yaml();
- String text = yaml.dump(input);
- // System.out.println(text);
- assertEquals("!!org.yaml.snakeyaml.issues.issue40.DogFoodBean {decimal: 5.123}\n", text);
- DogFoodBean output = (DogFoodBean) yaml.load(text);
- assertEquals(input.getDecimal(), output.getDecimal());
- }
+ public void testBigDecimalPrecision() {
+ DogFoodBean input = new DogFoodBean();
+ input.setDecimal(new BigDecimal("5.123"));
+ Yaml yaml = new Yaml();
+ String text = yaml.dump(input);
+ // System.out.println(text);
+ assertEquals("!!org.yaml.snakeyaml.issues.issue40.DogFoodBean {decimal: 5.123}\n", text);
+ DogFoodBean output = yaml.load(text);
+ assertEquals(input.getDecimal(), output.getDecimal());
+ }
- public void testBigDecimalNoRootTag() {
- DogFoodBean input = new DogFoodBean();
- input.setDecimal(new BigDecimal("5.123"));
- Yaml yaml = new Yaml();
- String text = yaml.dumpAsMap(input);
- // System.out.println(text);
- assertEquals("decimal: 5.123\n", text);
- Yaml loader = new Yaml();
- DogFoodBean output = loader.loadAs(text, DogFoodBean.class);
- assertEquals(input.getDecimal(), output.getDecimal());
- }
+ public void testBigDecimalNoRootTag() {
+ DogFoodBean input = new DogFoodBean();
+ input.setDecimal(new BigDecimal("5.123"));
+ Yaml yaml = new Yaml();
+ String text = yaml.dumpAsMap(input);
+ // System.out.println(text);
+ assertEquals("decimal: 5.123\n", text);
+ Yaml loader = new Yaml();
+ DogFoodBean output = loader.loadAs(text, DogFoodBean.class);
+ assertEquals(input.getDecimal(), output.getDecimal());
+ }
- public void testBigDecimal1() {
- Yaml yaml = new Yaml();
- String text = yaml.dump(new BigDecimal("5"));
- assertEquals("!!float '5'\n", text);
- }
+ public void testBigDecimal1() {
+ Yaml yaml = new Yaml();
+ String text = yaml.dump(new BigDecimal("5"));
+ assertEquals("!!float '5'\n", text);
+ }
- public void testBigDecimal2() {
- Yaml yaml = new Yaml();
- String text = yaml.dump(new BigDecimal("5.123"));
- assertEquals("5.123\n", text);
- }
+ public void testBigDecimal2() {
+ Yaml yaml = new Yaml();
+ String text = yaml.dump(new BigDecimal("5.123"));
+ assertEquals("5.123\n", text);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue409/DumpEnumAsJavabeanPropertyTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue409/DumpEnumAsJavabeanPropertyTest.java
new file mode 100644
index 00000000..05819395
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue409/DumpEnumAsJavabeanPropertyTest.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue409;
+
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.nodes.Tag;
+
+public class DumpEnumAsJavabeanPropertyTest extends TestCase {
+
+ public static class Bean {
+
+ public ExtendedEnum myEnum = ExtendedEnum.B;
+ }
+
+ public enum ExtendedEnum {
+ A {
+ public String toGreek() {
+ return "alpha";
+ }
+ },
+ B {
+ public String toGreek() {
+ return "beta";
+ }
+ } // issue 409
+ }
+
+ public void testDumpExtendedEnum() {
+ Yaml yaml = new Yaml();
+ String text = yaml.dumpAs(new Bean(), Tag.MAP, DumperOptions.FlowStyle.AUTO);
+ assertEquals("{myEnum: B}\n", text);
+ Bean actual = yaml.loadAs(text, Bean.class);
+ assertEquals(ExtendedEnum.B, actual.myEnum);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue416/IndentWithIndicatorTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue416/IndentWithIndicatorTest.java
new file mode 100644
index 00000000..5f4769bb
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue416/IndentWithIndicatorTest.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue416;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.Util;
+import org.yaml.snakeyaml.Yaml;
+
+public class IndentWithIndicatorTest extends TestCase {
+
+ public void testIndentWithIndicator1() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ options.setIndentWithIndicator(true);
+ options.setIndent(2);
+ options.setIndicatorIndent(1);
+
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(createData());
+
+ String doc = Util.getLocalResource("issues/issue416-1.yaml");
+
+ assertEquals(doc, output);
+ }
+
+ public void testIndentWithIndicator2() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ options.setIndentWithIndicator(true);
+ options.setIndent(2);
+ options.setIndicatorIndent(2);
+
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(createData());
+
+ String doc = Util.getLocalResource("issues/issue416-2.yaml");
+
+ assertEquals(doc, output);
+ }
+
+ public void testIndentWithIndicator3() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ options.setIndentWithIndicator(false);
+ options.setIndent(4);
+ options.setIndicatorIndent(2);
+
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(createData());
+
+ String doc = Util.getLocalResource("issues/issue416_3.yml");
+
+ assertEquals(doc, output);
+ }
+
+ private Map<String, Object> createData() {
+ Map<String, String> fred = new LinkedHashMap<>();
+ fred.put("name", "Fred");
+ fred.put("role", "creator");
+
+ Map<String, String> john = new LinkedHashMap<>();
+ john.put("name", "John");
+ john.put("role", "committer");
+
+ List<Map<String, String>> developers = new ArrayList<>();
+ developers.add(fred);
+ developers.add(john);
+
+ Map<String, Object> company = new LinkedHashMap<>();
+ company.put("developers", developers);
+ company.put("name", "Yet Another Company");
+ company.put("location", "Maastricht");
+
+ Map<String, Object> data = new LinkedHashMap<>();
+ data.put("company", company);
+
+ return data;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue423/DaylightSavingsTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue423/DaylightSavingsTest.java
new file mode 100644
index 00000000..6eb68dfd
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue423/DaylightSavingsTest.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue423;
+
+import java.util.Calendar;
+import java.util.TimeZone;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.Yaml;
+
+public class DaylightSavingsTest extends TestCase {
+
+ public void testDaylightSavings20181104() {
+
+ // Daylight savings ends on 2018-11-04 and 2 am America/Denver Timezone falls back from -06:00
+ // to -07:00
+
+ TimeZone denverTimeZone = TimeZone.getTimeZone("America/Denver");
+
+ DumperOptions dumperOptions = new DumperOptions();
+ dumperOptions.setTimeZone(TimeZone.getTimeZone("America/Denver"));
+
+ Yaml yaml = new Yaml(dumperOptions);
+
+ Calendar midnightBeforeFallback = Calendar.getInstance(denverTimeZone);
+ midnightBeforeFallback.set(2018, Calendar.NOVEMBER, 4, 0, 0);
+
+ String dateString = yaml.dump(midnightBeforeFallback).trim(); // Trim to remove the new line
+ // character
+
+ assertTrue("Timezone value should be -06:00", dateString.endsWith("-06:00"));
+
+ Calendar oneHourAfterFallback = Calendar.getInstance(denverTimeZone);
+ oneHourAfterFallback.set(2018, Calendar.NOVEMBER, 4, 3, 0);
+
+ dateString = yaml.dump(oneHourAfterFallback).trim();
+
+ assertTrue("Timezone value should be -07:00", dateString.endsWith("-07:00"));
+
+ }
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue426/NullDuplicateKeyTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue426/NullDuplicateKeyTest.java
new file mode 100644
index 00000000..fe1d30a2
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue426/NullDuplicateKeyTest.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue426;
+
+import java.util.Map;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.constructor.DuplicateKeyException;
+
+public class NullDuplicateKeyTest extends TestCase {
+
+ public void testDuplicateKeyIsAllowed() {
+ Yaml loader = new Yaml();
+ Map<String, String> duplicateMap = loader.load("~: foo\n" + "~: bar");
+ assertEquals(1, duplicateMap.size());
+ assertEquals("bar", duplicateMap.get(null));
+ }
+
+ public void testDuplicateKeyIsNotAlowed() {
+ LoaderOptions options = new LoaderOptions();
+ options.setAllowDuplicateKeys(false);
+ Yaml loader = new Yaml(options);
+ try {
+ loader.load("~: foo\n~: bar");
+ } catch (DuplicateKeyException e) {
+ assertTrue(e.getMessage(), e.getMessage().contains("found duplicate key null"));
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue431/FlexSimleKeyTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue431/FlexSimleKeyTest.java
new file mode 100644
index 00000000..918361e9
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue431/FlexSimleKeyTest.java
@@ -0,0 +1,79 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue431;
+
+import java.util.HashMap;
+import java.util.Map;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.error.YAMLException;
+
+public class FlexSimleKeyTest extends TestCase {
+
+ private final int len = 130;
+
+ public void testLongKey() {
+ Yaml dumper = new Yaml(createOptions(len));
+ Map<String, Object> root = new HashMap();
+ Map<String, String> map = new HashMap<>();
+ String key = createKey(len);
+ map.put(key, "v1");
+ root.put("data", map);
+ assertEquals("data: {? '" + key + "'\n : v1}\n", dumper.dump(root));
+ }
+
+ public void testForceLongKeyToBeImplicit() {
+ Yaml dumper = new Yaml(createOptions(len + 10));
+ Map<String, Object> root = new HashMap();
+ Map<String, String> map = new HashMap<>();
+ String key = createKey(len);
+ map.put(key, "v1");
+ root.put("data", map);
+ assertEquals("data: {'" + key + "': v1}\n", dumper.dump(root));
+ }
+
+ public void testTooLongKeyLength() {
+ try {
+ createOptions(1024 + 1);
+ fail("Length must be restricted to 1024 chars");
+ } catch (YAMLException e) {
+ assertEquals(
+ "The simple key must not span more than 1024 stream characters. See https://yaml.org/spec/1.1/#id934537",
+ e.getMessage());
+ }
+ }
+
+ private DumperOptions createOptions(int len) {
+ DumperOptions dumperOptions = new DumperOptions();
+ dumperOptions.setDefaultFlowStyle(DumperOptions.FlowStyle.AUTO);
+ dumperOptions.setDefaultScalarStyle(DumperOptions.ScalarStyle.PLAIN);
+ dumperOptions.setMaxSimpleKeyLength(len);
+ return dumperOptions;
+ }
+
+ private String createKey(int length) {
+ StringBuffer outputBuffer = new StringBuffer(length);
+ for (int i = 0; i < length; i++) {
+ outputBuffer.append("" + (i + 1) % 10);
+ }
+ String prefix = String.valueOf(length);
+ String result =
+ prefix + "_" + outputBuffer.toString().substring(0, length - prefix.length() - 1);
+ if (result.length() != length) {
+ throw new RuntimeException("It was: " + result.length());
+ }
+ return result;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue437/BinaryRoundTripTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue437/BinaryRoundTripTest.java
new file mode 100644
index 00000000..87786066
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue437/BinaryRoundTripTest.java
@@ -0,0 +1,89 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue437;
+
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.events.Event;
+import org.yaml.snakeyaml.events.ImplicitTuple;
+import org.yaml.snakeyaml.events.ScalarEvent;
+import org.yaml.snakeyaml.nodes.Node;
+import org.yaml.snakeyaml.nodes.NodeId;
+import org.yaml.snakeyaml.nodes.ScalarNode;
+import org.yaml.snakeyaml.nodes.Tag;
+
+public class BinaryRoundTripTest extends TestCase {
+
+ public void testBinary() throws UnsupportedEncodingException {
+ Yaml underTest = new Yaml();
+ String source = "\u0096";
+ String serialized = underTest.dump(source);
+ assertEquals("!!binary |-\n" + " wpY=\n", serialized);
+ // parse back to bytes
+ byte[] deserialized = underTest.load(serialized);
+ assertEquals(source, new String(deserialized, StandardCharsets.UTF_8));
+ }
+
+ public void testBinaryNode() {
+ Yaml underTest = new Yaml();
+ String source = "\u0096";
+ Node node = underTest.represent(source);
+ // check Node
+ assertEquals(Tag.BINARY, node.getTag());
+ assertEquals(NodeId.scalar, node.getNodeId());
+ ScalarNode scalar = (ScalarNode) node;
+ assertEquals("wpY=", scalar.getValue());
+ // check Event
+ List<Event> events = underTest.serialize(node);
+ assertEquals(5, events.size());
+ ScalarEvent data = (ScalarEvent) events.get(2);
+ assertEquals(Tag.BINARY.toString(), data.getTag());
+ assertEquals(DumperOptions.ScalarStyle.LITERAL, data.getScalarStyle());
+ assertEquals("wpY=", data.getValue());
+ ImplicitTuple implicit = data.getImplicit();
+ assertFalse(implicit.canOmitTagInPlainScalar());
+ assertFalse(implicit.canOmitTagInNonPlainScalar());
+ }
+
+ public void testStrNode() {
+ DumperOptions options = new DumperOptions();
+ options.setNonPrintableStyle(DumperOptions.NonPrintableStyle.ESCAPE);
+ Yaml underTest = new Yaml(options);
+ String source = "\u0096";
+ Node node = underTest.represent(source);
+ assertEquals(Tag.STR, node.getTag());
+ assertEquals(NodeId.scalar, node.getNodeId());
+ ScalarNode scalar = (ScalarNode) node;
+ assertEquals("\u0096", scalar.getValue());
+ }
+
+ public void testRoundTripBinary() {
+ DumperOptions options = new DumperOptions();
+ options.setNonPrintableStyle(DumperOptions.NonPrintableStyle.ESCAPE);
+ Yaml underTest = new Yaml(options);
+ Map<String, String> toSerialized = new HashMap<>();
+ toSerialized.put("key", "a\u0096b");
+ String output = underTest.dump(toSerialized);
+ assertEquals("{key: \"a\\x96b\"}\n", output);
+ Map<String, String> parsed = underTest.load(output);
+ assertEquals(toSerialized.get("key"), parsed.get("key"));
+ assertEquals(toSerialized, parsed);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue440/LiteralWithTrailingSpacesTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue440/LiteralWithTrailingSpacesTest.java
new file mode 100644
index 00000000..0f5386e3
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue440/LiteralWithTrailingSpacesTest.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue440;
+
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.Yaml;
+
+public class LiteralWithTrailingSpacesTest extends TestCase {
+
+ public void testLiteral() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.LITERAL);
+ Yaml yaml = new Yaml(options);
+ String correct = "this is some text with \"quotes\" and\nline breaks";
+ String correctYaml = yaml.dump(correct);
+ assertEquals("|-\n" + " this is some text with \"quotes\" and\n" + " line breaks\n",
+ correctYaml);
+ }
+
+ public void testTrimTrailingWhiteSpace() {
+ Yaml yaml = new Yaml();
+ assertEquals("trailing", yaml.load("trailing "));
+ assertEquals("trailing", yaml.load("trailing\r"));
+ assertEquals("trailing", yaml.load("trailing\n"));
+ assertEquals("trailing", yaml.load("trailing\r\n"));
+ assertEquals("trailing", yaml.load("trailing\t\n"));
+ assertEquals("trailing", yaml.load("trailing\n\n"));
+ assertEquals("trailing", yaml.load("trailing\n \r \n"));
+ }
+
+ public void testLiteralWithNewLine() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.LITERAL);
+ Yaml yaml = new Yaml(options);
+ String inCorrect = "this is some text with \"quotes\" and \nline breaks";
+ String inCorrectYaml = yaml.dump(inCorrect);
+ // System.out.println(inCorrectYaml);
+ assertEquals("\"this is some text with \\\"quotes\\\" and \\nline breaks\"\n", inCorrectYaml);
+ // TODO assertTrue(inCorrectYaml.contains("|"));
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue449/LeadingZeroStringTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue449/LeadingZeroStringTest.java
new file mode 100644
index 00000000..5eeec69f
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue449/LeadingZeroStringTest.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue449;
+
+import java.util.regex.Pattern;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.resolver.Resolver;
+
+public class LeadingZeroStringTest extends TestCase {
+
+ public void testString() {
+ Yaml loader = new Yaml();
+ // this almost looks like an octal, but it contains digits greater than 7, so it's a string
+ Object result = loader.load("0123456789");
+ assertEquals("0123456789", result);
+ }
+
+ public void testLeadingZeroForIntIsAccepted() {
+ Pattern regexp = Resolver.INT;
+ assertTrue("Valid octal must be recognised.", regexp.matcher("07").matches());
+ }
+
+ public void testOctalNumberCannotHave8() {
+ Pattern regexp = Resolver.INT;
+ assertFalse(regexp.matcher("08").matches());
+ assertFalse(regexp.matcher("0123456789").matches());
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue46/FileTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue46/FileTest.java
index f80f3ad8..daef2174 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue46/FileTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue46/FileTest.java
@@ -1,26 +1,22 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue46;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.nodes.Node;
import org.yaml.snakeyaml.nodes.Tag;
@@ -31,33 +27,36 @@ import org.yaml.snakeyaml.representer.Representer;
* Issue 46: Dump a java.io.File object
*/
public class FileTest extends TestCase {
- @SuppressWarnings("unchecked")
- public void test() {
- File file = new File("src/test/resources/examples/list-bean-1.yaml");
- assertTrue(file.exists());
- Yaml yaml = new Yaml(new MyRepresenter());
- Map<String, File> map = new HashMap<String, File>();
- map.put("one", file);
- String output = yaml.dump(map);
- // System.out.println(output);
- assertTrue(output, output.startsWith("{one: !!java.io.File '"));
- assertTrue(output, output.endsWith("list-bean-1.yaml'}\n"));
- Map<String, File> parsed = (Map<String, File>) yaml.load(output);
- File file2 = parsed.get("one");
- assertTrue(file2.getAbsolutePath(), file2.getAbsolutePath().endsWith("list-bean-1.yaml"));
+
+ @SuppressWarnings("unchecked")
+ public void test() {
+ File file = new File("src/test/resources/examples/list-bean-1.yaml");
+ assertTrue(file.exists());
+ Yaml yaml = new Yaml(new MyRepresenter());
+ Map<String, File> map = new HashMap<String, File>();
+ map.put("one", file);
+ String output = yaml.dump(map);
+ // System.out.println(output);
+ assertTrue(output, output.startsWith("{one: !!java.io.File '"));
+ assertTrue(output, output.endsWith("list-bean-1.yaml'}\n"));
+ Map<String, File> parsed = yaml.load(output);
+ File file2 = parsed.get("one");
+ assertTrue(file2.getAbsolutePath(), file2.getAbsolutePath().endsWith("list-bean-1.yaml"));
+ }
+
+ public class MyRepresenter extends Representer {
+
+ public MyRepresenter() {
+ this.representers.put(File.class, new FileRepresenter());
}
- public class MyRepresenter extends Representer {
- public MyRepresenter() {
- this.representers.put(File.class, new FileRepresenter());
- }
+ public class FileRepresenter implements Represent {
- public class FileRepresenter implements Represent {
- public Node representData(Object data) {
- File file = (File) data;
- Node scalar = representScalar(new Tag("!!java.io.File"), file.getAbsolutePath());
- return scalar;
- }
- }
+ public Node representData(Object data) {
+ File file = (File) data;
+ Node scalar = representScalar(new Tag("!!java.io.File"), file.getAbsolutePath());
+ return scalar;
+ }
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue467/MergeTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue467/MergeTest.java
new file mode 100644
index 00000000..7631337c
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue467/MergeTest.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue467;
+
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+
+public class MergeTest extends TestCase {
+
+ public void testMergeAsScalar() {
+ Yaml loader = new Yaml();
+ String data =
+ "test-list:\n" + " - &1\n" + " a: 1\n" + " b: 2\n" + " - &2 <<: *1\n" + " - <<: *2";
+ try {
+ loader.load(data);
+ fail();
+ } catch (Exception e) {
+ assertTrue(e.getMessage()
+ .contains("expected a mapping or list of mappings for merging, but found scalar"));
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue468/NonAsciiAnchorTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue468/NonAsciiAnchorTest.java
new file mode 100644
index 00000000..7374c303
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue468/NonAsciiAnchorTest.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue468;
+
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+
+public class NonAsciiAnchorTest extends TestCase {
+
+ private final String NON_ANCHORS = ":,[]{}*&./";
+
+ public void testNonAsciiAnchor() {
+ Yaml loader = new Yaml();
+ String value = loader.load("&something_タスク タスク");
+ assertEquals("タスク", value);
+ }
+
+ public void testUnderscore() {
+ Yaml loader = new Yaml();
+ String value = loader.load("&_ タスク");
+ assertEquals("タスク", value);
+ }
+
+ public void testSmile() {
+ Yaml loader = new Yaml();
+ String value = loader.load("&\uD83D\uDE01 v1");
+ // System.out.println("&\uD83D\uDE01 v1");
+ assertEquals("v1", value);
+ }
+
+ public void testAlpha() {
+ Yaml loader = new Yaml();
+ String value = loader.load("&kääk v1");
+ assertEquals("v1", value);
+ }
+
+ public void testNonAllowedAnchor() {
+ for (int i = 0; i < NON_ANCHORS.length(); i++) {
+ try {
+ Character c = NON_ANCHORS.charAt(i);
+ loadWith(c);
+ fail("Special chars should not be allowed in anchor name: " + c);
+ } catch (Exception e) {
+ assertTrue(e.getMessage(), e.getMessage().contains("while scanning an anchor"));
+ assertTrue(e.getMessage(), e.getMessage().contains("unexpected character found"));
+ }
+ }
+ }
+
+ private void loadWith(char c) {
+ Yaml loader = new Yaml();
+ loader.load("&" + c + " value");
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue47/IncompleteBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue47/IncompleteBean.java
index 197946f2..5ce2f2f3 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue47/IncompleteBean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue47/IncompleteBean.java
@@ -1,37 +1,36 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue47;
public class IncompleteBean {
- private int id;
- private String name;
- public IncompleteBean() {
- id = 10;
- }
+ private final int id;
+ private String name;
- public String getName() {
- return name;
- }
+ public IncompleteBean() {
+ id = 10;
+ }
- public void setName(String name) {
- this.name = name;
- }
+ public String getName() {
+ return name;
+ }
- public int getId() {
- return id;
- }
-} \ No newline at end of file
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getId() {
+ return id;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue47/ReadOnlyPropertiesTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue47/ReadOnlyPropertiesTest.java
index a99f63f6..bfb7bd44 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue47/ReadOnlyPropertiesTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue47/ReadOnlyPropertiesTest.java
@@ -1,59 +1,56 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue47;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.error.YAMLException;
public class ReadOnlyPropertiesTest extends TestCase {
- public void testBean1() {
- IncompleteBean bean = new IncompleteBean();
- bean.setName("lunch");
- Yaml yaml = new Yaml();
- String output = yaml.dumpAsMap(bean);
- // System.out.println(output);
- assertEquals("name: lunch\n", output);
- //
- Yaml loader = new Yaml();
- IncompleteBean parsed = loader.loadAs(output, IncompleteBean.class);
- assertEquals(bean.getName(), parsed.getName());
- }
- public void testBean2() {
- IncompleteBean bean = new IncompleteBean();
- bean.setName("lunch");
- DumperOptions options = new DumperOptions();
- options.setAllowReadOnlyProperties(true);
- Yaml yaml = new Yaml(options);
- String output = yaml.dumpAsMap(bean);
- // System.out.println(output);
- assertEquals("id: 10\nname: lunch\n", output);
- //
- Yaml loader = new Yaml();
- try {
- loader.loadAs(output, IncompleteBean.class);
- fail("Setter is missing.");
- } catch (YAMLException e) {
- String message = e.getMessage();
- assertTrue(
- message,
- message.contains("Unable to find property 'id' on class: org.yaml.snakeyaml.issues.issue47.IncompleteBean"));
- }
+ public void testBean1() {
+ IncompleteBean bean = new IncompleteBean();
+ bean.setName("lunch");
+ Yaml yaml = new Yaml();
+ String output = yaml.dumpAsMap(bean);
+ // System.out.println(output);
+ assertEquals("name: lunch\n", output);
+ //
+ Yaml loader = new Yaml();
+ IncompleteBean parsed = loader.loadAs(output, IncompleteBean.class);
+ assertEquals(bean.getName(), parsed.getName());
+ }
+
+ public void testBean2() {
+ IncompleteBean bean = new IncompleteBean();
+ bean.setName("lunch");
+ DumperOptions options = new DumperOptions();
+ options.setAllowReadOnlyProperties(true);
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dumpAsMap(bean);
+ // System.out.println(output);
+ assertEquals("id: 10\nname: lunch\n", output);
+ //
+ Yaml loader = new Yaml();
+ try {
+ loader.loadAs(output, IncompleteBean.class);
+ fail("Setter is missing.");
+ } catch (YAMLException e) {
+ String message = e.getMessage();
+ assertTrue(message, message.contains(
+ "No writable property 'id' on class: org.yaml.snakeyaml.issues.issue47.IncompleteBean"));
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue474/ByteParseTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue474/ByteParseTest.java
new file mode 100644
index 00000000..74ba36d3
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue474/ByteParseTest.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue474;
+
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+
+public class ByteParseTest extends TestCase {
+
+ public void testParseBytes() {
+ Yaml yamlProcessor = new Yaml();
+ Byte[] lb = yamlProcessor.loadAs("[0x01,0x02,0xff,0x7f_ee_00_11]", Byte[].class);
+
+ assertEquals(4, lb.length);
+ assertEquals(Byte.valueOf((byte) 1), lb[0]);
+ assertEquals(Byte.valueOf((byte) 2), lb[1]);
+ assertEquals(Byte.valueOf((byte) -1), lb[2]);
+ assertEquals(Byte.valueOf((byte) 255), lb[2]); // narrow
+ assertEquals(Byte.valueOf((byte) 17), lb[3]);
+ }
+
+ public void testParseShorts() {
+ Yaml yamlProcessor = new Yaml();
+ Short[] lb = yamlProcessor.loadAs("[0x0102,0x7ffe,33000,0x8fff,65000]", Short[].class);
+
+ assertEquals(5, lb.length);
+ assertEquals(Short.valueOf((short) 258), lb[0]);
+ assertEquals(Short.valueOf((short) 32766), lb[1]);
+ assertEquals(Short.valueOf((short) -32536), lb[2]);
+ assertEquals(Short.valueOf((short) -28673), lb[3]);
+ assertEquals(Short.valueOf((short) -536), lb[4]);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue478/Location.java b/src/test/java/org/yaml/snakeyaml/issues/issue478/Location.java
new file mode 100644
index 00000000..f30ce26e
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue478/Location.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue478;
+
+public class Location {
+
+ int x;
+ int y;
+ int z;
+
+ public int getX() {
+ return x;
+ }
+
+ public void setX(int x) {
+ this.x = x;
+ }
+
+ public int getY() {
+ return y;
+ }
+
+ public void setY(int y) {
+ this.y = y;
+ }
+
+ public int getZ() {
+ return z;
+ }
+
+ public void setZ(int z) {
+ this.z = z;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue478/PropertyOrderTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue478/PropertyOrderTest.java
new file mode 100644
index 00000000..a2a2d256
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue478/PropertyOrderTest.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue478;
+
+import java.util.Iterator;
+import java.util.Set;
+import java.util.TreeSet;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.introspector.Property;
+
+public class PropertyOrderTest extends TestCase {
+
+ Set<Property> reverse = new TreeSet<>();
+
+ public void testParseBytes() {
+ Yaml y = new Yaml(new org.yaml.snakeyaml.representer.Representer() {
+ @Override
+ protected Set<Property> getProperties(Class<? extends Object> type) {
+ // System.out.println("getProperties: reverse order");
+ Iterator<Property> itr = ((TreeSet) super.getProperties(type)).descendingIterator();
+ while (itr.hasNext()) {
+ Property a = itr.next();
+ // System.out.println("> " + a.getName());
+ reverse.add(a);
+ }
+ return reverse;
+ }
+ });
+ String v = "x: 1\ny: 2\nz: 3\n";
+ Location location = y.loadAs(v, Location.class);
+
+ String output = y.dumpAsMap(location);
+ assertEquals("x", reverse.iterator().next().getName());
+ assertEquals(v, output);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue479/CredentialAppConfig.java b/src/test/java/org/yaml/snakeyaml/issues/issue479/CredentialAppConfig.java
new file mode 100644
index 00000000..86f1e240
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue479/CredentialAppConfig.java
@@ -0,0 +1,36 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue479;
+
+public class CredentialAppConfig {
+
+ private Mysql mysql;
+ private String test1;
+
+ public String getTest1() {
+ return test1;
+ }
+
+ public void setTest1(String test1) {
+ this.test1 = test1;
+ }
+
+ public Mysql getMysql() {
+ return mysql;
+ }
+
+ public void setMysql(Mysql mysql) {
+ this.mysql = mysql;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue479/DemoProperty.java b/src/test/java/org/yaml/snakeyaml/issues/issue479/DemoProperty.java
new file mode 100644
index 00000000..b1043a9e
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue479/DemoProperty.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue479;
+
+import java.util.Map;
+
+public class DemoProperty {
+
+ private Map<String, CredentialAppConfig> system;
+
+ public Map<String, CredentialAppConfig> getSystem() {
+ return system;
+ }
+
+ public void setSystem(Map<String, CredentialAppConfig> system) {
+ this.system = system;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue479/MergeKeyDeepMergeTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue479/MergeKeyDeepMergeTest.java
new file mode 100644
index 00000000..d9ddadf5
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue479/MergeKeyDeepMergeTest.java
@@ -0,0 +1,78 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue479;
+
+import java.io.InputStream;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Util;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.constructor.Constructor;
+import org.yaml.snakeyaml.representer.Representer;
+
+public class MergeKeyDeepMergeTest extends TestCase {
+
+ public void testOnlyTheCurrentMappingIsMerged() {
+ Constructor constructor = new Constructor(DemoProperty.class);
+ Representer representer = new Representer();
+ representer.getPropertyUtils().setSkipMissingProperties(true);
+ Yaml yaml = new Yaml(constructor, representer);
+
+ InputStream inputStream =
+ MergeKeyDeepMergeTest.class.getResourceAsStream("/issues/issue479.yaml");
+ DemoProperty property = yaml.load(inputStream);
+ assertEquals("2", property.getSystem().get("erp").getTest1());
+ assertNull(property.getSystem().get("erp").getMysql().getDb_host());
+ assertNull(property.getSystem().get("erp").getMysql().getDb_port());
+ assertEquals("erp", property.getSystem().get("erp").getMysql().getDb_name());
+ assertNull(property.getSystem().get("erp").getMysql().getDb_user());
+ assertNull(property.getSystem().get("erp").getMysql().getDb_password());
+ }
+
+ public void testMergeKeyDeepMerge() {
+ Yaml yaml = new Yaml();
+
+ InputStream inputStream =
+ MergeKeyDeepMergeTest.class.getResourceAsStream("/issues/issue479.yaml");
+ Object property = yaml.load(inputStream);
+ String output = yaml.dump(property);
+ // System.out.println(output);
+ String expected = Util.getLocalResource("issues/issue479-output.yaml");
+ assertEquals(expected, output);
+ }
+
+ public void testMergeAsJavabean() {
+ Constructor constructor = new Constructor(DemoProperty.class);
+ Representer representer = new Representer();
+ representer.getPropertyUtils().setSkipMissingProperties(true);
+ Yaml yaml = new Yaml(constructor, representer);
+
+ InputStream inputStream =
+ MergeKeyDeepMergeTest.class.getResourceAsStream("/issues/issue479-1.yaml");
+ DemoProperty property = yaml.load(inputStream);
+ String output = yaml.dump(property);
+ // System.out.println(output);
+
+ String v = "!!org.yaml.snakeyaml.issues.issue479.DemoProperty\n" + "system:\n" + " erp:\n"
+ + " mysql: {db_host: mysql.avatar2.test, db_name: erp, db_password: secret, db_port: 3306,\n"
+ + " db_user: default}\n" + " test1: '2'\n";
+ assertEquals(v, output);
+
+ assertEquals("2", property.getSystem().get("erp").getTest1());
+ assertEquals("mysql.avatar2.test", property.getSystem().get("erp").getMysql().getDb_host());
+ assertEquals(3306, (int) property.getSystem().get("erp").getMysql().getDb_port());
+ assertEquals("erp", property.getSystem().get("erp").getMysql().getDb_name());
+ assertEquals("default", property.getSystem().get("erp").getMysql().getDb_user());
+ assertEquals("secret", property.getSystem().get("erp").getMysql().getDb_password());
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue479/Mysql.java b/src/test/java/org/yaml/snakeyaml/issues/issue479/Mysql.java
new file mode 100644
index 00000000..cd778e55
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue479/Mysql.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue479;
+
+public class Mysql {
+
+ private String db_host;
+ private String db_name;
+ private Integer db_port;
+ private String db_user;
+ private String db_password;
+
+ public String getDb_host() {
+ return db_host;
+ }
+
+ public void setDb_host(String db_host) {
+ this.db_host = db_host;
+ }
+
+ public Integer getDb_port() {
+ return db_port;
+ }
+
+ public void setDb_port(Integer db_port) {
+ this.db_port = db_port;
+ }
+
+ public String getDb_user() {
+ return db_user;
+ }
+
+ public void setDb_user(String db_user) {
+ this.db_user = db_user;
+ }
+
+ public String getDb_password() {
+ return db_password;
+ }
+
+ public void setDb_password(String db_password) {
+ this.db_password = db_password;
+ }
+
+ public String getDb_name() {
+ return db_name;
+ }
+
+ public void setDb_name(String db_name) {
+ this.db_name = db_name;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue48/Bean.java b/src/test/java/org/yaml/snakeyaml/issues/issue48/Bean.java
index cd8ef8a8..ded596a4 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue48/Bean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue48/Bean.java
@@ -1,55 +1,53 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue48;
public class Bean {
- private int value;
- private String name;
-
- public Bean() {
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- @Override
- public boolean equals(Object obj) {
- return toString().equals(obj.toString());
- }
-
- @Override
- public int hashCode() {
- return value;
- }
-
- @Override
- public String toString() {
- return "Bean " + String.valueOf(value);
- }
-
- public int getValue() {
- return value;
- }
-
- public void setValue(int value) {
- this.value = value;
- }
-} \ No newline at end of file
+
+ private int value;
+ private String name;
+
+ public Bean() {}
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return toString().equals(obj.toString());
+ }
+
+ @Override
+ public int hashCode() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return "Bean " + value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public void setValue(int value) {
+ this.value = value;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue48/SkipJavaBeanPropertyTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue48/SkipJavaBeanPropertyTest.java
index d5374545..2142e6ac 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue48/SkipJavaBeanPropertyTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue48/SkipJavaBeanPropertyTest.java
@@ -1,22 +1,19 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue48;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.introspector.Property;
import org.yaml.snakeyaml.nodes.NodeTuple;
@@ -24,33 +21,35 @@ import org.yaml.snakeyaml.nodes.Tag;
import org.yaml.snakeyaml.representer.Representer;
public class SkipJavaBeanPropertyTest extends TestCase {
- public void testWithNull() {
- Bean bean = new Bean();
- bean.setValue(3);
- Yaml yaml = new Yaml();
- String output = yaml.dumpAsMap(bean);
- // System.out.println(output);
- assertEquals("name: null\nvalue: 3\n", output);
- }
- public void testWithoutNull() {
- Bean bean = new Bean();
- bean.setValue(5);
- Yaml yaml = new Yaml(new MyRepresenter());
- String output = yaml.dumpAsMap(bean);
- // System.out.println(output);
- assertEquals("value: 5\n", output);
- }
+ public void testWithNull() {
+ Bean bean = new Bean();
+ bean.setValue(3);
+ Yaml yaml = new Yaml();
+ String output = yaml.dumpAsMap(bean);
+ // System.out.println(output);
+ assertEquals("name: null\nvalue: 3\n", output);
+ }
+
+ public void testWithoutNull() {
+ Bean bean = new Bean();
+ bean.setValue(5);
+ Yaml yaml = new Yaml(new MyRepresenter());
+ String output = yaml.dumpAsMap(bean);
+ // System.out.println(output);
+ assertEquals("value: 5\n", output);
+ }
+
+ private class MyRepresenter extends Representer {
- private class MyRepresenter extends Representer {
- @Override
- protected NodeTuple representJavaBeanProperty(Object bean, Property property, Object value,
- Tag customTag) {
- if (value != null) {
- return super.representJavaBeanProperty(bean, property, value, customTag);
- } else {
- return null;
- }
- }
+ @Override
+ protected NodeTuple representJavaBeanProperty(Object bean, Property property, Object value,
+ Tag customTag) {
+ if (value != null) {
+ return super.representJavaBeanProperty(bean, property, value, customTag);
+ } else {
+ return null;
+ }
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue480/AnchorUnicodeTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue480/AnchorUnicodeTest.java
new file mode 100644
index 00000000..5c195f66
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue480/AnchorUnicodeTest.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue480;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.emitter.EmitterException;
+import org.yaml.snakeyaml.nodes.Node;
+import org.yaml.snakeyaml.serializer.AnchorGenerator;
+
+public class AnchorUnicodeTest extends TestCase {
+
+ private static final Set<Character> INVALID_ANCHOR = new HashSet();
+
+ static {
+ INVALID_ANCHOR.add('[');
+ INVALID_ANCHOR.add(']');
+ INVALID_ANCHOR.add('{');
+ INVALID_ANCHOR.add('}');
+ INVALID_ANCHOR.add(',');
+ INVALID_ANCHOR.add('*');
+ INVALID_ANCHOR.add('&');
+ }
+
+ public void testUnicodeAnchor() {
+ DumperOptions options = new DumperOptions();
+ options.setAnchorGenerator(new AnchorGenerator() {
+ int id = 0;
+
+ @Override
+ public String nextAnchor(Node node) {
+ return "タスク" + id++;
+ }
+ });
+
+ Yaml yaml = new Yaml(options);
+
+ List<String> list = new ArrayList<>();
+ list.add("abc");
+
+ List<List<String>> toExport = new ArrayList<>();
+ toExport.add(list);
+ toExport.add(list);
+
+ String output = yaml.dump(toExport);
+ assertEquals("- &タスク0 [abc]\n- *タスク0\n", output);
+ }
+
+ public void testInvalidAnchor() {
+ for (Character ch : INVALID_ANCHOR) {
+ Yaml yaml = new Yaml(createSettings(ch));
+ List<String> list = new ArrayList<>();
+ list.add("abc");
+ List<List<String>> toExport = new ArrayList<>();
+ toExport.add(list);
+ toExport.add(list);
+ try {
+ yaml.dump(toExport);
+ fail();
+ } catch (EmitterException e) {
+ assertTrue(e.getMessage().startsWith("Invalid character"));
+ }
+ }
+ }
+
+ private DumperOptions createSettings(final Character invalid) {
+ DumperOptions options = new DumperOptions();
+ options.setAnchorGenerator(new AnchorGenerator() {
+ @Override
+ public String nextAnchor(Node node) {
+ return "anchor" + invalid;
+ }
+ });
+ return options;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue481/DumpAnchorTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue481/DumpAnchorTest.java
new file mode 100644
index 00000000..13136292
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue481/DumpAnchorTest.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue481;
+
+import java.io.StringReader;
+import java.io.StringWriter;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.Util;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.nodes.Node;
+import org.yaml.snakeyaml.serializer.AnchorGenerator;
+
+public class DumpAnchorTest extends TestCase {
+
+ public void test_anchor_test() {
+ String str = Util.getLocalResource("issues/issue481.yaml");
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ options.setAnchorGenerator(new AnchorGenerator() {
+ @Override
+ public String nextAnchor(Node node) {
+ return node.getAnchor();
+ }
+ });
+ Yaml yaml = new Yaml(options);
+
+ Node node = yaml.compose(new StringReader(str));
+ StringWriter out = new StringWriter();
+ yaml.serialize(node, out);
+ assertEquals(str, out.toString());
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue484/Base60FloatTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue484/Base60FloatTest.java
new file mode 100644
index 00000000..c9897e14
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue484/Base60FloatTest.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue484;
+
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+
+public class Base60FloatTest extends TestCase {
+
+ public void test60Float() {
+ Yaml yamlProcessor = new Yaml();
+ Double base60 = yamlProcessor.load("86:00.0");
+ assertEquals(5160.0, base60);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue485/RestrictAliasNamesTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue485/RestrictAliasNamesTest.java
new file mode 100644
index 00000000..d835ab03
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue485/RestrictAliasNamesTest.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue485;
+
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+
+public class RestrictAliasNamesTest extends TestCase {
+
+ public void testAliasFromRuby() {
+ try {
+ Yaml yamlProcessor = new Yaml();
+ yamlProcessor.load("Exclude: **/*_old.rb");
+ fail("Should not accept Alias **/*_old.rb");
+ } catch (Exception e) {
+ assertTrue(e.getMessage().contains("unexpected character found *(42)"));
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue49/CalendarBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue49/CalendarBean.java
index 50587eb7..728f441c 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue49/CalendarBean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue49/CalendarBean.java
@@ -1,39 +1,38 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue49;
import java.util.Calendar;
public class CalendarBean {
- private Calendar calendar;
- private String name;
- public String getName() {
- return name;
- }
+ private Calendar calendar;
+ private String name;
- public void setName(String name) {
- this.name = name;
- }
+ public String getName() {
+ return name;
+ }
- public Calendar getCalendar() {
- return calendar;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public void setCalendar(Calendar calendar) {
- this.calendar = calendar;
- }
-} \ No newline at end of file
+ public Calendar getCalendar() {
+ return calendar;
+ }
+
+ public void setCalendar(Calendar calendar) {
+ this.calendar = calendar;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue49/CalendarTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue49/CalendarTest.java
index 09af4a81..d9f10f11 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue49/CalendarTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue49/CalendarTest.java
@@ -1,123 +1,120 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue49;
+import static org.junit.Assert.assertNotEquals;
+
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class CalendarTest extends TestCase {
- /**
- * Daylight Saving Time is not taken into account
- */
- public void testDumpDstIgnored() {
- CalendarBean bean = new CalendarBean();
- bean.setName("lunch");
- Calendar cal = Calendar.getInstance();
- cal.setTime(new Date(1000000000000L));
- cal.setTimeZone(TimeZone.getTimeZone("GMT-8:00"));
- bean.setCalendar(cal);
- Yaml yaml = new Yaml();
- String output = yaml.dumpAsMap(bean);
- // System.out.println(output);
- assertEquals("calendar: 2001-09-08T17:46:40-8:00\nname: lunch\n", output);
- //
- Yaml loader = new Yaml();
- CalendarBean parsed = loader.loadAs(output, CalendarBean.class);
- assertEquals(bean.getCalendar(), parsed.getCalendar());
- }
- /**
- * Daylight Saving Time is in effect on this date/time in
- * America/Los_Angeles Daylight<br/>
- * Saving Time is not in effect on this date/time in GMT
- */
- public void testDumpDstIsNotTheSame() {
- check(1000000000000L, "America/Los_Angeles", "Must be 7 hours difference.",
- "2001-09-08T18:46:40-7:00");
- }
+ /**
+ * Daylight Saving Time is not taken into account
+ */
+ public void testDumpDstIgnored() {
+ CalendarBean bean = new CalendarBean();
+ bean.setName("lunch");
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(new Date(1000000000000L));
+ cal.setTimeZone(TimeZone.getTimeZone("GMT-8:00"));
+ bean.setCalendar(cal);
+ Yaml yaml = new Yaml();
+ String output = yaml.dumpAsMap(bean);
+ // System.out.println(output);
+ assertEquals("calendar: 2001-09-08T17:46:40-08:00\nname: lunch\n", output);
+ //
+ Yaml loader = new Yaml();
+ CalendarBean parsed = loader.loadAs(output, CalendarBean.class);
+ assertEquals(bean.getCalendar(), parsed.getCalendar());
+ }
+
+ /**
+ * Daylight Saving Time is in effect on this date/time in America/Los_Angeles Daylight<br/>
+ * Saving Time is not in effect on this date/time in GMT
+ */
+ public void testDumpDstIsNotTheSame() {
+ check(1000000000000L, "America/Los_Angeles", "Must be 7 hours difference.",
+ "2001-09-08T18:46:40-07:00");
+ }
- /**
- * Daylight Saving Time is not in effect on this date/time in
- * America/Los_Angeles Daylight<br/>
- * Saving Time is not in effect on this date/time in GMT
- */
- public void testDumpDstIsTheSame() {
- check(1266833741374L, "America/Los_Angeles", "Must be 8 hours difference.",
- "2010-02-22T02:15:41.374-8:00");
- }
+ /**
+ * Daylight Saving Time is not in effect on this date/time in America/Los_Angeles Daylight<br/>
+ * Saving Time is not in effect on this date/time in GMT
+ */
+ public void testDumpDstIsTheSame() {
+ check(1266833741374L, "America/Los_Angeles", "Must be 8 hours difference.",
+ "2010-02-22T02:15:41.374-08:00");
+ }
- /**
- * Test odd time zone
- */
- public void testNepal() {
- check(1266833741374L, "Asia/Katmandu", "Must be 5:45 hours difference.",
- "2010-02-22T16:00:41.374+5:45");
- }
+ /**
+ * Test odd time zone
+ */
+ public void testNepal() {
+ check(1266833741374L, "Asia/Katmandu", "Must be 5:45 hours difference.",
+ "2010-02-22T16:00:41.374+05:45");
+ }
- public void testMoreThen10hours() {
- check(1266833741374L, "Asia/Kamchatka", "Must be 12 hours difference.",
- "2010-02-22T22:15:41.374+12:00");
- }
+ public void testMoreThen10hours() {
+ check(1266833741374L, "Asia/Kamchatka", "Must be 12 hours difference.",
+ "2010-02-22T22:15:41.374+12:00");
+ }
- private void check(long time, String timeZone, String warning, String etalon) {
- CalendarBean bean = new CalendarBean();
- bean.setName("lunch");
- Calendar cal = Calendar.getInstance();
- cal.setTime(new Date(time));
- cal.setTimeZone(TimeZone.getTimeZone(timeZone));
- bean.setCalendar(cal);
- Yaml yaml = new Yaml();
- String output = yaml.dumpAsMap(bean);
- // System.out.println(output);
- assertEquals(warning, "calendar: " + etalon + "\nname: lunch\n", output);
- //
- Yaml loader = new Yaml();
- CalendarBean parsed = loader.loadAs(output, CalendarBean.class);
- assertFalse("TimeZone must deviate.", bean.getCalendar().equals(parsed.getCalendar()));
- assertEquals(bean.getCalendar().getTimeInMillis(), parsed.getCalendar().getTimeInMillis());
- }
+ private void check(long time, String timeZone, String warning, String etalon) {
+ CalendarBean bean = new CalendarBean();
+ bean.setName("lunch");
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(new Date(time));
+ cal.setTimeZone(TimeZone.getTimeZone(timeZone));
+ bean.setCalendar(cal);
+ Yaml yaml = new Yaml();
+ String output = yaml.dumpAsMap(bean);
+ // System.out.println(output);
+ assertEquals(warning, "calendar: " + etalon + "\nname: lunch\n", output);
+ //
+ Yaml loader = new Yaml();
+ CalendarBean parsed = loader.loadAs(output, CalendarBean.class);
+ assertNotEquals("TimeZone must deviate.", bean.getCalendar(), parsed.getCalendar());
+ assertEquals(bean.getCalendar().getTimeInMillis(), parsed.getCalendar().getTimeInMillis());
+ }
- public void testLoadBean() {
- Yaml beanLoader = new Yaml();
- CalendarBean bean = beanLoader.loadAs(
- "calendar: 2001-12-14t21:59:43.10-05:00\nname: dinner", CalendarBean.class);
- assertEquals("dinner", bean.getName());
- Calendar calendar = bean.getCalendar();
- assertEquals(TimeZone.getTimeZone("GMT-5:00").getOffset(calendar.getTime().getTime()),
- calendar.getTimeZone().getOffset(calendar.getTime().getTime()));
- //
- Yaml yaml = new Yaml();
- Date date = (Date) yaml.load("2001-12-14t21:59:43.10-05:00");
- assertEquals(date, calendar.getTime());
- }
+ public void testLoadBean() {
+ Yaml beanLoader = new Yaml();
+ CalendarBean bean = beanLoader.loadAs("calendar: 2001-12-14t21:59:43.10-05:00\nname: dinner",
+ CalendarBean.class);
+ assertEquals("dinner", bean.getName());
+ Calendar calendar = bean.getCalendar();
+ assertEquals(TimeZone.getTimeZone("GMT-5:00").getOffset(calendar.getTime().getTime()),
+ calendar.getTimeZone().getOffset(calendar.getTime().getTime()));
+ //
+ Yaml yaml = new Yaml();
+ Date date = yaml.load("2001-12-14t21:59:43.10-05:00");
+ assertEquals(date, calendar.getTime());
+ }
- public void testLoadWithTag() {
- Yaml yaml = new Yaml();
- GregorianCalendar calendar = (GregorianCalendar) yaml
- .load("!!java.util.GregorianCalendar 2001-12-14t21:59:43.10-05:00");
- assertEquals(TimeZone.getTimeZone("GMT-5:00").getOffset(calendar.getTime().getTime()),
- calendar.getTimeZone().getOffset(calendar.getTime().getTime()));
- //
- Date date = (Date) yaml.load("2001-12-14t21:59:43.10-05:00");
- assertEquals(date, calendar.getTime());
- }
+ public void testLoadWithTag() {
+ Yaml yaml = new Yaml();
+ GregorianCalendar calendar =
+ yaml.load("!!java.util.GregorianCalendar 2001-12-14t21:59:43.10-05:00");
+ assertEquals(TimeZone.getTimeZone("GMT-5:00").getOffset(calendar.getTime().getTime()),
+ calendar.getTimeZone().getOffset(calendar.getTime().getTime()));
+ //
+ Date date = yaml.load("2001-12-14t21:59:43.10-05:00");
+ assertEquals(date, calendar.getTime());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue50/SnakeyamlTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue50/SnakeyamlTest.java
index b288f80a..141d93cf 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue50/SnakeyamlTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue50/SnakeyamlTest.java
@@ -1,75 +1,76 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue50;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
/**
* test issue 50.
*/
public class SnakeyamlTest extends TestCase {
- public static interface SomeBean {
- String getAttribute1();
- String getAttribute2();
- }
+ public interface SomeBean {
+
+ String getAttribute1();
- /* public */static abstract class BaseSomeBean implements SomeBean {
- private String attribute1;
+ String getAttribute2();
+ }
- public String getAttribute1() {
- return attribute1;
- }
+ /* public */static abstract class BaseSomeBean implements SomeBean {
- public void setAttribute1(String attribute1) {
- this.attribute1 = attribute1;
- }
+ private String attribute1;
+
+ public String getAttribute1() {
+ return attribute1;
}
- public static final class SomeBeanImpl extends BaseSomeBean {
- private String attribute2;
+ public void setAttribute1(String attribute1) {
+ this.attribute1 = attribute1;
+ }
+ }
- public SomeBeanImpl(final String attribute1, final String attribute2) {
- setAttribute1(attribute1);
- setAttribute2(attribute2);
- }
+ public static final class SomeBeanImpl extends BaseSomeBean {
- public String getAttribute2() {
- return attribute2;
- }
+ private String attribute2;
- public void setAttribute2(String attribute2) {
- this.attribute2 = attribute2;
- }
+ public SomeBeanImpl(final String attribute1, final String attribute2) {
+ setAttribute1(attribute1);
+ setAttribute2(attribute2);
+ }
+
+ public String getAttribute2() {
+ return attribute2;
+ }
- @Override
- public String toString() {
- return "SomeBeanImpl";
- }
+ public void setAttribute2(String attribute2) {
+ this.attribute2 = attribute2;
}
- public void testIntrospector() {
- SomeBean someBean = new SomeBeanImpl("value1", "value2");
- Yaml dumper = new Yaml();
- String output = dumper.dump(someBean);
- // System.out.println(output);
- assertEquals(
- "!!org.yaml.snakeyaml.issues.issue50.SnakeyamlTest$SomeBeanImpl {attribute1: value1,\n attribute2: value2}\n",
- output);
+ @Override
+ public String toString() {
+ return "SomeBeanImpl";
}
+ }
+
+ public void testIntrospector() {
+ SomeBean someBean = new SomeBeanImpl("value1", "value2");
+ Yaml dumper = new Yaml();
+ String output = dumper.dump(someBean);
+ // System.out.println(output);
+ assertEquals(
+ "!!org.yaml.snakeyaml.issues.issue50.SnakeyamlTest$SomeBeanImpl {attribute1: value1,\n attribute2: value2}\n",
+ output);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue500/FailIteratorOnlyWhenErrorFoundTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue500/FailIteratorOnlyWhenErrorFoundTest.java
new file mode 100644
index 00000000..ed4485a2
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue500/FailIteratorOnlyWhenErrorFoundTest.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue500;
+
+import java.util.Iterator;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+
+public class FailIteratorOnlyWhenErrorFoundTest extends TestCase {
+
+ public void testFailure() {
+ try {
+ Yaml yamlProcessor = new Yaml();
+ String data =
+ "a: 1\n" + "---\n" + "Some comment \n" + "\n" + "\n" + "b: 2\n" + "\n" + "c: 3\n" + "---";
+ Iterable<Object> parsed = yamlProcessor.loadAll(data);
+ Iterator<Object> iterator = parsed.iterator();
+ assertNotNull(iterator.next()); // no failure, first document id valid
+ iterator.next();
+ // for (Object obj : parsed) {
+ // assertNotNull(obj);
+ // System.out.println(obj);
+ // }
+ fail("Should not accept the second document");
+ } catch (Exception e) {
+ assertTrue(e.getMessage(), e.getMessage().contains("in 'reader', line 6, column 2:"));
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue506/ParseStringsThatAlmostLookLikeInts.java b/src/test/java/org/yaml/snakeyaml/issues/issue506/ParseStringsThatAlmostLookLikeInts.java
new file mode 100644
index 00000000..ed55cd61
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue506/ParseStringsThatAlmostLookLikeInts.java
@@ -0,0 +1,106 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue506;
+
+import java.util.regex.Pattern;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.resolver.Resolver;
+
+public class ParseStringsThatAlmostLookLikeInts extends TestCase {
+
+ public void testHexPrefixedString() {
+ String in = "0x_";
+ String expected = "0x_";
+ Object out = new Yaml().load(in);
+ assertEquals(expected, out);
+ }
+
+ public void testHexInt() {
+ String in = "0x_AB";
+ Integer expected = 171;
+ Object out = new Yaml().load(in);
+ assertEquals(expected, out);
+ }
+
+ public void testOctalPrefixedString() {
+ String in = "0_";
+ String expected = "0_";
+ Object out = new Yaml().load(in);
+ assertEquals(expected, out);
+ }
+
+ public void testOctalInt() {
+ String in = "0_123";
+ Integer expected = 83;
+ Object out = new Yaml().load(in);
+ assertEquals(expected, out);
+ }
+
+ public void testBinaryPrefixedString() {
+ String in = "0b_";
+ String expected = "0b_";
+ Object out = new Yaml().load(in);
+ assertEquals(expected, out);
+ }
+
+ public void testBinaryInt() {
+ String in = "0b_101";
+ Integer expected = 5;
+ Object out = new Yaml().load(in);
+ assertEquals(expected, out);
+ }
+
+ public void testDecimalish() {
+ String in = "-_";
+ String expected = "-_";
+ Object out = new Yaml().load(in);
+ assertEquals(expected, out);
+ }
+
+ public void testIntPattern() {
+ Pattern regexp = Resolver.INT;
+ assertTrue(regexp.matcher("0xabc").matches());
+ assertTrue(regexp.matcher("0x_abc").matches());
+ assertFalse(regexp.matcher("0x_").matches());
+ assertTrue(regexp.matcher("0b_01_00").matches());
+ assertFalse(regexp.matcher("0b_").matches());
+ assertTrue(regexp.matcher("0_77").matches());
+ assertFalse(regexp.matcher("0_").matches());
+ }
+
+ public void testFloatPattern() {
+ Pattern regexp = Resolver.FLOAT;
+ assertFalse(regexp.matcher("0123456789").matches());
+ assertFalse(regexp.matcher("123456789").matches());
+
+ assertTrue(regexp.matcher("00.3").matches());
+ assertTrue(regexp.matcher("00.003").matches());
+ assertTrue(regexp.matcher("02.003").matches());
+ assertTrue(regexp.matcher("-02.003").matches());
+ assertTrue(regexp.matcher("-02.003_001").matches());
+ assertTrue(regexp.matcher("-2_000.003_001").matches());
+ assertTrue(regexp.matcher(".3").matches());
+ assertTrue(regexp.matcher("-.3").matches());
+ assertTrue(regexp.matcher("+0.3").matches());
+ assertTrue(regexp.matcher("8.1e-06").matches());
+ assertTrue(regexp.matcher("8e-06").matches());
+ assertTrue(regexp.matcher("8e06").matches());
+ assertTrue(regexp.matcher("8e6").matches());
+ assertTrue(regexp.matcher("8E6").matches());
+ assertTrue(regexp.matcher("8E+06").matches());
+ assertTrue(regexp.matcher("8e+6").matches());
+ assertTrue(regexp.matcher("+8e+6").matches());
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue51/UnicodeStyleTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue51/UnicodeStyleTest.java
index 45706652..cdd0a631 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue51/UnicodeStyleTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue51/UnicodeStyleTest.java
@@ -1,44 +1,41 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue51;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.ScalarStyle;
import org.yaml.snakeyaml.Yaml;
/**
- * @see <a
- * href="http://code.google.com/p/snakeyaml/issues/detail?id=51">Issue</a>
+ * @see <a href="http://code.google.com/p/snakeyaml/issues/detail?id=51">Issue</a>
*/
public class UnicodeStyleTest extends TestCase {
- public void testFoldedStyle() {
- Yaml yaml = new Yaml();
- String output = yaml.dump("í");
- // System.out.println(output);
- assertEquals("í\n", output);
- }
- public void testDoubleQuotedStyle() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED);
- Yaml yaml = new Yaml(options);
- String output = yaml.dump("í");
- // System.out.println(output);
- assertEquals("\"í\"\n", output);
- }
+ public void testFoldedStyle() {
+ Yaml yaml = new Yaml();
+ String output = yaml.dump("í");
+ // System.out.println(output);
+ assertEquals("í\n", output);
+ }
+
+ public void testDoubleQuotedStyle() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED);
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump("í");
+ // System.out.println(output);
+ assertEquals("\"í\"\n", output);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue512/ListWithCommentTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue512/ListWithCommentTest.java
new file mode 100644
index 00000000..cb8fc345
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue512/ListWithCommentTest.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue512;
+
+import java.util.List;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Util;
+import org.yaml.snakeyaml.Yaml;
+
+public class ListWithCommentTest extends TestCase {
+
+ public void testList() {
+ String str = Util.getLocalResource("issues/issue512.yaml");
+ LoaderOptions options = new LoaderOptions();
+ options.setProcessComments(true);
+ Yaml yaml = new Yaml(options);
+ List<String> obj = yaml.load(str);
+ assertEquals(2, obj.size());
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue517/TrailingTabTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue517/TrailingTabTest.java
new file mode 100644
index 00000000..722fd145
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue517/TrailingTabTest.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue517;
+
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+
+public class TrailingTabTest extends TestCase {
+
+ public void testTrailingTab() {
+ String str = "'bar'\t";
+ Yaml yaml = new Yaml();
+ try {
+ Object obj = yaml.load(str);
+ fail("Issue 517"); // TODO FIXME trailing TAB should be ignored
+ assertNotNull(obj);
+ } catch (Exception e) {
+ assertTrue(e.getMessage(),
+ e.getMessage().contains("found character '\\t(TAB)' that cannot start any token."));
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue52/LineBreakDooubleQuotedTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue52/LineBreakDooubleQuotedTest.java
index 8682fdde..0bbf58c7 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue52/LineBreakDooubleQuotedTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue52/LineBreakDooubleQuotedTest.java
@@ -1,57 +1,54 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue52;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.ScalarStyle;
import org.yaml.snakeyaml.Yaml;
/**
- * @see <a
- * href="http://code.google.com/p/snakeyaml/issues/detail?id=52">Issue</a>
+ * @see <a href="http://code.google.com/p/snakeyaml/issues/detail?id=52">Issue</a>
*/
public class LineBreakDooubleQuotedTest extends TestCase {
- public void testDoubleQuotedStyle() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED);
- options.setWidth(20);
- options.setIndent(4);
- Yaml yaml = new Yaml(options);
- String etalon = "12345678901234567890\n\n123 456";
- String output = yaml.dump(etalon);
- // System.out.println(output);
- assertEquals("\"12345678901234567890\\n\\\n \\n123 456\"\n", output);
- String parsed = (String) yaml.load(output);
- assertEquals(etalon, parsed);
- }
- public void testDoubleQuotedStyleNoLineSplit() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED);
- options.setWidth(20);
- options.setSplitLines(false);
- options.setIndent(4);
- Yaml yaml = new Yaml(options);
- String etalon = "12345678901234567890\n\n123 456";
- String output = yaml.dump(etalon);
- // System.out.println(output);
- assertEquals("\"12345678901234567890\\n\\n123 456\"\n", output);
- String parsed = (String) yaml.load(output);
- assertEquals(etalon, parsed);
- }
+ public void testDoubleQuotedStyle() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED);
+ options.setWidth(20);
+ options.setIndent(4);
+ Yaml yaml = new Yaml(options);
+ String etalon = "12345678901234567890\n\n123 456";
+ String output = yaml.dump(etalon);
+ // System.out.println(output);
+ assertEquals("\"12345678901234567890\\n\\\n \\n123 456\"\n", output);
+ String parsed = yaml.load(output);
+ assertEquals(etalon, parsed);
+ }
+
+ public void testDoubleQuotedStyleNoLineSplit() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED);
+ options.setWidth(20);
+ options.setSplitLines(false);
+ options.setIndent(4);
+ Yaml yaml = new Yaml(options);
+ String etalon = "12345678901234567890\n\n123 456";
+ String output = yaml.dump(etalon);
+ // System.out.println(output);
+ assertEquals("\"12345678901234567890\\n\\n123 456\"\n", output);
+ String parsed = yaml.load(output);
+ assertEquals(etalon, parsed);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue520/ChompingTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue520/ChompingTest.java
new file mode 100644
index 00000000..1b4e9384
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue520/ChompingTest.java
@@ -0,0 +1,31 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue520;
+
+import java.util.Map;
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+
+public class ChompingTest extends TestCase {
+
+ public void testChomp() {
+ String input = "description: |+\n" + " line\n\n";
+ Yaml yaml = new Yaml();
+ Map<String, String> obj = yaml.load(input);
+ assertEquals("line\n\n", obj.get("description"));
+
+ String output = yaml.dump(obj);
+ assertEquals(input, output);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue522/JavaBeanWithPropertiesLikeBooleanValuesTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue522/JavaBeanWithPropertiesLikeBooleanValuesTest.java
new file mode 100644
index 00000000..0a980b5f
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue522/JavaBeanWithPropertiesLikeBooleanValuesTest.java
@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue522;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+import org.yaml.snakeyaml.Yaml;
+
+public class JavaBeanWithPropertiesLikeBooleanValuesTest {
+
+ public static class Workflow {
+
+ public String on;
+ public String off;
+ public String y;
+ public String n;
+ public String yes;
+ public String no;
+ }
+
+ @Test
+ public void deserialize() {
+ Yaml yaml = new Yaml();
+
+ String strYaml = "on: This is on\n" + "off: This is off\n" + "y: This is y\n" + "n: This is n\n"
+ + "yes: This is yes\n" + "no: This is no\n";
+
+ Workflow wf = yaml.loadAs(strYaml, Workflow.class);
+
+ assertEquals(wf.on, "This is on");
+ assertEquals(wf.off, "This is off");
+ assertEquals(wf.y, "This is y");
+ assertEquals(wf.n, "This is n");
+ assertEquals(wf.yes, "This is yes");
+ assertEquals(wf.no, "This is no");
+
+ }
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue525/FuzzyStackOverflowTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue525/FuzzyStackOverflowTest.java
new file mode 100644
index 00000000..6ab42499
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue525/FuzzyStackOverflowTest.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue525;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import org.junit.Test;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Util;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.error.YAMLException;
+
+public class FuzzyStackOverflowTest {
+
+ @Test
+ public void parseOpenUnmatchedMappings() {
+ try {
+ Yaml yaml = new Yaml();
+ String strYaml = Util.getLocalResource("fuzzer/YamlFuzzer-4626423186325504");
+ yaml.load(strYaml);
+ fail("Should report invalid YAML");
+ } catch (YAMLException e) {
+ assertEquals("Nesting Depth exceeded max 50", e.getMessage());
+ }
+ }
+
+ @Test
+ public void parseOpenUnmatchedMappingsWithCustomLimit() {
+ try {
+ LoaderOptions options = new LoaderOptions();
+ options.setNestingDepthLimit(1000);
+ Yaml yaml = new Yaml(options);
+ String strYaml = Util.getLocalResource("fuzzer/YamlFuzzer-4626423186325504");
+ yaml.load(strYaml);
+ fail("Should report invalid YAML");
+ } catch (YAMLException e) {
+ assertEquals("Nesting Depth exceeded max 1000", e.getMessage());
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue526/Fuzzy47027Test.java b/src/test/java/org/yaml/snakeyaml/issues/issue526/Fuzzy47027Test.java
new file mode 100644
index 00000000..bca42147
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue526/Fuzzy47027Test.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue526;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import org.junit.Test;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Util;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.error.YAMLException;
+
+// OSS-Fuzz - 47027
+public class Fuzzy47027Test {
+
+ @Test
+ public void parseOpenUnmatchedSequences_47027() {
+ try {
+ Yaml yaml = new Yaml();
+ String strYaml = Util.getLocalResource("fuzzer/YamlFuzzer-5427149240139776");
+ yaml.load(strYaml);
+ fail("Should report invalid YAML");
+ } catch (YAMLException e) {
+ assertEquals("Nesting Depth exceeded max 50", e.getMessage());
+ }
+ }
+
+ @Test
+ public void setCustomLimit100() {
+ try {
+ LoaderOptions options = new LoaderOptions();
+ options.setNestingDepthLimit(100);
+ Yaml yaml = new Yaml(options);
+ String strYaml = Util.getLocalResource("fuzzer/YamlFuzzer-5427149240139776");
+ yaml.load(strYaml);
+ fail("Should report invalid YAML");
+ } catch (YAMLException e) {
+ assertEquals("Nesting Depth exceeded max 100", e.getMessage());
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue527/Fuzzy47047Test.java b/src/test/java/org/yaml/snakeyaml/issues/issue527/Fuzzy47047Test.java
new file mode 100644
index 00000000..49848d5b
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue527/Fuzzy47047Test.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue527;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import org.junit.Test;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Util;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.error.YAMLException;
+
+// Stackoverflow [OSS-Fuzz - 47047]
+public class Fuzzy47047Test {
+
+ @Test
+ public void parseKeyIndicators_47047() {
+ try {
+ LoaderOptions options = new LoaderOptions();
+ options.setNestingDepthLimit(30);
+ Yaml yaml = new Yaml(options);
+ String strYaml = Util.getLocalResource("fuzzer/YamlFuzzer-5868638424399872");
+ yaml.load(strYaml);
+ fail("Should report invalid YAML");
+ } catch (YAMLException e) {
+ assertEquals("Nesting Depth exceeded max 30", e.getMessage());
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue529/Fuzzy47028Test.java b/src/test/java/org/yaml/snakeyaml/issues/issue529/Fuzzy47028Test.java
new file mode 100644
index 00000000..02c46878
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue529/Fuzzy47028Test.java
@@ -0,0 +1,52 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue529;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.junit.Test;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.error.YAMLException;
+
+// StringIndexOutOfBoundsException [OSS-Fuzz 47028]
+public class Fuzzy47028Test {
+
+ @Test
+ public void parseEmptyFloat_47028() {
+ try {
+ LoaderOptions options = new LoaderOptions();
+ Yaml yaml = new Yaml(options);
+ yaml.load("- !!float");
+ fail("Should report invalid YAML");
+ } catch (YAMLException e) {
+ assertTrue(e.getMessage().contains("while constructing a float"));
+ assertTrue(e.getMessage().contains("found empty value"));
+ }
+ }
+
+ @Test
+ public void parseEmptyInt_47028() {
+ try {
+ LoaderOptions options = new LoaderOptions();
+ Yaml yaml = new Yaml(options);
+ yaml.load("- !!int");
+ fail("Should report invalid YAML");
+ } catch (YAMLException e) {
+ assertTrue(e.getMessage().contains("while constructing an int"));
+ assertTrue(e.getMessage().contains("found empty value"));
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue530/Fuzzy47039Test.java b/src/test/java/org/yaml/snakeyaml/issues/issue530/Fuzzy47039Test.java
new file mode 100644
index 00000000..9c09e1df
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue530/Fuzzy47039Test.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue530;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Util;
+import org.yaml.snakeyaml.Yaml;
+
+// Stackoverflow [OSS-Fuzz - 47039]
+public class Fuzzy47039Test {
+
+ @Test
+ public void parseKeyIndicators_47039() {
+ LoaderOptions options = new LoaderOptions();
+ Yaml yaml = new Yaml(options);
+ String strYaml = Util.getLocalResource("fuzzer/YamlFuzzer-5110034188599296");
+ String parsed = yaml.load(strYaml);
+ assertEquals(strYaml.trim(), parsed);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue531/Fuzzy47081Test.java b/src/test/java/org/yaml/snakeyaml/issues/issue531/Fuzzy47081Test.java
new file mode 100644
index 00000000..3410e5f4
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue531/Fuzzy47081Test.java
@@ -0,0 +1,84 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue531;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.List;
+import org.junit.Test;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.error.YAMLException;
+
+// Stackoverflow [OSS-Fuzz - 47081]
+
+/**
+ * A proof that this issue is a FALSE POSITIVE https://nvd.nist.gov/vuln/detail/CVE-2022-38752
+ */
+public class Fuzzy47081Test {
+
+ /**
+ * Recursive key should NOT be used for untrusted data to avoid
+ */
+ @Test
+ public void parse47081_no_recursion_allowed() {
+ LoaderOptions options = new LoaderOptions();
+ options.setAllowRecursiveKeys(false); // must be set to false for untrusted source
+ Yaml yaml = new Yaml(options);
+ String strYaml = " &a\n" + "- *a\n" + "- *a\n" + "- *a:\n" + "- *a\n" + "- *a\n" + "- *a";
+ try {
+ yaml.load(strYaml);
+ fail("Should report invalid YAML: " + strYaml);
+ } catch (YAMLException e) {
+ assertEquals("Recursive key for mapping is detected but it is not configured to be allowed.",
+ e.getMessage());
+ }
+ }
+
+ /**
+ * Recursive list fails (with StackOverflowError) because it is used as a key Recursive key should
+ * NOT be used for untrusted data
+ */
+ @Test
+ public void parse47081_allow_recursion() {
+ try {
+ LoaderOptions options = new LoaderOptions();
+ options.setAllowRecursiveKeys(true);
+ Yaml yaml = new Yaml(options);
+ String strYaml = "&a\n" + "- *a\n" // if this line is removed, the test properly complains
+ // about the recursive keys in map -> Recursive key for
+ // mapping is detected, but it is not configured to be
+ // allowed.
+ + "- *a:\n"; // when the colon is removed, the test is Ok, because the recursive list is
+ // not a key
+ // System.out.println(strYaml);
+ yaml.load(strYaml);
+ fail("Should report invalid YAML: " + strYaml);
+ } catch (StackOverflowError e) {
+ assertTrue(true);
+ }
+ }
+
+ @Test
+ public void parse47081_no_colon() {
+ LoaderOptions options = new LoaderOptions();
+ options.setAllowRecursiveKeys(true);
+ Yaml yaml = new Yaml(options);
+ String strYaml = "&a\n" + "- *a\n" + "- *a\n";
+ List<Object> parsed = yaml.load(strYaml);
+ assertEquals(strYaml, 2, parsed.size());
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue543/Fuzzer50355Test.java b/src/test/java/org/yaml/snakeyaml/issues/issue543/Fuzzer50355Test.java
new file mode 100644
index 00000000..a919d08b
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue543/Fuzzer50355Test.java
@@ -0,0 +1,42 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue543;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import org.junit.Test;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Util;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.error.YAMLException;
+
+// Stackoverflow [OSS-Fuzz - 50355]
+public class Fuzzer50355Test {
+
+ @Test
+ public void parse_50355() {
+ LoaderOptions options = new LoaderOptions();
+ options.setAllowRecursiveKeys(false);
+ Yaml yaml = new Yaml(options);
+ String strYaml = Util.getLocalResource("fuzzer/YamlFuzzer-5167495132086272");
+ try {
+ yaml.load(strYaml);
+ fail("Recursive keys should not be accepted");
+ } catch (YAMLException e) {
+ assertEquals("Recursive key for mapping is detected but it is not configured to be allowed.",
+ e.getMessage());
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue544/DoubleQuoteTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue544/DoubleQuoteTest.java
new file mode 100644
index 00000000..b9a756a1
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue544/DoubleQuoteTest.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue544;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.Test;
+import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.DumperOptions.FlowStyle;
+import org.yaml.snakeyaml.DumperOptions.ScalarStyle;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.nodes.MappingNode;
+import org.yaml.snakeyaml.nodes.NodeTuple;
+import org.yaml.snakeyaml.nodes.ScalarNode;
+import org.yaml.snakeyaml.nodes.Tag;
+
+public class DoubleQuoteTest {
+
+ private MappingNode create() {
+ String content = "🔐This process is simple and secure.";
+
+ ScalarNode doubleQuotedKey =
+ new ScalarNode(Tag.STR, "double_quoted", null, null, ScalarStyle.PLAIN);
+ ScalarNode doubleQuotedValue =
+ new ScalarNode(Tag.STR, content, null, null, ScalarStyle.DOUBLE_QUOTED);
+ NodeTuple doubleQuotedTuple = new NodeTuple(doubleQuotedKey, doubleQuotedValue);
+
+ ScalarNode singleQuotedKey =
+ new ScalarNode(Tag.STR, "single_quoted", null, null, ScalarStyle.PLAIN);
+ ScalarNode singleQuotedValue =
+ new ScalarNode(Tag.STR, content, null, null, ScalarStyle.SINGLE_QUOTED);
+ NodeTuple singleQuotedTuple = new NodeTuple(singleQuotedKey, singleQuotedValue);
+
+ List<NodeTuple> nodeTuples = new ArrayList<>();
+ nodeTuples.add(doubleQuotedTuple);
+ nodeTuples.add(singleQuotedTuple);
+
+ MappingNode mappingNode = new MappingNode(Tag.MAP, nodeTuples, FlowStyle.BLOCK);
+
+ return mappingNode;
+ }
+
+ private String emit(DumperOptions dumperOptions) {
+ Yaml yaml = new Yaml(dumperOptions);
+
+ StringWriter writer = new StringWriter();
+ yaml.serialize(create(), writer);
+
+ return writer.toString();
+ }
+
+ @Test
+ public void testUnicode() {
+ DumperOptions dumperOptions = new DumperOptions();
+ dumperOptions.setAllowUnicode(true); // use as is
+ String output = emit(dumperOptions);
+ String expectedOutput = "double_quoted: \"🔐This process is simple and secure.\"\n"
+ + "single_quoted: '🔐This process is simple and secure.'\n";
+
+ assertEquals(expectedOutput, output);
+ }
+
+ @Test
+ public void testSubstitution() {
+ DumperOptions dumperOptions = new DumperOptions();
+ dumperOptions.setAllowUnicode(false); // substitute with U notation
+ String output = emit(dumperOptions);
+ String expectedOutput = "double_quoted: \"\\U0001f510This process is simple and secure.\"\n"
+ + "single_quoted: \"\\U0001f510This process is simple and secure.\"\n";
+
+ assertEquals(expectedOutput, output);
+ }
+
+ @Test
+ public void testDefault() {
+ DumperOptions dumperOptions = new DumperOptions();
+ String output = emit(dumperOptions);
+ String expectedOutput = "double_quoted: \"🔐This process is simple and secure.\"\n"
+ + "single_quoted: '🔐This process is simple and secure.'\n";
+
+ assertEquals(expectedOutput, output);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue547/ByteLimitTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue547/ByteLimitTest.java
new file mode 100644
index 00000000..e6eae1e5
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue547/ByteLimitTest.java
@@ -0,0 +1,37 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.issues.issue547;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import org.junit.Test;
+import org.yaml.snakeyaml.LoaderOptions;
+import org.yaml.snakeyaml.Yaml;
+
+public class ByteLimitTest {
+
+ @Test
+ public void testUnicode() {
+ LoaderOptions options = new LoaderOptions();
+ options.setCodePointLimit(15);
+ Yaml yaml = new Yaml(options);
+ try {
+ yaml.load("12345678901234567890");
+ fail("Long input should not be accepted");
+ } catch (Exception e) {
+ assertEquals("The incoming YAML document exceeds the limit: 15 code points.", e.getMessage());
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue55/Blog.java b/src/test/java/org/yaml/snakeyaml/issues/issue55/Blog.java
index 228b35b9..9c8eb7a5 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue55/Blog.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue55/Blog.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue55;
@@ -19,19 +17,19 @@ import java.util.LinkedList;
import java.util.List;
class Blog {
- private List<Post> posts = new LinkedList<Post>();
- public Blog() {
- }
+ private final List<Post> posts = new LinkedList<Post>();
- public void addPost(Post p) {
- // do some business logic here
- posts.add(p);
- }
+ public Blog() {}
- public List<Post> getPosts() {
- // in production code do not return the original set but a wrapped
- // unmodifiable set
- return posts;
- }
-} \ No newline at end of file
+ public void addPost(Post p) {
+ // do some business logic here
+ posts.add(p);
+ }
+
+ public List<Post> getPosts() {
+ // in production code do not return the original set but a wrapped
+ // unmodifiable set
+ return posts;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue55/FieldListTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue55/FieldListTest.java
index c339ef41..9d06a6b8 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue55/FieldListTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue55/FieldListTest.java
@@ -1,58 +1,55 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue55;
import java.util.LinkedList;
import java.util.List;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.introspector.BeanAccess;
public class FieldListTest extends TestCase {
- public void testYaml() {
- Yaml beanLoader = new Yaml();
- beanLoader.setBeanAccess(BeanAccess.FIELD);
- BlogField rehydrated = beanLoader.loadAs(Util.getLocalResource("issues/issue55_2.txt"),
- BlogField.class);
- assertEquals(4, rehydrated.getPosts().size());
+ public void testYaml() {
+ Yaml beanLoader = new Yaml();
+ beanLoader.setBeanAccess(BeanAccess.FIELD);
+ BlogField rehydrated =
+ beanLoader.loadAs(Util.getLocalResource("issues/issue55_2.txt"), BlogField.class);
+ assertEquals(4, rehydrated.getPosts().size());
+ }
+
+ public void testFailureWithoutFieldAccess() {
+ Yaml beanLoader = new Yaml();
+ try {
+ beanLoader.loadAs(Util.getLocalResource("issues/issue55_2.txt"), BlogField.class);
+ fail("Private field must not be available");
+ } catch (Exception e) {
+ assertTrue(e.getMessage().contains("No writable property 'posts'"));
}
+ }
- public void testFailureWithoutFieldAccess() {
- Yaml beanLoader = new Yaml();
- try {
- beanLoader.loadAs(Util.getLocalResource("issues/issue55_2.txt"), BlogField.class);
- fail("Private field must not be available");
- } catch (Exception e) {
- assertTrue(e.getMessage().contains("Unable to find property 'posts'"));
- }
- }
+ public static class BlogField {
- public static class BlogField {
- private List<Integer> posts;
+ private final List<Integer> posts;
- public BlogField() {
- posts = new LinkedList<Integer>();
- }
+ public BlogField() {
+ posts = new LinkedList<Integer>();
+ }
- public List<Integer> getPosts() {
- return posts;
- }
+ public List<Integer> getPosts() {
+ return posts;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue55/JavaBeanListTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue55/JavaBeanListTest.java
index 1e8966f7..6637b0f8 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue55/JavaBeanListTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue55/JavaBeanListTest.java
@@ -1,58 +1,55 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue55;
import java.util.LinkedList;
import java.util.List;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.introspector.BeanAccess;
public class JavaBeanListTest extends TestCase {
- public void testYaml() {
- Yaml beanLoader = new Yaml();
- beanLoader.setBeanAccess(BeanAccess.FIELD);
- BlogBean rehydrated = (BlogBean) beanLoader.loadAs(
- Util.getLocalResource("issues/issue55_2.txt"), BlogBean.class);
- assertEquals(4, rehydrated.getPosts().size());
+ public void testYaml() {
+ Yaml beanLoader = new Yaml();
+ beanLoader.setBeanAccess(BeanAccess.FIELD);
+ BlogBean rehydrated =
+ beanLoader.loadAs(Util.getLocalResource("issues/issue55_2.txt"), BlogBean.class);
+ assertEquals(4, rehydrated.getPosts().size());
+ }
+
+ public void testFailureWithoutFieldAccess() {
+ Yaml beanLoader = new Yaml();
+ try {
+ beanLoader.loadAs(Util.getLocalResource("issues/issue55_2.txt"), BlogBean.class);
+ fail("Private field must not be available");
+ } catch (Exception e) {
+ assertTrue(e.getMessage().contains("No writable property 'posts'"));
}
+ }
- public void testFailureWithoutFieldAccess() {
- Yaml beanLoader = new Yaml();
- try {
- beanLoader.loadAs(Util.getLocalResource("issues/issue55_2.txt"), BlogBean.class);
- fail("Private field must not be available");
- } catch (Exception e) {
- assertTrue(e.getMessage().contains("Unable to find property 'posts'"));
- }
- }
+ public static class BlogBean {
- public static class BlogBean {
- private List<Integer> posts;
+ private final List<Integer> posts;
- public BlogBean() {
- posts = new LinkedList<Integer>();
- }
+ public BlogBean() {
+ posts = new LinkedList<Integer>();
+ }
- public List<Integer> getPosts() {
- return posts;
- }
+ public List<Integer> getPosts() {
+ return posts;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue55/Post.java b/src/test/java/org/yaml/snakeyaml/issues/issue55/Post.java
index d9e60cf3..9f3e3055 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue55/Post.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue55/Post.java
@@ -1,42 +1,41 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue55;
class Post {
- private String title;
- private String text;
- public static String description;
- public transient String cache;
- // TODO empty constructor is required to support 2 step construction
- protected Post() {
- description = "I should not be dumped.";
- cache = "Q34598723SDW234";
- }
+ private String title;
+ private String text;
+ public static String description;
+ public transient String cache;
- public Post(String title, String text) {
- this.title = title;
- this.text = text;
- }
+ // empty constructor is required to support 2 step construction
+ protected Post() {
+ description = "I should not be dumped.";
+ cache = "Q34598723SDW234";
+ }
- public String getTitle() {
- return title;
- }
+ public Post(String title, String text) {
+ this.title = title;
+ this.text = text;
+ }
- public String getText() {
- return text;
- }
-} \ No newline at end of file
+ public String getTitle() {
+ return title;
+ }
+
+ public String getText() {
+ return text;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue55/YamlFieldAccessCollectionTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue55/YamlFieldAccessCollectionTest.java
index 64c24d48..470067ed 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue55/YamlFieldAccessCollectionTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue55/YamlFieldAccessCollectionTest.java
@@ -1,25 +1,21 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue55;
import java.util.Collection;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.introspector.BeanAccess;
@@ -27,70 +23,69 @@ import org.yaml.snakeyaml.representer.Representer;
public class YamlFieldAccessCollectionTest extends TestCase {
- public void testYaml() {
- Blog original = createTestBlog();
- Yaml yamlDumper = constructYamlDumper();
- String serialized = yamlDumper.dumpAsMap(original);
- // System.out.println(serialized);
- assertEquals(Util.getLocalResource("issues/issue55_1.txt"), serialized);
- Yaml blogLoader = new Yaml();
- blogLoader.setBeanAccess(BeanAccess.FIELD);
- Blog rehydrated = blogLoader.loadAs(serialized, Blog.class);
- checkTestBlog(rehydrated);
- }
+ public void testYaml() {
+ Blog original = createTestBlog();
+ Yaml yamlDumper = constructYamlDumper();
+ String serialized = yamlDumper.dumpAsMap(original);
+ // System.out.println(serialized);
+ assertEquals(Util.getLocalResource("issues/issue55_1.txt"), serialized);
+ Yaml blogLoader = new Yaml();
+ blogLoader.setBeanAccess(BeanAccess.FIELD);
+ Blog rehydrated = blogLoader.loadAs(serialized, Blog.class);
+ checkTestBlog(rehydrated);
+ }
- @SuppressWarnings("unchecked")
- public void testYamlWithoutConfiguration() {
- Yaml yaml = new Yaml();
- Map<String, Object> map = (Map<String, Object>) yaml.load(Util
- .getLocalResource("issues/issue55_1.txt"));
- assertEquals(1, map.size());
- }
+ @SuppressWarnings("unchecked")
+ public void testYamlWithoutConfiguration() {
+ Yaml yaml = new Yaml();
+ Map<String, Object> map = yaml.load(Util.getLocalResource("issues/issue55_1.txt"));
+ assertEquals(1, map.size());
+ }
- public void testYamlFailure() {
- Yaml beanLoader = new Yaml();
- try {
- beanLoader.loadAs(Util.getLocalResource("issues/issue55_1.txt"), Blog.class);
- fail("BeanAccess.FIELD is required.");
- } catch (Exception e) {
- assertTrue(e.getMessage(), e.getMessage().contains("Unable to find property 'posts'"));
- }
+ public void testYamlFailure() {
+ Yaml beanLoader = new Yaml();
+ try {
+ beanLoader.loadAs(Util.getLocalResource("issues/issue55_1.txt"), Blog.class);
+ fail("BeanAccess.FIELD is required.");
+ } catch (Exception e) {
+ assertTrue(e.getMessage(), e.getMessage().contains("No writable property 'posts'"));
}
+ }
- public void testYamlDefaultWithFeildAccess() {
- Yaml yaml = new Yaml();
- yaml.setBeanAccess(BeanAccess.FIELD);
- Blog original = createTestBlog();
- String serialized = yaml.dump(original);
- assertEquals(Util.getLocalResource("issues/issue55_1_rootTag.txt"), serialized);
- Blog rehydrated = (Blog) yaml.load(serialized);
- checkTestBlog(rehydrated);
- }
+ public void testYamlDefaultWithFeildAccess() {
+ Yaml yaml = new Yaml();
+ yaml.setBeanAccess(BeanAccess.FIELD);
+ Blog original = createTestBlog();
+ String serialized = yaml.dump(original);
+ assertEquals(Util.getLocalResource("issues/issue55_1_rootTag.txt"), serialized);
+ Blog rehydrated = yaml.load(serialized);
+ checkTestBlog(rehydrated);
+ }
- protected Yaml constructYamlDumper() {
- Representer representer = new Representer();
- representer.getPropertyUtils().setBeanAccess(BeanAccess.FIELD);
- Yaml yaml = new Yaml(representer);
- return yaml;
- }
+ protected Yaml constructYamlDumper() {
+ Representer representer = new Representer();
+ representer.getPropertyUtils().setBeanAccess(BeanAccess.FIELD);
+ Yaml yaml = new Yaml(representer);
+ return yaml;
+ }
- protected Yaml constructYamlParser() {
- Yaml yaml = new Yaml();
- yaml.setBeanAccess(BeanAccess.FIELD);
- return yaml;
- }
+ protected Yaml constructYamlParser() {
+ Yaml yaml = new Yaml();
+ yaml.setBeanAccess(BeanAccess.FIELD);
+ return yaml;
+ }
- protected Blog createTestBlog() {
- Post post1 = new Post("Test", "Dummy");
- Post post2 = new Post("Highly", "Creative");
- Blog blog = new Blog();
- blog.addPost(post1);
- blog.addPost(post2);
- return blog;
- }
+ protected Blog createTestBlog() {
+ Post post1 = new Post("Test", "Dummy");
+ Post post2 = new Post("Highly", "Creative");
+ Blog blog = new Blog();
+ blog.addPost(post1);
+ blog.addPost(post2);
+ return blog;
+ }
- protected void checkTestBlog(Blog blog) {
- Collection<Post> posts = blog.getPosts();
- assertEquals("Blog contains 2 posts", 2, posts.size());
- }
+ protected void checkTestBlog(Blog blog) {
+ Collection<Post> posts = blog.getPosts();
+ assertEquals("Blog contains 2 posts", 2, posts.size());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue56/CodeBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue56/CodeBean.java
index 00043633..b800b0b1 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue56/CodeBean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue56/CodeBean.java
@@ -1,56 +1,55 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue56;
public class CodeBean {
- private String country;
- private String type;
- private String value;
- public static int counter;
-
- public CodeBean() {
- counter++;
- }
-
- public String getCountry() {
- return country;
- }
-
- public void setCountry(String country) {
- this.country = country;
- }
-
- public String getType() {
- return type;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public String getValue() {
- return value;
- }
-
- public void setValue(String value) {
- this.value = value;
- }
-
- @Override
- public String toString() {
- return "CodeBean: " + getValue();
- }
-} \ No newline at end of file
+
+ private String country;
+ private String type;
+ private String value;
+ public static int counter;
+
+ public CodeBean() {
+ counter++;
+ }
+
+ public String getCountry() {
+ return country;
+ }
+
+ public void setCountry(String country) {
+ this.country = country;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ @Override
+ public String toString() {
+ return "CodeBean: " + getValue();
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue56/PerlTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue56/PerlTest.java
index 1f04b843..3ea9f6d1 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue56/PerlTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue56/PerlTest.java
@@ -1,26 +1,22 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue56;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.TypeDescription;
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
@@ -32,95 +28,97 @@ import org.yaml.snakeyaml.nodes.Tag;
public class PerlTest extends TestCase {
- @SuppressWarnings({ "unchecked", "rawtypes" })
- public void testMaps() {
- Yaml yaml = new Yaml(new CustomConstructor());
- String input = Util.getLocalResource("issues/issue56-1.yaml");
- int counter = 0;
- for (Object obj : yaml.loadAll(input)) {
- // System.out.println(obj);
- Map<String, Object> map = (Map<String, Object>) obj;
- Integer oid = (Integer) map.get("oid");
- if (oid == 123058) {
- ArrayList a = (ArrayList) map.get("sequences");
- LinkedHashMap b = (LinkedHashMap) a.get(0);
- LinkedHashMap c = (LinkedHashMap) b.get("atc");
- LinkedHashMap d = (LinkedHashMap) c.get("name");
- LinkedHashMap e = (LinkedHashMap) d.get("canonical");
- String acidNameDe = e.entrySet().toArray()[1].toString();
- assertEquals("Unicode escaped sequence must be decoded.",
- ":de=Acetylsalicylsäure", acidNameDe);
- }
- assertTrue(oid > 10000);
- counter++;
- }
- assertEquals(4, counter);
- assertEquals(0, CodeBean.counter);
+ @SuppressWarnings({"unchecked", "rawtypes"})
+ public void testMaps() {
+ Yaml yaml = new Yaml(new CustomConstructor());
+ String input = Util.getLocalResource("issues/issue56-1.yaml");
+ int counter = 0;
+ for (Object obj : yaml.loadAll(input)) {
+ // System.out.println(obj);
+ Map<String, Object> map = (Map<String, Object>) obj;
+ Integer oid = (Integer) map.get("oid");
+ if (oid == 123058) {
+ ArrayList a = (ArrayList) map.get("sequences");
+ LinkedHashMap b = (LinkedHashMap) a.get(0);
+ LinkedHashMap c = (LinkedHashMap) b.get("atc");
+ LinkedHashMap d = (LinkedHashMap) c.get("name");
+ LinkedHashMap e = (LinkedHashMap) d.get("canonical");
+ String acidNameDe = e.entrySet().toArray()[1].toString();
+ assertEquals("Unicode escaped sequence must be decoded.", ":de=Acetylsalicylsäure",
+ acidNameDe);
+ }
+ assertTrue(oid > 10000);
+ counter++;
}
+ assertEquals(4, counter);
+ assertEquals(0, CodeBean.counter);
+ }
- private class CustomConstructor extends SafeConstructor {
- public CustomConstructor() {
- // define tags which begin with !org.yaml.
- String prefix = "!de.oddb.org,2007/ODDB";
- this.yamlMultiConstructors.put(prefix, new ConstructYamlMap());
- }
+ private class CustomConstructor extends SafeConstructor {
+
+ public CustomConstructor() {
+ // define tags which begin with !org.yaml.
+ String prefix = "!de.oddb.org,2007/ODDB";
+ this.yamlMultiConstructors.put(prefix, new ConstructYamlMap());
}
+ }
- @SuppressWarnings("unchecked")
- public void testJavaBeanWithTypeDescription() {
- Constructor c = new CustomBeanConstructor();
- TypeDescription descr = new TypeDescription(CodeBean.class, new Tag(
- "!de.oddb.org,2007/ODDB::Util::Code"));
- c.addTypeDescription(descr);
- Yaml yaml = new Yaml(c);
- String input = Util.getLocalResource("issues/issue56-1.yaml");
- int counter = 0;
- for (Object obj : yaml.loadAll(input)) {
- // System.out.println(obj);
- Map<String, Object> map = (Map<String, Object>) obj;
- Integer oid = (Integer) map.get("oid");
- assertTrue(oid > 10000);
- counter++;
- }
- assertEquals(4, counter);
- assertEquals(55, CodeBean.counter);
+ @SuppressWarnings("unchecked")
+ public void testJavaBeanWithTypeDescription() {
+ Constructor c = new CustomBeanConstructor();
+ TypeDescription descr =
+ new TypeDescription(CodeBean.class, new Tag("!de.oddb.org,2007/ODDB::Util::Code"));
+ c.addTypeDescription(descr);
+ Yaml yaml = new Yaml(c);
+ String input = Util.getLocalResource("issues/issue56-1.yaml");
+ int counter = 0;
+ for (Object obj : yaml.loadAll(input)) {
+ // System.out.println(obj);
+ Map<String, Object> map = (Map<String, Object>) obj;
+ Integer oid = (Integer) map.get("oid");
+ assertTrue(oid > 10000);
+ counter++;
}
+ assertEquals(4, counter);
+ assertEquals(55, CodeBean.counter);
+ }
- @SuppressWarnings("unchecked")
- public void testJavaBean() {
- Constructor c = new CustomBeanConstructor();
- Yaml yaml = new Yaml(c);
- String input = Util.getLocalResource("issues/issue56-1.yaml");
- int counter = 0;
- for (Object obj : yaml.loadAll(input)) {
- // System.out.println(obj);
- Map<String, Object> map = (Map<String, Object>) obj;
- Integer oid = (Integer) map.get("oid");
- assertTrue(oid > 10000);
- counter++;
- }
- assertEquals(4, counter);
- assertEquals(55, CodeBean.counter);
+ @SuppressWarnings("unchecked")
+ public void testJavaBean() {
+ Constructor c = new CustomBeanConstructor();
+ Yaml yaml = new Yaml(c);
+ String input = Util.getLocalResource("issues/issue56-1.yaml");
+ int counter = 0;
+ for (Object obj : yaml.loadAll(input)) {
+ // System.out.println(obj);
+ Map<String, Object> map = (Map<String, Object>) obj;
+ Integer oid = (Integer) map.get("oid");
+ assertTrue(oid > 10000);
+ counter++;
}
+ assertEquals(4, counter);
+ assertEquals(55, CodeBean.counter);
+ }
- private class CustomBeanConstructor extends Constructor {
- public CustomBeanConstructor() {
- // define tags which begin with !org.yaml.
- String prefix = "!de.oddb.org,2007/ODDB";
- this.yamlMultiConstructors.put(prefix, new ConstructYamlMap());
- }
+ private class CustomBeanConstructor extends Constructor {
- protected Construct getConstructor(Node node) {
- if (node.getTag().equals(new Tag("!de.oddb.org,2007/ODDB::Util::Code"))) {
- node.setUseClassConstructor(true);
- node.setType(CodeBean.class);
- }
- return super.getConstructor(node);
- }
+ public CustomBeanConstructor() {
+ // define tags which begin with !org.yaml.
+ String prefix = "!de.oddb.org,2007/ODDB";
+ this.yamlMultiConstructors.put(prefix, new ConstructYamlMap());
}
- @Override
- protected void setUp() {
- CodeBean.counter = 0;
+ protected Construct getConstructor(Node node) {
+ if (node.getTag().equals(new Tag("!de.oddb.org,2007/ODDB::Util::Code"))) {
+ node.setUseClassConstructor(true);
+ node.setType(CodeBean.class);
+ }
+ return super.getConstructor(node);
}
+ }
+
+ @Override
+ protected void setUp() {
+ CodeBean.counter = 0;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue58/NullValueDumperTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue58/NullValueDumperTest.java
index 9321c020..5d2b561d 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue58/NullValueDumperTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue58/NullValueDumperTest.java
@@ -1,60 +1,57 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue58;
import java.util.ArrayList;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class NullValueDumperTest extends TestCase {
- public static class Foo {
- private ArrayList<Object> bar = new ArrayList<Object>();
+ public static class Foo {
- public ArrayList<Object> getBar() {
- return bar;
- }
-
- public void setBar(ArrayList<Object> bar) {
- this.bar = bar;
- }
- }
+ private ArrayList<Object> bar = new ArrayList<Object>();
- public void testListElement() {
- final Foo foo = new Foo();
- foo.bar.add(1);
- foo.bar.add("A");
- foo.bar.add(3.14);
- Yaml yaml = new Yaml();
- assertEquals("bar:\n- 1\n- A\n- 3.14\n", yaml.dumpAsMap(foo));
+ public ArrayList<Object> getBar() {
+ return bar;
}
- public void testNullListElement() {
- final Foo foo = new Foo();
-
- foo.bar.add(1);
- foo.bar.add("A");
- foo.bar.add(null);
- foo.bar.add(3.14);
- Yaml yaml = new Yaml();
- assertEquals("bar:\n- 1\n- A\n- null\n- 3.14\n", yaml.dumpAsMap(foo));
- assertEquals(
- "!!org.yaml.snakeyaml.issues.issue58.NullValueDumperTest$Foo\nbar: [1, A, null, 3.14]\n",
- new Yaml().dump(foo));
+ public void setBar(ArrayList<Object> bar) {
+ this.bar = bar;
}
+ }
+
+ public void testListElement() {
+ final Foo foo = new Foo();
+ foo.bar.add(1);
+ foo.bar.add("A");
+ foo.bar.add(3.14);
+ Yaml yaml = new Yaml();
+ assertEquals("bar:\n- 1\n- A\n- 3.14\n", yaml.dumpAsMap(foo));
+ }
+
+ public void testNullListElement() {
+ final Foo foo = new Foo();
+
+ foo.bar.add(1);
+ foo.bar.add("A");
+ foo.bar.add(null);
+ foo.bar.add(3.14);
+ Yaml yaml = new Yaml();
+ assertEquals("bar:\n- 1\n- A\n- null\n- 3.14\n", yaml.dumpAsMap(foo));
+ assertEquals(
+ "!!org.yaml.snakeyaml.issues.issue58.NullValueDumperTest$Foo\nbar: [1, A, null, 3.14]\n",
+ new Yaml().dump(foo));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue60/CustomOrderTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue60/CustomOrderTest.java
index 0942b53d..6e93d057 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue60/CustomOrderTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue60/CustomOrderTest.java
@@ -1,29 +1,24 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue60;
-import java.beans.IntrospectionException;
import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.introspector.BeanAccess;
@@ -31,54 +26,54 @@ import org.yaml.snakeyaml.introspector.Property;
import org.yaml.snakeyaml.introspector.PropertyUtils;
import org.yaml.snakeyaml.representer.Representer;
-//issue 59
+// issue 59
public class CustomOrderTest extends TestCase {
- public void testReversedOrder() {
- Representer repr = new Representer();
- repr.setPropertyUtils(new ReversedPropertyUtils());
- Yaml yaml = new Yaml(repr);
- String output = yaml.dump(getBean());
- // System.out.println(output);
- assertEquals(Util.getLocalResource("issues/issue59-1.yaml"), output);
- }
+ public void testReversedOrder() {
+ Representer repr = new Representer();
+ repr.setPropertyUtils(new ReversedPropertyUtils());
+ Yaml yaml = new Yaml(repr);
+ String output = yaml.dump(getBean());
+ // System.out.println(output);
+ assertEquals(Util.getLocalResource("issues/issue59-1.yaml"), output);
+ }
- private class ReversedPropertyUtils extends PropertyUtils {
- @Override
- protected Set<Property> createPropertySet(Class<? extends Object> type, BeanAccess bAccess)
- throws IntrospectionException {
- Set<Property> result = new TreeSet<Property>(Collections.reverseOrder());
- result.addAll(super.createPropertySet(type, bAccess));
- return result;
- }
- }
+ private class ReversedPropertyUtils extends PropertyUtils {
- public void testUnsorted() {
- Representer repr = new Representer();
- repr.setPropertyUtils(new UnsortedPropertyUtils());
- Yaml yaml = new Yaml(repr);
- String output = yaml.dump(getBean());
- // System.out.println(output);
- assertEquals(Util.getLocalResource("issues/issue59-2.yaml"), output);
+ @Override
+ protected Set<Property> createPropertySet(Class<? extends Object> type, BeanAccess bAccess) {
+ Set<Property> result = new TreeSet<Property>(Collections.reverseOrder());
+ result.addAll(super.createPropertySet(type, bAccess));
+ return result;
}
+ }
- private class UnsortedPropertyUtils extends PropertyUtils {
- @Override
- protected Set<Property> createPropertySet(Class<? extends Object> type, BeanAccess bAccess)
- throws IntrospectionException {
- Set<Property> result = new LinkedHashSet<Property>(getPropertiesMap(type,
- BeanAccess.FIELD).values());
- result.remove(result.iterator().next());// drop 'listInt' property
- return result;
- }
- }
+ public void testUnsorted() {
+ Representer repr = new Representer();
+ repr.setPropertyUtils(new UnsortedPropertyUtils());
+ Yaml yaml = new Yaml(repr);
+ String output = yaml.dump(getBean());
+ // System.out.println(output);
+ assertEquals(Util.getLocalResource("issues/issue59-2.yaml"), output);
+ }
+
+ private class UnsortedPropertyUtils extends PropertyUtils {
- private SkipBean getBean() {
- SkipBean bean = new SkipBean();
- bean.setText("foo");
- bean.setListDate(null);
- bean.setListInt(Arrays.asList(new Integer[] { null, 1, 2, 3 }));
- bean.setListStr(Arrays.asList(new String[] { "bar", null, "foo", null }));
- return bean;
+ @Override
+ protected Set<Property> createPropertySet(Class<? extends Object> type, BeanAccess bAccess) {
+ Set<Property> result =
+ new LinkedHashSet<Property>(getPropertiesMap(type, BeanAccess.FIELD).values());
+ result.remove(result.iterator().next());// drop 'listInt' property
+ return result;
}
+ }
+
+ private SkipBean getBean() {
+ SkipBean bean = new SkipBean();
+ bean.setText("foo");
+ bean.setListDate(null);
+ bean.setListInt(Arrays.asList(null, 1, 2, 3));
+ bean.setListStr(Arrays.asList("bar", null, "foo", null));
+ return bean;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue60/SkipBean.java b/src/test/java/org/yaml/snakeyaml/issues/issue60/SkipBean.java
index 388feedb..6337afce 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue60/SkipBean.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue60/SkipBean.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue60;
@@ -24,67 +22,67 @@ import java.util.Map;
public class SkipBean {
- private List<Integer> listInt;
- private List<String> listStr;
- private List<Date> listDate;
- private List<File> empty = new ArrayList<File>(0);
- private Map<String, Integer> map = new HashMap<String, Integer>(0);
- private String text;
- private Integer number;
-
- public List<Integer> getListInt() {
- return listInt;
- }
-
- public void setListInt(List<Integer> listInt) {
- this.listInt = listInt;
- }
-
- public List<String> getListStr() {
- return listStr;
- }
-
- public void setListStr(List<String> listStr) {
- this.listStr = listStr;
- }
-
- public List<Date> getListDate() {
- return listDate;
- }
-
- public void setListDate(List<Date> listDate) {
- this.listDate = listDate;
- }
-
- public String getText() {
- return text;
- }
-
- public void setText(String text) {
- this.text = text;
- }
-
- public Integer getNumber() {
- return number;
- }
-
- public void setNumber(Integer number) {
- this.number = number;
- }
-
- public List<File> getEmpty() {
- return empty;
- }
-
- public void setEmpty(List<File> empty) {
- this.empty = empty;
- }
-
- public Map<String, Integer> getMap() {
- return map;
- }
-
- public void setMap(Map<String, Integer> map) {
- this.map = map;
- }
+ private List<Integer> listInt;
+ private List<String> listStr;
+ private List<Date> listDate;
+ private List<File> empty = new ArrayList<File>(0);
+ private Map<String, Integer> map = new HashMap<String, Integer>(0);
+ private String text;
+ private Integer number;
+
+ public List<Integer> getListInt() {
+ return listInt;
+ }
+
+ public void setListInt(List<Integer> listInt) {
+ this.listInt = listInt;
+ }
+
+ public List<String> getListStr() {
+ return listStr;
+ }
+
+ public void setListStr(List<String> listStr) {
+ this.listStr = listStr;
+ }
+
+ public List<Date> getListDate() {
+ return listDate;
+ }
+
+ public void setListDate(List<Date> listDate) {
+ this.listDate = listDate;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ public Integer getNumber() {
+ return number;
+ }
+
+ public void setNumber(Integer number) {
+ this.number = number;
+ }
+
+ public List<File> getEmpty() {
+ return empty;
+ }
+
+ public void setEmpty(List<File> empty) {
+ this.empty = empty;
+ }
+
+ public Map<String, Integer> getMap() {
+ return map;
+ }
+
+ public void setMap(Map<String, Integer> map) {
+ this.map = map;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue60/SkipBeanTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue60/SkipBeanTest.java
index 8cb6e0ef..208dfc91 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue60/SkipBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue60/SkipBeanTest.java
@@ -1,24 +1,20 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue60;
import java.util.Arrays;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.introspector.Property;
@@ -32,67 +28,68 @@ import org.yaml.snakeyaml.representer.Representer;
public class SkipBeanTest extends TestCase {
- public void testSkipNull() {
- Yaml yaml = new Yaml(new SkipNullRepresenter());
- String output = yaml.dump(getBean());
- // System.out.println(output);
- assertEquals(Util.getLocalResource("issues/issue60-1.yaml"), output);
- }
+ public void testSkipNull() {
+ Yaml yaml = new Yaml(new SkipNullRepresenter());
+ String output = yaml.dump(getBean());
+ // System.out.println(output);
+ assertEquals(Util.getLocalResource("issues/issue60-1.yaml"), output);
+ }
- private class SkipNullRepresenter extends Representer {
- @Override
- protected NodeTuple representJavaBeanProperty(Object javaBean, Property property,
- Object propertyValue, Tag customTag) {
- if (propertyValue == null) {
- return null;
- } else {
- return super
- .representJavaBeanProperty(javaBean, property, propertyValue, customTag);
- }
- }
- }
+ private class SkipNullRepresenter extends Representer {
- public void testSkipEmptyCollections() {
- Yaml yaml = new Yaml(new SkipEmptyRepresenter());
- String output = yaml.dump(getBean());
- // System.out.println(output);
- assertEquals(Util.getLocalResource("issues/issue60-2.yaml"), output);
+ @Override
+ protected NodeTuple representJavaBeanProperty(Object javaBean, Property property,
+ Object propertyValue, Tag customTag) {
+ if (propertyValue == null) {
+ return null;
+ } else {
+ return super.representJavaBeanProperty(javaBean, property, propertyValue, customTag);
+ }
}
+ }
- private class SkipEmptyRepresenter extends Representer {
- @Override
- protected NodeTuple representJavaBeanProperty(Object javaBean, Property property,
- Object propertyValue, Tag customTag) {
- NodeTuple tuple = super.representJavaBeanProperty(javaBean, property, propertyValue,
- customTag);
- Node valueNode = tuple.getValueNode();
- if (Tag.NULL.equals(valueNode.getTag())) {
- return null;// skip 'null' values
- }
- if (valueNode instanceof CollectionNode) {
- if (Tag.SEQ.equals(valueNode.getTag())) {
- SequenceNode seq = (SequenceNode) valueNode;
- if (seq.getValue().isEmpty()) {
- return null;// skip empty lists
- }
- }
- if (Tag.MAP.equals(valueNode.getTag())) {
- MappingNode seq = (MappingNode) valueNode;
- if (seq.getValue().isEmpty()) {
- return null;// skip empty maps
- }
- }
- }
- return tuple;
+ public void testSkipEmptyCollections() {
+ Yaml yaml = new Yaml(new SkipEmptyRepresenter());
+ String output = yaml.dump(getBean());
+ // System.out.println(output);
+ assertEquals(Util.getLocalResource("issues/issue60-2.yaml"), output);
+ }
+
+ private class SkipEmptyRepresenter extends Representer {
+
+ @Override
+ protected NodeTuple representJavaBeanProperty(Object javaBean, Property property,
+ Object propertyValue, Tag customTag) {
+ NodeTuple tuple =
+ super.representJavaBeanProperty(javaBean, property, propertyValue, customTag);
+ Node valueNode = tuple.getValueNode();
+ if (Tag.NULL.equals(valueNode.getTag())) {
+ return null;// skip 'null' values
+ }
+ if (valueNode instanceof CollectionNode) {
+ if (Tag.SEQ.equals(valueNode.getTag())) {
+ SequenceNode seq = (SequenceNode) valueNode;
+ if (seq.getValue().isEmpty()) {
+ return null;// skip empty lists
+ }
}
+ if (Tag.MAP.equals(valueNode.getTag())) {
+ MappingNode seq = (MappingNode) valueNode;
+ if (seq.getValue().isEmpty()) {
+ return null;// skip empty maps
+ }
+ }
+ }
+ return tuple;
}
+ }
- private SkipBean getBean() {
- SkipBean bean = new SkipBean();
- bean.setText("foo");
- bean.setListDate(null);
- bean.setListInt(Arrays.asList(new Integer[] { null, 1, 2, 3 }));
- bean.setListStr(Arrays.asList(new String[] { "bar", null, "foo", null }));
- return bean;
- }
+ private SkipBean getBean() {
+ SkipBean bean = new SkipBean();
+ bean.setText("foo");
+ bean.setListDate(null);
+ bean.setListInt(Arrays.asList(null, 1, 2, 3));
+ bean.setListStr(Arrays.asList("bar", null, "foo", null));
+ return bean;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue61/GenericListBeanTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue61/GenericListBeanTest.java
index f872aae6..97ae7624 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue61/GenericListBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue61/GenericListBeanTest.java
@@ -1,117 +1,116 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue61;
import java.util.ArrayList;
import java.util.List;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
public class GenericListBeanTest extends TestCase {
- @SuppressWarnings("unchecked")
- public void testGenericList() {
- Yaml yaml = new Yaml();
- ListProvider<String> listProvider = new ListProvider<String>();
- listProvider.getList().add("foo");
- listProvider.getList().add("bar");
- String s = yaml.dumpAsMap(listProvider);
- // System.out.println(s);
- assertEquals("list:\n- foo\n- bar\n", s);
- // parse
- Yaml loader = new Yaml();
- ListProvider<String> listProvider2 = loader.loadAs(s, ListProvider.class);
- assertEquals("foo", listProvider2.getList().get(0));
- assertEquals("bar", listProvider2.getList().get(1));
- assertEquals(listProvider, listProvider2);
+
+ @SuppressWarnings("unchecked")
+ public void testGenericList() {
+ Yaml yaml = new Yaml();
+ ListProvider<String> listProvider = new ListProvider<String>();
+ listProvider.getList().add("foo");
+ listProvider.getList().add("bar");
+ String s = yaml.dumpAsMap(listProvider);
+ // System.out.println(s);
+ assertEquals("list:\n- foo\n- bar\n", s);
+ // parse
+ Yaml loader = new Yaml();
+ ListProvider<String> listProvider2 = loader.loadAs(s, ListProvider.class);
+ assertEquals("foo", listProvider2.getList().get(0));
+ assertEquals("bar", listProvider2.getList().get(1));
+ assertEquals(listProvider, listProvider2);
+ }
+
+ @SuppressWarnings("rawtypes")
+ public void testGenericBean() {
+ Yaml yaml = new Yaml();
+ ListProvider<Bean> listProvider = new ListProvider<Bean>();
+ Bean foo = new Bean();
+ foo.setName("foo");
+ listProvider.getList().add(foo);
+ Bean bar = new Bean();
+ bar.setName("bar");
+ bar.setNumber(3);
+ listProvider.getList().add(bar);
+ String s = yaml.dumpAsMap(listProvider);
+ // System.out.println(s);
+ String etalon = Util.getLocalResource("issues/issue61-1.yaml");
+ assertEquals(etalon, s);
+ // parse
+ Yaml loader = new Yaml();
+ ListProvider listProvider2 = loader.loadAs(s, ListProvider.class);
+ Bean foo2 = (Bean) listProvider2.getList().get(0);
+ assertEquals("foo", foo2.getName());
+ assertEquals(0, foo2.getNumber());
+ Bean bar2 = (Bean) listProvider2.getList().get(1);
+ assertEquals("bar", bar2.getName());
+ assertEquals(3, bar2.getNumber());
+ }
+
+ public static class ListProvider<T> {
+
+ private List<T> list = new ArrayList<T>();
+
+ public List<T> getList() {
+ return list;
+ }
+
+ public void setList(List<T> list) {
+ this.list = list;
}
@SuppressWarnings("rawtypes")
- public void testGenericBean() {
- Yaml yaml = new Yaml();
- ListProvider<Bean> listProvider = new ListProvider<Bean>();
- Bean foo = new Bean();
- foo.setName("foo");
- listProvider.getList().add(foo);
- Bean bar = new Bean();
- bar.setName("bar");
- bar.setNumber(3);
- listProvider.getList().add(bar);
- String s = yaml.dumpAsMap(listProvider);
- // System.out.println(s);
- String etalon = Util.getLocalResource("issues/issue61-1.yaml");
- assertEquals(etalon, s);
- // parse
- Yaml loader = new Yaml();
- ListProvider listProvider2 = loader.loadAs(s, ListProvider.class);
- Bean foo2 = (Bean) listProvider2.getList().get(0);
- assertEquals("foo", foo2.getName());
- assertEquals(0, foo2.getNumber());
- Bean bar2 = (Bean) listProvider2.getList().get(1);
- assertEquals("bar", bar2.getName());
- assertEquals(3, bar2.getNumber());
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof ListProvider) {
+ return list.equals(((ListProvider) obj).getList());
+ } else {
+ return false;
+ }
}
- public static class ListProvider<T> {
- private List<T> list = new ArrayList<T>();
-
- public List<T> getList() {
- return list;
- }
-
- public void setList(List<T> list) {
- this.list = list;
- }
-
- @SuppressWarnings("rawtypes")
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof ListProvider) {
- return list.equals(((ListProvider) obj).getList());
- } else {
- return false;
- }
- }
-
- @Override
- public int hashCode() {
- return list.hashCode();
- }
+ @Override
+ public int hashCode() {
+ return list.hashCode();
}
+ }
+
+ public static class Bean {
- public static class Bean {
- private String name;
- private int number;
+ private String name;
+ private int number;
- public String getName() {
- return name;
- }
+ public String getName() {
+ return name;
+ }
- public void setName(String name) {
- this.name = name;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public int getNumber() {
- return number;
- }
+ public int getNumber() {
+ return number;
+ }
- public void setNumber(int number) {
- this.number = number;
- }
+ public void setNumber(int number) {
+ this.number = number;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue61/GenericMapBeanTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue61/GenericMapBeanTest.java
index fd1eff27..4fdca222 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue61/GenericMapBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue61/GenericMapBeanTest.java
@@ -1,118 +1,116 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue61;
-import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
public class GenericMapBeanTest extends TestCase {
- @SuppressWarnings("unchecked")
- public void testGenericMap() {
- Yaml yaml = new Yaml();
- MapProvider<String, Integer> listProvider = new MapProvider<String, Integer>();
- listProvider.getMap().put("foo", 17);
- listProvider.getMap().put("bar", 19);
- String s = yaml.dumpAsMap(listProvider);
- // System.out.println(s);
- assertEquals("map:\n foo: 17\n bar: 19\n", s);
- // parse
- Yaml loader = new Yaml();
- MapProvider<String, Integer> listProvider2 = loader.loadAs(s, MapProvider.class);
- assertEquals(new Integer(17), listProvider2.getMap().get("foo"));
- assertEquals(new Integer(19), listProvider2.getMap().get("bar"));
- assertEquals(listProvider, listProvider2);
+
+ @SuppressWarnings("unchecked")
+ public void testGenericMap() {
+ Yaml yaml = new Yaml();
+ MapProvider<String, Integer> listProvider = new MapProvider<String, Integer>();
+ listProvider.getMap().put("foo", 17);
+ listProvider.getMap().put("bar", 19);
+ String s = yaml.dumpAsMap(listProvider);
+ // System.out.println(s);
+ assertEquals("map:\n foo: 17\n bar: 19\n", s);
+ // parse
+ Yaml loader = new Yaml();
+ MapProvider<String, Integer> listProvider2 = loader.loadAs(s, MapProvider.class);
+ assertEquals(Integer.valueOf(17), listProvider2.getMap().get("foo"));
+ assertEquals(Integer.valueOf(19), listProvider2.getMap().get("bar"));
+ assertEquals(listProvider, listProvider2);
+ }
+
+ @SuppressWarnings("rawtypes")
+ public void testGenericBean() {
+ Yaml yaml = new Yaml();
+ MapProvider<String, Bean> listProvider = new MapProvider<String, Bean>();
+ Bean foo = new Bean();
+ foo.setName("foo");
+ listProvider.getMap().put("foo", foo);
+ Bean bar = new Bean();
+ bar.setName("bar");
+ bar.setNumber(3);
+ listProvider.getMap().put("bar", bar);
+ String s = yaml.dumpAsMap(listProvider);
+ // System.out.println(s);
+ String etalon = Util.getLocalResource("issues/issue61-2.yaml");
+ assertEquals(etalon, s);
+ // parse
+ Yaml loader = new Yaml();
+ MapProvider listProvider2 = loader.loadAs(s, MapProvider.class);
+ Bean foo2 = (Bean) listProvider2.getMap().get("foo");
+ assertEquals("foo", foo2.getName());
+ assertEquals(0, foo2.getNumber());
+ Bean bar2 = (Bean) listProvider2.getMap().get("bar");
+ assertEquals("bar", bar2.getName());
+ assertEquals(3, bar2.getNumber());
+ }
+
+ public static class MapProvider<K, V> {
+
+ private Map<K, V> map = new LinkedHashMap<K, V>();
+
+ public Map<K, V> getMap() {
+ return map;
+ }
+
+ public void setMap(Map<K, V> map) {
+ this.map = map;
}
@SuppressWarnings("rawtypes")
- public void testGenericBean() {
- Yaml yaml = new Yaml();
- MapProvider<String, Bean> listProvider = new MapProvider<String, Bean>();
- Bean foo = new Bean();
- foo.setName("foo");
- listProvider.getMap().put("foo", foo);
- Bean bar = new Bean();
- bar.setName("bar");
- bar.setNumber(3);
- listProvider.getMap().put("bar", bar);
- String s = yaml.dumpAsMap(listProvider);
- // System.out.println(s);
- String etalon = Util.getLocalResource("issues/issue61-2.yaml");
- assertEquals(etalon, s);
- // parse
- Yaml loader = new Yaml();
- MapProvider listProvider2 = loader.loadAs(s, MapProvider.class);
- Bean foo2 = (Bean) listProvider2.getMap().get("foo");
- assertEquals("foo", foo2.getName());
- assertEquals(0, foo2.getNumber());
- Bean bar2 = (Bean) listProvider2.getMap().get("bar");
- assertEquals("bar", bar2.getName());
- assertEquals(3, bar2.getNumber());
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof MapProvider) {
+ return map.equals(((MapProvider) obj).getMap());
+ } else {
+ return false;
+ }
}
- public static class MapProvider<K, V> {
- private Map<K, V> map = new LinkedHashMap<K, V>();
-
- public Map<K, V> getMap() {
- return map;
- }
-
- public void setMap(Map<K, V> map) {
- this.map = map;
- }
-
- @SuppressWarnings("rawtypes")
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof MapProvider) {
- return map.equals(((MapProvider) obj).getMap());
- } else {
- return false;
- }
- }
-
- @Override
- public int hashCode() {
- return map.hashCode();
- }
+ @Override
+ public int hashCode() {
+ return map.hashCode();
}
+ }
+
+ public static class Bean {
- public static class Bean {
- private String name;
- private int number;
+ private String name;
+ private int number;
- public String getName() {
- return name;
- }
+ public String getName() {
+ return name;
+ }
- public void setName(String name) {
- this.name = name;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public int getNumber() {
- return number;
- }
+ public int getNumber() {
+ return number;
+ }
- public void setNumber(int number) {
- this.number = number;
- }
+ public void setNumber(int number) {
+ this.number = number;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue64/MethodDesc.java b/src/test/java/org/yaml/snakeyaml/issues/issue64/MethodDesc.java
index 74ea7f51..26e710cb 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue64/MethodDesc.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue64/MethodDesc.java
@@ -1,47 +1,45 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue64;
import java.util.List;
public class MethodDesc {
- private String name;
- private List<Class<?>> argTypes;
- public MethodDesc() {
- }
+ private String name;
+ private List<Class<?>> argTypes;
- public MethodDesc(String name, List<Class<?>> argTypes) {
- this.name = name;
- this.argTypes = argTypes;
- }
+ public MethodDesc() {}
- public String getName() {
- return name;
- }
+ public MethodDesc(String name, List<Class<?>> argTypes) {
+ this.name = name;
+ this.argTypes = argTypes;
+ }
- public void setName(String name) {
- this.name = name;
- }
+ public String getName() {
+ return name;
+ }
- public List<Class<?>> getArgTypes() {
- return argTypes;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public void setArgTypes(List<Class<?>> argTypes) {
- this.argTypes = argTypes;
- }
+ public List<Class<?>> getArgTypes() {
+ return argTypes;
+ }
+
+ public void setArgTypes(List<Class<?>> argTypes) {
+ this.argTypes = argTypes;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue64/ParameterizedTypeTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue64/ParameterizedTypeTest.java
index 50c7bc80..828e8c6d 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue64/ParameterizedTypeTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue64/ParameterizedTypeTest.java
@@ -1,25 +1,21 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue64;
import java.util.LinkedList;
import java.util.List;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.AbstractConstruct;
import org.yaml.snakeyaml.constructor.Constructor;
@@ -31,56 +27,59 @@ import org.yaml.snakeyaml.representer.Representer;
public class ParameterizedTypeTest extends TestCase {
- public void testRepresenter() {
- Yaml yaml = new Yaml(new ClassConstructor(), new ClassRepresenter());
+ public void testRepresenter() {
+ Yaml yaml = new Yaml(new ClassConstructor(), new ClassRepresenter());
+
+ String methodName = "testMethod";
+ List<Class<?>> argTypes = new LinkedList<Class<?>>();
+ argTypes.add(String.class);
+ argTypes.add(Integer.class);
+ argTypes.add(Boolean.class);
+ MethodDesc methodDesc = new MethodDesc(methodName, argTypes);
- String methodName = "testMethod";
- List<Class<?>> argTypes = new LinkedList<Class<?>>();
- argTypes.add(String.class);
- argTypes.add(Integer.class);
- argTypes.add(Boolean.class);
- MethodDesc methodDesc = new MethodDesc(methodName, argTypes);
+ String out = yaml.dump(methodDesc);
+ // System.out.println(out);
+ assertEquals(
+ "!!org.yaml.snakeyaml.issues.issue64.MethodDesc\nargTypes: [!clazz 'String', !clazz 'Integer', !clazz 'Boolean']\nname: testMethod\n",
+ out);
+ MethodDesc parsed = yaml.load(out);
+ assertEquals(methodName, parsed.getName());
+ List<Class<?>> argTypes2 = parsed.getArgTypes();
+ assertEquals(3, argTypes2.size());
+ assertEquals(argTypes, argTypes2);
+ }
- String out = yaml.dump(methodDesc);
- // System.out.println(out);
- assertEquals(
- "!!org.yaml.snakeyaml.issues.issue64.MethodDesc\nargTypes: [!clazz 'String', !clazz 'Integer', !clazz 'Boolean']\nname: testMethod\n",
- out);
- MethodDesc parsed = (MethodDesc) yaml.load(out);
- assertEquals(methodName, parsed.getName());
- List<Class<?>> argTypes2 = parsed.getArgTypes();
- assertEquals(3, argTypes2.size());
- assertEquals(argTypes, argTypes2);
+ static class ClassRepresenter extends Representer {
+
+ public ClassRepresenter() {
+ this.representers.put(Class.class, new RepresentClass());
}
- static class ClassRepresenter extends Representer {
- public ClassRepresenter() {
- this.representers.put(Class.class, new RepresentClass());
- }
+ private class RepresentClass implements Represent {
- private class RepresentClass implements Represent {
- public Node representData(Object data) {
- Class<?> clazz = (Class<?>) data;
- return representScalar(new Tag("!clazz"), clazz.getSimpleName());
- }
- }
+ public Node representData(Object data) {
+ Class<?> clazz = (Class<?>) data;
+ return representScalar(new Tag("!clazz"), clazz.getSimpleName());
+ }
}
+ }
- static class ClassConstructor extends Constructor {
- public ClassConstructor() {
- this.yamlConstructors.put(new Tag("!clazz"), new ConstructClass());
- }
+ static class ClassConstructor extends Constructor {
+
+ public ClassConstructor() {
+ this.yamlConstructors.put(new Tag("!clazz"), new ConstructClass());
+ }
- private class ConstructClass extends AbstractConstruct {
+ private class ConstructClass extends AbstractConstruct {
- public Object construct(Node node) {
- String clazz = (String) constructScalar((ScalarNode) node);
- try {
- return Class.forName("java.lang." + clazz);
- } catch (ClassNotFoundException e) {
- throw new RuntimeException(e);
- }
- }
+ public Object construct(Node node) {
+ String clazz = constructScalar((ScalarNode) node);
+ try {
+ return Class.forName("java.lang." + clazz);
+ } catch (ClassNotFoundException e) {
+ throw new RuntimeException(e);
}
+ }
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue67/NonAsciiCharsInClassNameTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue67/NonAsciiCharsInClassNameTest.java
index 12191736..b9321ebf 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue67/NonAsciiCharsInClassNameTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue67/NonAsciiCharsInClassNameTest.java
@@ -1,110 +1,104 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue67;
import junit.framework.TestCase;
-
-import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.nodes.Tag;
import org.yaml.snakeyaml.representer.Representer;
-import org.yaml.snakeyaml.scanner.ScannerException;
public class NonAsciiCharsInClassNameTest extends TestCase {
- private String PREFIX = "!!org.yaml.snakeyaml.issues.issue67.NonAsciiCharsInClassNameTest$";
-
- public void testDump() {
- Académico obj = new Académico();
- obj.setId(1);
- obj.setName("Foo bar baz");
- Yaml yaml = new Yaml();
- String result = yaml.dump(obj);
- assertEquals(PREFIX + "Acad%C3%A9mico {\n id: 1, name: Foo bar baz}\n", result);
- }
- public void testLoad() {
- Yaml yaml = new Yaml();
- Académico obj = (Académico) yaml.load(PREFIX + "Acad%C3%A9mico {id: 3, name: Foo bar}");
- assertEquals(3, obj.getId());
- assertEquals("Foo bar", obj.getName());
- }
-
- public void testLoadInvalidPattern() {
- try {
- Yaml yaml = new Yaml();
- yaml.load(PREFIX + "Acad%WZ%A9mico {id: 3, name: Foo bar}");
- fail("Illegal hex characters in escape (%) pattern must not be accepted.");
- } catch (Exception e) {
- assertEquals(
- "while scanning a tag\n"
- + " in 'string', line 1, column 1:\n"
- + " !!org.yaml.snakeyaml.issues.issu ... \n"
- + " ^\n"
- + "expected URI escape sequence of 2 hexadecimal numbers, but found W(87) and Z(90)\n"
- + " in 'string', line 1, column 71:\n"
- + " ... nAsciiCharsInClassNameTest$Acad%WZ%A9mico {id: 3, name: Foo bar}\n"
- + " ^\n", e.getMessage());
- }
- }
+ private final String PREFIX = "!!org.yaml.snakeyaml.issues.issue67.NonAsciiCharsInClassNameTest$";
- public static class Académico {
- public int getId() {
- return id;
- }
+ public void testDump() {
+ Académico obj = new Académico();
+ obj.setId(1);
+ obj.setName("Foo bar baz");
+ Yaml yaml = new Yaml();
+ String result = yaml.dump(obj);
+ assertEquals(PREFIX + "Acad%C3%A9mico {\n id: 1, name: Foo bar baz}\n", result);
+ }
- public void setId(int id) {
- this.id = id;
- }
+ public void testLoad() {
+ Yaml yaml = new Yaml();
+ Académico obj = yaml.load(PREFIX + "Acad%C3%A9mico {id: 3, name: Foo bar}");
+ assertEquals(3, obj.getId());
+ assertEquals("Foo bar", obj.getName());
+ }
- public String getName() {
- return name;
- }
+ public void testLoadInvalidPattern() {
+ try {
+ Yaml yaml = new Yaml();
+ yaml.load(PREFIX + "Acad%WZ%A9mico {id: 3, name: Foo bar}");
+ fail("Illegal hex characters in escape (%) pattern must not be accepted.");
+ } catch (Exception e) {
+ assertEquals("while scanning a tag\n" + " in 'string', line 1, column 1:\n"
+ + " !!org.yaml.snakeyaml.issues.issu ... \n" + " ^\n"
+ + "expected URI escape sequence of 2 hexadecimal numbers, but found W(87) and Z(90)\n"
+ + " in 'string', line 1, column 71:\n"
+ + " ... nAsciiCharsInClassNameTest$Acad%WZ%A9mico {id: 3, name: Foo bar}\n"
+ + " ^\n", e.getMessage());
+ }
+ }
- public void setName(String name) {
- this.name = name;
- }
+ public static class Académico {
- private int id;
- private String name;
+ public int getId() {
+ return id;
}
- public void testDumpCustomTag() {
- Académico obj = new Académico();
- obj.setId(123);
- obj.setName("Foo bar 123");
- Representer repr = new Representer();
- repr.addClassTag(Académico.class, new Tag("!foo"));
- Yaml yaml = new Yaml(repr);
- String result = yaml.dump(obj);
- assertEquals("!foo {id: 123, name: Foo bar 123}\n", result);
+ public void setId(int id) {
+ this.id = id;
}
- public void testDumpEscapedTag() {
- Académico obj = new Académico();
- obj.setId(123);
- obj.setName("Foo bar 123");
- Representer repr = new Representer();
- repr.addClassTag(Académico.class, new Tag("!Académico"));
- Yaml yaml = new Yaml(repr);
- String result = yaml.dump(obj);
- assertEquals("!Acad%C3%A9mico {id: 123, name: Foo bar 123}\n", result);
+ public String getName() {
+ return name;
}
- public void testTag() {
- Tag tag = new Tag("!java/javabean:foo.Bar");
- assertEquals("!java/javabean:foo.Bar", tag.getValue());
+ public void setName(String name) {
+ this.name = name;
}
+
+ private int id;
+ private String name;
+ }
+
+ public void testDumpCustomTag() {
+ Académico obj = new Académico();
+ obj.setId(123);
+ obj.setName("Foo bar 123");
+ Representer repr = new Representer();
+ repr.addClassTag(Académico.class, new Tag("!foo"));
+ Yaml yaml = new Yaml(repr);
+ String result = yaml.dump(obj);
+ assertEquals("!foo {id: 123, name: Foo bar 123}\n", result);
+ }
+
+ public void testDumpEscapedTag() {
+ Académico obj = new Académico();
+ obj.setId(123);
+ obj.setName("Foo bar 123");
+ Representer repr = new Representer();
+ repr.addClassTag(Académico.class, new Tag("!Académico"));
+ Yaml yaml = new Yaml(repr);
+ String result = yaml.dump(obj);
+ assertEquals("!Acad%C3%A9mico {id: 123, name: Foo bar 123}\n", result);
+ }
+
+ public void testTag() {
+ Tag tag = new Tag("!java/javabean:foo.Bar");
+ assertEquals("!java/javabean:foo.Bar", tag.getValue());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue68/NonAsciiCharacterTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue68/NonAsciiCharacterTest.java
index 9915abc4..79e6ca45 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue68/NonAsciiCharacterTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue68/NonAsciiCharacterTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue68;
@@ -24,54 +22,52 @@ import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CodingErrorAction;
+import java.nio.charset.StandardCharsets;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.YamlDocument;
public class NonAsciiCharacterTest extends TestCase {
- @SuppressWarnings("unchecked")
- public void testLoad() {
- Yaml yaml = new Yaml();
- Map<String, Map<String, String>> obj = (Map<String, Map<String, String>>) yaml
- .load("test.string: {en: И}");
- assertEquals(1, obj.size());
- assertEquals("Map: " + obj.toString(), "И", obj.get("test.string").get("en"));
- }
+ @SuppressWarnings("unchecked")
+ public void testLoad() {
+ Yaml yaml = new Yaml();
+ Map<String, Map<String, String>> obj = yaml.load("test.string: {en: И}");
+ assertEquals(1, obj.size());
+ assertEquals("Map: " + obj, "И", obj.get("test.string").get("en"));
+ }
- public void testLoadFromFileWithWrongEncoding() {
- try {
- Yaml yaml = new Yaml();
- InputStream input = new FileInputStream("src/test/resources/issues/issue68.txt");
- CharsetDecoder decoder = Charset.forName("Cp1252").newDecoder();
- decoder.onUnmappableCharacter(CodingErrorAction.REPORT);
- Object text = yaml.load(new InputStreamReader(input, decoder));
- input.close();
- fail("Invalid UTF-8 must not be accepted: " + text.toString());
- } catch (Exception e) {
- assertTrue(e.getMessage().endsWith("Exception: Input length = 1"));
- }
+ public void testLoadFromFileWithWrongEncoding() {
+ try {
+ Yaml yaml = new Yaml();
+ InputStream input = new FileInputStream("src/test/resources/issues/issue68.txt");
+ CharsetDecoder decoder = Charset.forName("Cp1252").newDecoder();
+ decoder.onUnmappableCharacter(CodingErrorAction.REPORT);
+ Object text = yaml.load(new InputStreamReader(input, decoder));
+ input.close();
+ fail("Invalid UTF-8 must not be accepted: " + text.toString());
+ } catch (Exception e) {
+ assertTrue(e.getMessage().endsWith("Exception: Input length = 1"));
}
+ }
- public void testLoadFromFile() throws UnsupportedEncodingException, FileNotFoundException {
- Yaml yaml = new Yaml();
- InputStream input = new FileInputStream("src/test/resources/issues/issue68.txt");
- String text = (String) yaml.load(new InputStreamReader(input, "UTF-8"));
- assertEquals("И жить торопится и чувствовать спешит...", text);
- }
+ public void testLoadFromFile() throws UnsupportedEncodingException, FileNotFoundException {
+ Yaml yaml = new Yaml();
+ InputStream input = new FileInputStream("src/test/resources/issues/issue68.txt");
+ String text = yaml.load(new InputStreamReader(input, StandardCharsets.UTF_8));
+ assertEquals("И жить торопится и чувствовать спешит...", text);
+ }
- public void testLoadFromInputStream() throws IOException {
- InputStream input;
- input = YamlDocument.class.getClassLoader().getResourceAsStream("issues/issue68.txt");
- if (input == null) {
- throw new RuntimeException("Can not find issues/issue68.txt");
- }
- Yaml yaml = new Yaml();
- String text = (String) yaml.load(input);// UTF-8 by default
- assertEquals("И жить торопится и чувствовать спешит...", text);
- input.close();
+ public void testLoadFromInputStream() throws IOException {
+ InputStream input;
+ input = YamlDocument.class.getClassLoader().getResourceAsStream("issues/issue68.txt");
+ if (input == null) {
+ throw new RuntimeException("Can not find issues/issue68.txt");
}
+ Yaml yaml = new Yaml();
+ String text = yaml.load(input);// UTF-8 by default
+ assertEquals("И жить торопится и чувствовать спешит...", text);
+ input.close();
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue72/CollectionTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue72/CollectionTest.java
index ca817e2e..92ee6909 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue72/CollectionTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue72/CollectionTest.java
@@ -1,87 +1,85 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue72;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class CollectionTest extends TestCase {
- public void testCollectionList() {
- CollectionList bean = new CollectionList();
- Yaml yaml = new Yaml();
- String doc = yaml.dumpAsMap(bean);
- // System.out.println(doc);
- Yaml beanLoader = new Yaml();
- CollectionList parsed = beanLoader.loadAs(doc, CollectionList.class);
- assertTrue(parsed.getNames().contains("aaa"));
- assertTrue(parsed.getNames().contains("bbb"));
- assertEquals(2, parsed.getNames().size());
- }
+ public void testCollectionList() {
+ CollectionList bean = new CollectionList();
+ Yaml yaml = new Yaml();
+ String doc = yaml.dumpAsMap(bean);
+ // System.out.println(doc);
+ Yaml beanLoader = new Yaml();
+ CollectionList parsed = beanLoader.loadAs(doc, CollectionList.class);
+ assertTrue(parsed.getNames().contains("aaa"));
+ assertTrue(parsed.getNames().contains("bbb"));
+ assertEquals(2, parsed.getNames().size());
+ }
- public static class CollectionList {
- private Collection<String> names;
+ public static class CollectionList {
- public CollectionList() {
- names = new ArrayList<String>();
- names.add("aaa");
- names.add("bbb");
- }
+ private Collection<String> names;
- public Collection<String> getNames() {
- return names;
- }
+ public CollectionList() {
+ names = new ArrayList<String>();
+ names.add("aaa");
+ names.add("bbb");
+ }
- public void setNames(Collection<String> names) {
- this.names = names;
- }
+ public Collection<String> getNames() {
+ return names;
}
- public void testCollectionSet() {
- CollectionSet bean = new CollectionSet();
- Yaml yaml = new Yaml();
- String doc = yaml.dumpAsMap(bean);
- // System.out.println(doc);
- Yaml beanLoader = new Yaml();
- CollectionSet parsed = beanLoader.loadAs(doc, CollectionSet.class);
- assertTrue(parsed.getRoles().contains(11));
- assertTrue(parsed.getRoles().contains(13));
- assertEquals(2, parsed.getRoles().size());
+ public void setNames(Collection<String> names) {
+ this.names = names;
}
+ }
- public static class CollectionSet {
- private Collection<Integer> roles;
+ public void testCollectionSet() {
+ CollectionSet bean = new CollectionSet();
+ Yaml yaml = new Yaml();
+ String doc = yaml.dumpAsMap(bean);
+ // System.out.println(doc);
+ Yaml beanLoader = new Yaml();
+ CollectionSet parsed = beanLoader.loadAs(doc, CollectionSet.class);
+ assertTrue(parsed.getRoles().contains(11));
+ assertTrue(parsed.getRoles().contains(13));
+ assertEquals(2, parsed.getRoles().size());
+ }
- public CollectionSet() {
- roles = new HashSet<Integer>();
- roles.add(11);
- roles.add(13);
- }
+ public static class CollectionSet {
- public Collection<Integer> getRoles() {
- return roles;
- }
+ private Collection<Integer> roles;
+
+ public CollectionSet() {
+ roles = new HashSet<Integer>();
+ roles.add(11);
+ roles.add(13);
+ }
+
+ public Collection<Integer> getRoles() {
+ return roles;
+ }
- public void setRoles(Collection<Integer> roles) {
- this.roles = roles;
- }
+ public void setRoles(Collection<Integer> roles) {
+ this.roles = roles;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue73/ArrayListTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue73/ArrayListTest.java
index b86c6b43..9fed36f3 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue73/ArrayListTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue73/ArrayListTest.java
@@ -1,65 +1,62 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue73;
import java.util.ArrayList;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
/**
- * Test bean when the implementation is defined: ArrayList instead of just the
- * interface List
+ * Test bean when the implementation is defined: ArrayList instead of just the interface List
*/
public class ArrayListTest extends TestCase {
- public void testListImplementation() {
- Bean1 bean = new Bean1();
- bean.setId("ID123");
- ArrayList<String> list = new ArrayList<String>(3);
- list.add("zzz");
- list.add("xxx");
- list.add("ccc");
- bean.setList(list);
- Yaml yaml = new Yaml();
- String doc = yaml.dump(bean);
- // System.out.println(doc);
- Bean1 loaded = (Bean1) yaml.load(doc);
- assertEquals(3, loaded.getList().size());
- assertEquals(ArrayList.class, loaded.getList().getClass());
- }
-
- public static class Bean1 {
- private ArrayList<String> list;
- private String id;
- public ArrayList<String> getList() {
- return list;
- }
+ public void testListImplementation() {
+ Bean1 bean = new Bean1();
+ bean.setId("ID123");
+ ArrayList<String> list = new ArrayList<String>(3);
+ list.add("zzz");
+ list.add("xxx");
+ list.add("ccc");
+ bean.setList(list);
+ Yaml yaml = new Yaml();
+ String doc = yaml.dump(bean);
+ // System.out.println(doc);
+ Bean1 loaded = yaml.load(doc);
+ assertEquals(3, loaded.getList().size());
+ assertEquals(ArrayList.class, loaded.getList().getClass());
+ }
+
+ public static class Bean1 {
+
+ private ArrayList<String> list;
+ private String id;
+
+ public ArrayList<String> getList() {
+ return list;
+ }
- public void setList(ArrayList<String> list) {
- this.list = list;
- }
+ public void setList(ArrayList<String> list) {
+ this.list = list;
+ }
- public String getId() {
- return id;
- }
+ public String getId() {
+ return id;
+ }
- public void setId(String id) {
- this.id = id;
- }
+ public void setId(String id) {
+ this.id = id;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue73/Blog.java b/src/test/java/org/yaml/snakeyaml/issues/issue73/Blog.java
index 1e0be237..e7b80627 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue73/Blog.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue73/Blog.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue73;
@@ -21,59 +19,59 @@ import java.util.TreeSet;
public class Blog {
- private String name;
- private Set<Post> posts = new TreeSet<Post>();
- public Set<Integer> numbers = new LinkedHashSet<Integer>();
- private TreeSet<String> labels = new TreeSet<String>();
+ private String name;
+ private Set<Post> posts = new TreeSet<Post>();
+ public Set<Integer> numbers = new LinkedHashSet<Integer>();
+ private TreeSet<String> labels = new TreeSet<String>();
- public Blog() {
- name = "SuperBlog";
- }
+ public Blog() {
+ name = "SuperBlog";
+ }
- public Blog(String name) {
- this.name = name;
- }
+ public Blog(String name) {
+ this.name = name;
+ }
- public void addPost(Post p) {
- posts.add(p);
- }
+ public void addPost(Post p) {
+ posts.add(p);
+ }
- public Set<Post> getPosts() {
- return posts;
- }
+ public Set<Post> getPosts() {
+ return posts;
+ }
- public String getName() {
- return name;
- }
+ public String getName() {
+ return name;
+ }
- public void setName(String name) {
- this.name = name;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public void setPosts(Set<Post> posts) {
- this.posts = posts;
- }
+ public void setPosts(Set<Post> posts) {
+ this.posts = posts;
+ }
- public TreeSet<String> getLabels() {
- return labels;
- }
+ public TreeSet<String> getLabels() {
+ return labels;
+ }
- public void setLabels(TreeSet<String> labels) {
- this.labels = labels;
- }
+ public void setLabels(TreeSet<String> labels) {
+ this.labels = labels;
+ }
- @Override
- public boolean equals(Object obj) {
- return name.equals(obj.toString());
- }
+ @Override
+ public boolean equals(Object obj) {
+ return name.equals(obj.toString());
+ }
- @Override
- public int hashCode() {
- return name.hashCode();
- }
+ @Override
+ public int hashCode() {
+ return name.hashCode();
+ }
- @Override
- public String toString() {
- return "Blog '" + name + "'";
- }
-} \ No newline at end of file
+ @Override
+ public String toString() {
+ return "Blog '" + name + "'";
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue73/DumpSetAsSequenceExampleTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue73/DumpSetAsSequenceExampleTest.java
index a656a68b..cf465a81 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue73/DumpSetAsSequenceExampleTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue73/DumpSetAsSequenceExampleTest.java
@@ -1,25 +1,21 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue73;
import java.util.Set;
import java.util.TreeSet;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.FlowStyle;
import org.yaml.snakeyaml.Util;
@@ -32,67 +28,69 @@ import org.yaml.snakeyaml.representer.Representer;
public class DumpSetAsSequenceExampleTest extends TestCase {
- public void testDumpFlow() {
- DumperOptions options = new DumperOptions();
- options.setAllowReadOnlyProperties(true);
- Yaml yaml = new Yaml(new SetRepresenter(), options);
- String output = yaml.dump(createBlog());
- // System.out.println(output);
- assertEquals(Util.getLocalResource("issues/issue73-dump7.txt"), output);
- //
- check(output);
- }
+ public void testDumpFlow() {
+ DumperOptions options = new DumperOptions();
+ options.setAllowReadOnlyProperties(true);
+ Yaml yaml = new Yaml(new SetRepresenter(), options);
+ String output = yaml.dump(createBlog());
+ // System.out.println(output);
+ assertEquals(Util.getLocalResource("issues/issue73-dump7.txt"), output);
+ //
+ check(output);
+ }
- public void testDumpBlock() {
- DumperOptions options = new DumperOptions();
- options.setAllowReadOnlyProperties(true);
- options.setDefaultFlowStyle(FlowStyle.BLOCK);
- Yaml yaml = new Yaml(new SetRepresenter(), options);
- String output = yaml.dump(createBlog());
- // System.out.println(output);
- assertEquals(Util.getLocalResource("issues/issue73-dump8.txt"), output);
- //
- check(output);
+ public void testDumpBlock() {
+ DumperOptions options = new DumperOptions();
+ options.setAllowReadOnlyProperties(true);
+ options.setDefaultFlowStyle(FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(new SetRepresenter(), options);
+ String output = yaml.dump(createBlog());
+ // System.out.println(output);
+ assertEquals(Util.getLocalResource("issues/issue73-dump8.txt"), output);
+ //
+ check(output);
+ }
+
+ private class SetRepresenter extends Representer {
+
+ public SetRepresenter() {
+ this.multiRepresenters.put(Set.class, new RepresentIterable());
}
- private class SetRepresenter extends Representer {
- public SetRepresenter() {
- this.multiRepresenters.put(Set.class, new RepresentIterable());
- }
+ private class RepresentIterable implements Represent {
- private class RepresentIterable implements Represent {
- @SuppressWarnings("unchecked")
- public Node representData(Object data) {
- return representSequence(getTag(data.getClass(), Tag.SEQ), (Iterable<Object>) data,
- null);
+ @SuppressWarnings("unchecked")
+ public Node representData(Object data) {
+ return representSequence(getTag(data.getClass(), Tag.SEQ), (Iterable<Object>) data,
+ DumperOptions.FlowStyle.AUTO);
- }
- }
+ }
}
+ }
- private Blog createBlog() {
- Blog blog = new Blog("Test Me!");
- blog.addPost(new Post("Title1", "text 1"));
- blog.addPost(new Post("Title2", "text text 2"));
- blog.numbers.add(19);
- blog.numbers.add(17);
- TreeSet<String> labels = new TreeSet<String>();
- labels.add("Java");
- labels.add("YAML");
- labels.add("SnakeYAML");
- blog.setLabels(labels);
- return blog;
- }
+ private Blog createBlog() {
+ Blog blog = new Blog("Test Me!");
+ blog.addPost(new Post("Title1", "text 1"));
+ blog.addPost(new Post("Title2", "text text 2"));
+ blog.numbers.add(19);
+ blog.numbers.add(17);
+ TreeSet<String> labels = new TreeSet<String>();
+ labels.add("Java");
+ labels.add("YAML");
+ labels.add("SnakeYAML");
+ blog.setLabels(labels);
+ return blog;
+ }
- private void check(String doc) {
- Yaml yamlLoader = new Yaml();
- yamlLoader.setBeanAccess(BeanAccess.FIELD);
- Blog blog = (Blog) yamlLoader.load(doc);
- assertEquals("Test Me!", blog.getName());
- assertEquals(2, blog.numbers.size());
- assertEquals(2, blog.getPosts().size());
- for (Post post : blog.getPosts()) {
- assertEquals(Post.class, post.getClass());
- }
+ private void check(String doc) {
+ Yaml yamlLoader = new Yaml();
+ yamlLoader.setBeanAccess(BeanAccess.FIELD);
+ Blog blog = yamlLoader.load(doc);
+ assertEquals("Test Me!", blog.getName());
+ assertEquals(2, blog.numbers.size());
+ assertEquals(2, blog.getPosts().size());
+ for (Post post : blog.getPosts()) {
+ assertEquals(Post.class, post.getClass());
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue73/Post.java b/src/test/java/org/yaml/snakeyaml/issues/issue73/Post.java
index 17395495..9204d39e 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue73/Post.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue73/Post.java
@@ -1,62 +1,59 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue73;
class Post implements Comparable<Post> {
- private String title;
- private String text;
+ private String title;
+ private String text;
- protected Post() {
- }
+ protected Post() {}
- public Post(String title, String text) {
- super();
- this.title = title;
- this.text = text;
- }
+ public Post(String title, String text) {
+ super();
+ this.title = title;
+ this.text = text;
+ }
- public String getTitle() {
- return title;
- }
+ public String getTitle() {
+ return title;
+ }
- public String getText() {
- return text;
- }
+ public String getText() {
+ return text;
+ }
- public int compareTo(Post o) {
- return title.compareTo(o.title);
- }
+ public int compareTo(Post o) {
+ return title.compareTo(o.title);
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof Post) {
- return toString().equals(obj.toString());
- } else {
- return false;
- }
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof Post) {
+ return toString().equals(obj.toString());
+ } else {
+ return false;
}
+ }
- @Override
- public int hashCode() {
- return toString().hashCode();
- }
+ @Override
+ public int hashCode() {
+ return toString().hashCode();
+ }
- @Override
- public String toString() {
- return "Post " + title + " " + text;
- }
-} \ No newline at end of file
+ @Override
+ public String toString() {
+ return "Post " + title + " " + text;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue73/RecursiveSetTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue73/RecursiveSetTest.java
index ef8b01fe..48aedff9 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue73/RecursiveSetTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue73/RecursiveSetTest.java
@@ -1,119 +1,120 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue73;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
-
import junit.framework.TestCase;
-
+import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
public class RecursiveSetTest extends TestCase {
- public void testDumpException() {
- Set<Object> set1 = new HashSet<Object>();
- Set<Object> set2 = new HashSet<Object>();
- set1.add(set2);
- set2.add(set1);
- Yaml yaml = new Yaml();
- try {
- yaml.dump(set1);
- fail("Recursive sets are not supported.");
- } catch (StackOverflowError e) {
- assertEquals(null, e.getMessage());
- }
+
+ public void testDumpException() {
+ Set<Object> set1 = new HashSet<Object>();
+ Set<Object> set2 = new HashSet<Object>();
+ set1.add(set2);
+ set2.add(set1);
+ Yaml yaml = new Yaml();
+ try {
+ yaml.dump(set1);
+ fail("Recursive sets are not supported.");
+ } catch (StackOverflowError e) {
+ assertNull(e.getMessage());
}
+ }
- public void testLoadException() {
- String doc = Util.getLocalResource("issues/issue73-recursive4.txt");
- // System.out.println(doc);
- Yaml yaml = new Yaml();
- try {
- yaml.load(doc);
- fail("Recursive sets are not supported.");
- } catch (Exception e) {
- assertTrue(e.getMessage(), e.getMessage().contains("Set cannot be recursive."));
- }
+ public void testLoadException() {
+ String doc = Util.getLocalResource("issues/issue73-recursive4.txt");
+ // System.out.println(doc);
+ Yaml yaml = new Yaml();
+ try {
+ yaml.load(doc);
+ fail("Recursive sets are not supported.");
+ } catch (Exception e) {
+ assertTrue(e.getMessage(), e.getMessage().contains("Set cannot be recursive."));
}
+ }
- /**
- * XXX: sets can be recursive
- */
- @SuppressWarnings("unchecked")
- public void testLoadRecursiveTest() {
- String doc = Util.getLocalResource("issues/issue73-recursive5.txt");
- // System.out.println(doc);
- Yaml yaml = new Yaml();
- Bean1 obj = (Bean1) yaml.load(doc);
- Set<Object> set = obj.getSet();
- // System.out.println(set);
- assertEquals(LinkedHashSet.class, set.getClass());
- assertEquals("ID123", obj.getId());
- assertEquals(3, set.size());
- assertTrue(set.remove("zzz"));
- assertTrue(set.remove("ccc"));
- assertFalse(set.contains("111"));
- try {
- set.contains(set);
- fail("Recursive set fails to provide a hashcode.");
- } catch (StackOverflowError e) {
- // ignore
- }
- //
- Set<Object> self = (Set<Object>) set.iterator().next();
- assertEquals(LinkedHashSet.class, self.getClass());
- assertEquals(set, self);
- assertSame(set, self);
- assertEquals(1, set.size());
- assertEquals(1, self.size());
- set.add("111");
- assertEquals(2, set.size());
- assertEquals(2, self.size());
- //
- self.clear();
- assertTrue(self.isEmpty());
- assertTrue(set.isEmpty());
- assertFalse("Now it should not be recursive any longer (no StackOverflowError).",
- set.contains(set));
- //
- set.add("jjj");
- assertEquals(1, set.size());
- assertEquals(1, self.size());
+ /**
+ * XXX: sets can be recursive
+ */
+ @SuppressWarnings("unchecked")
+ public void testLoadRecursiveTest() {
+ String doc = Util.getLocalResource("issues/issue73-recursive5.txt");
+ // System.out.println(doc);
+ LoaderOptions options = new LoaderOptions();
+ options.setAllowRecursiveKeys(true);
+ Yaml yaml = new Yaml(options);
+ Bean1 obj = yaml.load(doc);
+ Set<Object> set = obj.getSet();
+ // System.out.println(set);
+ assertEquals(LinkedHashSet.class, set.getClass());
+ assertEquals("ID123", obj.getId());
+ assertEquals(3, set.size());
+ assertTrue(set.remove("zzz"));
+ assertTrue(set.remove("ccc"));
+ assertFalse(set.contains("111"));
+ try {
+ set.contains(set);
+ fail("Recursive set fails to provide a hashcode.");
+ } catch (StackOverflowError e) {
+ // ignore
}
+ //
+ Set<Object> self = (Set<Object>) set.iterator().next();
+ assertEquals(LinkedHashSet.class, self.getClass());
+ assertEquals(set, self);
+ assertSame(set, self);
+ assertEquals(1, set.size());
+ assertEquals(1, self.size());
+ set.add("111");
+ assertEquals(2, set.size());
+ assertEquals(2, self.size());
+ //
+ self.clear();
+ assertTrue(self.isEmpty());
+ assertTrue(set.isEmpty());
+ assertFalse("Now it should not be recursive any longer (no StackOverflowError).",
+ set.contains(set));
+ //
+ set.add("jjj");
+ assertEquals(1, set.size());
+ assertEquals(1, self.size());
+ }
- public static class Bean1 {
- private Set<Object> set;
- private String id;
+ public static class Bean1 {
- public Set<Object> getSet() {
- return set;
- }
+ private Set<Object> set;
+ private String id;
- public void setSet(Set<Object> set) {
- this.set = set;
- }
+ public Set<Object> getSet() {
+ return set;
+ }
- public String getId() {
- return id;
- }
+ public void setSet(Set<Object> set) {
+ this.set = set;
+ }
+
+ public String getId() {
+ return id;
+ }
- public void setId(String id) {
- this.id = id;
- }
+ public void setId(String id) {
+ this.id = id;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue73/RecursiveSortedSetTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue73/RecursiveSortedSetTest.java
index 52244298..6229f897 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue73/RecursiveSortedSetTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue73/RecursiveSortedSetTest.java
@@ -1,127 +1,128 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue73;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
-
import junit.framework.TestCase;
-
+import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
public class RecursiveSortedSetTest extends TestCase {
- public void testDumpException() {
- SortedSet<Object> set = new TreeSet<Object>();
- Bean11 bean = new Bean11();
- bean.setId("ID555");
- bean.setSet(set);
- set.add("ggg");
- set.add("hhh");
- set.add(bean);
- Yaml yaml = new Yaml();
- String doc = yaml.dump(bean);
- // System.out.println(doc);
- assertEquals(Util.getLocalResource("issues/issue73-recursive9.txt"), doc);
- }
- public void testLoadException() {
- String doc = Util.getLocalResource("issues/issue73-recursive10.txt");
- // System.out.println(doc);
- Yaml yaml = new Yaml();
- try {
- yaml.load(doc);
- fail("Recursive sets are not supported.");
- } catch (Exception e) {
- assertTrue(e.getMessage(), e.getMessage().contains("Set cannot be recursive."));
- }
- }
+ public void testDumpException() {
+ SortedSet<Object> set = new TreeSet<Object>();
+ Bean11 bean = new Bean11();
+ bean.setId("ID555");
+ bean.setSet(set);
+ set.add("ggg");
+ set.add("hhh");
+ set.add(bean);
+ Yaml yaml = new Yaml();
+ String doc = yaml.dump(bean);
+ // System.out.println(doc);
+ assertEquals(Util.getLocalResource("issues/issue73-recursive9.txt"), doc);
+ }
- /**
- * set and JavaBean refer to each other
- */
- public void testLoadRecursiveTest() {
- String doc = Util.getLocalResource("issues/issue73-recursive9.txt");
- // System.out.println(doc);
- Yaml yaml = new Yaml();
- Bean11 beanWithSet = (Bean11) yaml.load(doc);
- Set<Object> set = beanWithSet.getSet();
- assertEquals(TreeSet.class, set.getClass());
- assertEquals("ID555", beanWithSet.getId());
- assertEquals(3, set.size());
- assertTrue(set.remove("ggg"));
- // assertFalse(set.remove("ggg"));???
- assertTrue(set.remove("hhh"));
- assertEquals(1, set.size());
- //
- Bean11 beanRef = (Bean11) set.iterator().next();
- assertEquals(beanWithSet, beanRef);
- assertSame(beanWithSet, beanRef);
- //
- assertFalse(set.isEmpty());
- assertTrue(set.contains(beanWithSet));
- assertFalse(set.add(beanWithSet));
- assertTrue(set.remove(beanWithSet));
- assertFalse(set.remove(beanWithSet));
- assertTrue(set.isEmpty());
+ public void testLoadException() {
+ String doc = Util.getLocalResource("issues/issue73-recursive10.txt");
+ // System.out.println(doc);
+ Yaml yaml = new Yaml();
+ try {
+ yaml.load(doc);
+ fail("Recursive sets are not supported.");
+ } catch (Exception e) {
+ assertTrue(e.getMessage(), e.getMessage().contains("Set cannot be recursive."));
}
+ }
- public static class Bean11 implements Comparable<Object> {
- private SortedSet<Object> set;
- private String id;
+ /**
+ * set and JavaBean refer to each other
+ */
+ public void testLoadRecursiveTest() {
+ String doc = Util.getLocalResource("issues/issue73-recursive9.txt");
+ // System.out.println(doc);
+ LoaderOptions options = new LoaderOptions();
+ options.setAllowRecursiveKeys(true);
+ Yaml yaml = new Yaml(options);
+ Bean11 beanWithSet = yaml.load(doc);
+ Set<Object> set = beanWithSet.getSet();
+ assertEquals(TreeSet.class, set.getClass());
+ assertEquals("ID555", beanWithSet.getId());
+ assertEquals(3, set.size());
+ assertTrue(set.remove("ggg"));
+ // assertFalse(set.remove("ggg"));???
+ assertTrue(set.remove("hhh"));
+ assertEquals(1, set.size());
+ //
+ Bean11 beanRef = (Bean11) set.iterator().next();
+ assertEquals(beanWithSet, beanRef);
+ assertSame(beanWithSet, beanRef);
+ //
+ assertFalse(set.isEmpty());
+ assertTrue(set.contains(beanWithSet));
+ assertFalse(set.add(beanWithSet));
+ assertTrue(set.remove(beanWithSet));
+ assertFalse(set.remove(beanWithSet));
+ assertTrue(set.isEmpty());
+ }
- public SortedSet<Object> getSet() {
- return set;
- }
+ public static class Bean11 implements Comparable<Object> {
- public void setSet(SortedSet<Object> set) {
- this.set = set;
- }
+ private SortedSet<Object> set;
+ private String id;
- public String getId() {
- return id;
- }
+ public SortedSet<Object> getSet() {
+ return set;
+ }
- public void setId(String id) {
- this.id = id;
- }
+ public void setSet(SortedSet<Object> set) {
+ this.set = set;
+ }
- public int compareTo(Object o) {
- return toString().compareTo(o.toString());
- }
+ public String getId() {
+ return id;
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof Bean11) {
- Bean11 b = (Bean11) obj;
- return id.equals(b.id);
- } else {
- return false;
- }
- }
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public int compareTo(Object o) {
+ return toString().compareTo(o.toString());
+ }
- @Override
- public int hashCode() {
- return toString().hashCode();
- }
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof Bean11) {
+ Bean11 b = (Bean11) obj;
+ return id.equals(b.id);
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ public int hashCode() {
+ return toString().hashCode();
+ }
- @Override
- public String toString() {
- return "Bean id=" + id + "set=" + System.identityHashCode(set);
- }
+ @Override
+ public String toString() {
+ return "Bean id=" + id + "set=" + System.identityHashCode(set);
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue73/SetAsSequenceTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue73/SetAsSequenceTest.java
index 7d3b4afe..74f6a92e 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue73/SetAsSequenceTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue73/SetAsSequenceTest.java
@@ -1,27 +1,22 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue73;
import java.util.HashSet;
-import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
@@ -29,106 +24,106 @@ import org.yaml.snakeyaml.introspector.BeanAccess;
public class SetAsSequenceTest extends TestCase {
- public void testDump() {
- Blog blog = new Blog("Test Me!");
- blog.addPost(new Post("Title1", "text 1"));
- blog.addPost(new Post("Title2", "text text 2"));
- blog.numbers.add(19);
- blog.numbers.add(17);
- TreeSet<String> labels = new TreeSet<String>();
- labels.add("Java");
- labels.add("YAML");
- labels.add("SnakeYAML");
- blog.setLabels(labels);
- DumperOptions options = new DumperOptions();
- options.setAllowReadOnlyProperties(true);
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(blog);
- // System.out.println(output);
- assertEquals(Util.getLocalResource("issues/issue73-1.txt"), output);
- }
+ public void testDump() {
+ Blog blog = new Blog("Test Me!");
+ blog.addPost(new Post("Title1", "text 1"));
+ blog.addPost(new Post("Title2", "text text 2"));
+ blog.numbers.add(19);
+ blog.numbers.add(17);
+ TreeSet<String> labels = new TreeSet<String>();
+ labels.add("Java");
+ labels.add("YAML");
+ labels.add("SnakeYAML");
+ blog.setLabels(labels);
+ DumperOptions options = new DumperOptions();
+ options.setAllowReadOnlyProperties(true);
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(blog);
+ // System.out.println(output);
+ assertEquals(Util.getLocalResource("issues/issue73-1.txt"), output);
+ }
- public void testLoad() {
- Yaml yaml = new Yaml();
- yaml.setBeanAccess(BeanAccess.FIELD);
- String doc = Util.getLocalResource("issues/issue73-1.txt");
- Blog blog = (Blog) yaml.load(doc);
- // System.out.println(blog);
- assertEquals("Test Me!", blog.getName());
- assertEquals(2, blog.numbers.size());
- assertEquals(2, blog.getPosts().size());
- for (Post post : blog.getPosts()) {
- assertEquals(Post.class, post.getClass());
- }
+ public void testLoad() {
+ Yaml yaml = new Yaml();
+ yaml.setBeanAccess(BeanAccess.FIELD);
+ String doc = Util.getLocalResource("issues/issue73-1.txt");
+ Blog blog = yaml.load(doc);
+ // System.out.println(blog);
+ assertEquals("Test Me!", blog.getName());
+ assertEquals(2, blog.numbers.size());
+ assertEquals(2, blog.getPosts().size());
+ for (Post post : blog.getPosts()) {
+ assertEquals(Post.class, post.getClass());
}
+ }
- public void testYaml() {
- String serialized = Util.getLocalResource("issues/issue73-2.txt");
- // System.out.println(serialized);
- Yaml beanLoader = new Yaml();
- beanLoader.setBeanAccess(BeanAccess.FIELD);
- Blog rehydrated = beanLoader.loadAs(serialized, Blog.class);
- checkTestBlog(rehydrated);
- }
+ public void testYaml() {
+ String serialized = Util.getLocalResource("issues/issue73-2.txt");
+ // System.out.println(serialized);
+ Yaml beanLoader = new Yaml();
+ beanLoader.setBeanAccess(BeanAccess.FIELD);
+ Blog rehydrated = beanLoader.loadAs(serialized, Blog.class);
+ checkTestBlog(rehydrated);
+ }
- protected void checkTestBlog(Blog blog) {
- Set<Post> posts = blog.getPosts();
- assertEquals("Blog contains 2 posts", 2, posts.size());
- assertTrue(posts.contains(new Post("Test", "Dummy")));
- assertTrue(posts.contains(new Post("Highly", "Creative")));
- assertEquals("No tags!", blog.getName());
- assertEquals(0, blog.numbers.size());
- }
+ protected void checkTestBlog(Blog blog) {
+ Set<Post> posts = blog.getPosts();
+ assertEquals("Blog contains 2 posts", 2, posts.size());
+ assertTrue(posts.contains(new Post("Test", "Dummy")));
+ assertTrue(posts.contains(new Post("Highly", "Creative")));
+ assertEquals("No tags!", blog.getName());
+ assertEquals(0, blog.numbers.size());
+ }
- @SuppressWarnings("unchecked")
- public void testLoadRootSet() {
- Yaml yaml = new Yaml();
- String doc = Util.getLocalResource("issues/issue73-3.txt");
- Set<String> strings = (Set<String>) yaml.load(doc);
- // System.out.println(strings);
- assertEquals(3, strings.size());
- assertEquals(HashSet.class, strings.getClass());
- assertTrue(strings.contains("aaa"));
- assertTrue(strings.contains("bbb"));
- assertTrue(strings.contains("ccc"));
- }
+ @SuppressWarnings("unchecked")
+ public void testLoadRootSet() {
+ Yaml yaml = new Yaml();
+ String doc = Util.getLocalResource("issues/issue73-3.txt");
+ Set<String> strings = yaml.load(doc);
+ // System.out.println(strings);
+ assertEquals(3, strings.size());
+ assertEquals(HashSet.class, strings.getClass());
+ assertTrue(strings.contains("aaa"));
+ assertTrue(strings.contains("bbb"));
+ assertTrue(strings.contains("ccc"));
+ }
- @SuppressWarnings("unchecked")
- public void testLoadRootSet2() {
- Yaml yaml = new Yaml();
- String doc = "!!java.util.HashSet {aaa: null, bbb: null, ccc: null}";
- Set<String> strings = (Set<String>) yaml.load(doc);
- // System.out.println(strings);
- assertEquals(3, strings.size());
- assertEquals(LinkedHashSet.class, strings.getClass());
- assertTrue(strings.contains("aaa"));
- assertTrue(strings.contains("bbb"));
- assertTrue(strings.contains("ccc"));
- }
+ @SuppressWarnings("unchecked")
+ public void testLoadRootSet2() {
+ Yaml yaml = new Yaml();
+ String doc = "!!java.util.HashSet {aaa: null, bbb: null, ccc: null}";
+ Set<String> strings = yaml.load(doc);
+ // System.out.println(strings);
+ assertEquals(3, strings.size());
+ assertEquals(HashSet.class, strings.getClass());
+ assertTrue(strings.contains("aaa"));
+ assertTrue(strings.contains("bbb"));
+ assertTrue(strings.contains("ccc"));
+ }
- @SuppressWarnings("unchecked")
- public void testLoadRootSet3() {
- Yaml yaml = new Yaml();
- String doc = "!!java.util.TreeSet {aaa: null, bbb: null, ccc: null}";
- Set<String> strings = (Set<String>) yaml.load(doc);
- // System.out.println(strings);
- assertEquals(3, strings.size());
- assertEquals(TreeSet.class, strings.getClass());
- assertTrue(strings.contains("aaa"));
- assertTrue(strings.contains("bbb"));
- assertTrue(strings.contains("ccc"));
- }
+ @SuppressWarnings("unchecked")
+ public void testLoadRootSet3() {
+ Yaml yaml = new Yaml();
+ String doc = "!!java.util.TreeSet {aaa: null, bbb: null, ccc: null}";
+ Set<String> strings = yaml.load(doc);
+ // System.out.println(strings);
+ assertEquals(3, strings.size());
+ assertEquals(TreeSet.class, strings.getClass());
+ assertTrue(strings.contains("aaa"));
+ assertTrue(strings.contains("bbb"));
+ assertTrue(strings.contains("ccc"));
+ }
- @SuppressWarnings("unchecked")
- public void testLoadRootSet6() {
- Yaml yaml = new Yaml();
- String doc = Util.getLocalResource("issues/issue73-6.txt");
- Set<String> strings = (Set<String>) yaml.load(doc);
- // System.out.println(strings);
- assertEquals(3, strings.size());
- assertEquals(TreeSet.class, strings.getClass());
- assertTrue(strings.contains("aaa"));
- assertTrue(strings.contains("bbb"));
- assertTrue(strings.contains("ccc"));
- }
+ @SuppressWarnings("unchecked")
+ public void testLoadRootSet6() {
+ Yaml yaml = new Yaml();
+ String doc = Util.getLocalResource("issues/issue73-6.txt");
+ Set<String> strings = yaml.load(doc);
+ // System.out.println(strings);
+ assertEquals(3, strings.size());
+ assertEquals(TreeSet.class, strings.getClass());
+ assertTrue(strings.contains("aaa"));
+ assertTrue(strings.contains("bbb"));
+ assertTrue(strings.contains("ccc"));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue73/TreeSetTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue73/TreeSetTest.java
index 7d4a3e08..924de3ef 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue73/TreeSetTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue73/TreeSetTest.java
@@ -1,69 +1,66 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue73;
import java.util.TreeSet;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
/**
- * Test bean when the implementation is defined: TreeSet instead of just the
- * interface Set
+ * Test bean when the implementation is defined: TreeSet instead of just the interface Set
*/
public class TreeSetTest extends TestCase {
- public void testSetImplementation() {
- Bean1 bean = new Bean1();
- bean.setId("ID123");
- TreeSet<String> list = new TreeSet<String>();
- list.add("zzz");
- list.add("xxx");
- list.add("ccc");
- bean.setSet(list);
- Yaml yaml = new Yaml();
- String doc = yaml.dump(bean);
- // System.out.println(doc);
- //
- Bean1 loaded = (Bean1) yaml.load(doc);
- assertEquals(3, loaded.getSet().size());
- assertEquals(TreeSet.class, loaded.getSet().getClass());
- assertTrue(loaded.getSet().contains("zzz"));
- assertTrue(loaded.getSet().contains("xxx"));
- assertTrue(loaded.getSet().contains("ccc"));
- }
- public static class Bean1 {
- private TreeSet<String> set;
- private String id;
+ public void testSetImplementation() {
+ Bean1 bean = new Bean1();
+ bean.setId("ID123");
+ TreeSet<String> list = new TreeSet<String>();
+ list.add("zzz");
+ list.add("xxx");
+ list.add("ccc");
+ bean.setSet(list);
+ Yaml yaml = new Yaml();
+ String doc = yaml.dump(bean);
+ // System.out.println(doc);
+ //
+ Bean1 loaded = yaml.load(doc);
+ assertEquals(3, loaded.getSet().size());
+ assertEquals(TreeSet.class, loaded.getSet().getClass());
+ assertTrue(loaded.getSet().contains("zzz"));
+ assertTrue(loaded.getSet().contains("xxx"));
+ assertTrue(loaded.getSet().contains("ccc"));
+ }
+
+ public static class Bean1 {
- public TreeSet<String> getSet() {
- return set;
- }
+ private TreeSet<String> set;
+ private String id;
- public void setSet(TreeSet<String> set) {
- this.set = set;
- }
+ public TreeSet<String> getSet() {
+ return set;
+ }
+
+ public void setSet(TreeSet<String> set) {
+ this.set = set;
+ }
- public String getId() {
- return id;
- }
+ public String getId() {
+ return id;
+ }
- public void setId(String id) {
- this.id = id;
- }
+ public void setId(String id) {
+ this.id = id;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue74/ArrayBeanTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue74/ArrayBeanTest.java
index 716294e4..3fc91912 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue74/ArrayBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue74/ArrayBeanTest.java
@@ -1,150 +1,148 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue74;
import java.util.ArrayList;
import java.util.List;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
public class ArrayBeanTest extends TestCase {
- public void testArrayProperty() {
- ArrayMember[] members = new ArrayMember[3];
- members[0] = new ArrayMember("Foo", 21);
- members[1] = new ArrayMember("Bar", 23);
- members[2] = new ArrayMember("Hue Long Hair", 25);
- ArrayBean bean = new ArrayBean();
- bean.setId("ID123");
- bean.setNumber(7);
- bean.setMembers(members);
- bean.openMembers = new ArrayMember[] { new ArrayMember("OpenFoo", 1000),
- new ArrayMember("OpenBar", 2000) };
- List<ArrayMember> list = new ArrayList<ArrayMember>(2);
- list.add(new ArrayMember("John", 111));
- list.add(new ArrayMember("Tony", 222));
- bean.setList(list);
- Yaml yaml = new Yaml();
- String output = yaml.dumpAsMap(bean);
- // System.out.println(output);
- assertEquals(Util.getLocalResource("issues/issue74-array1.txt"), output);
- Yaml beanLoader = new Yaml();
- ArrayBean parsed = beanLoader.loadAs(output, ArrayBean.class);
- // System.out.println(parsed);
- assertEquals(3, parsed.getMembers().length);
- assertEquals(2, parsed.openMembers.length);
- assertEquals(2, parsed.getList().size());
- assertEquals("ID123", parsed.getId());
- assertEquals(7, parsed.getNumber());
- for (ArrayMember member : parsed.getMembers()) {
- assertTrue((member.getAge() >= 21) && (member.getAge() <= 25));
- }
- }
-
- public static class ArrayBean {
- private String id;
- private int number;
- private ArrayMember[] members;
- public ArrayMember[] openMembers;
- private List<ArrayMember> list;
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public int getNumber() {
- return number;
- }
-
- public void setNumber(int number) {
- this.number = number;
- }
-
- public ArrayMember[] getMembers() {
- return members;
- }
-
- public void setMembers(ArrayMember[] members) {
- this.members = members;
- }
-
- public List<ArrayMember> getList() {
- return list;
- }
-
- public void setList(List<ArrayMember> list) {
- this.list = list;
- }
- }
-
- public static class ArrayMember {
- private String name;
- private int age;
-
- public ArrayMember(String name, int age) {
- this.name = name;
- this.age = age;
- }
-
- public ArrayMember() {
- this.name = "NoName";
- this.age = 0;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public int getAge() {
- return age;
- }
-
- public void setAge(int age) {
- this.age = age;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof ArrayMember) {
- ArrayMember m = (ArrayMember) obj;
- return age == m.age;
- } else {
- return false;
- }
- }
-
- @Override
- public int hashCode() {
- return age;
- }
-
- @Override
- public String toString() {
- return "ArrayMember age=" + age;
- }
+ public void testArrayProperty() {
+ ArrayMember[] members = new ArrayMember[3];
+ members[0] = new ArrayMember("Foo", 21);
+ members[1] = new ArrayMember("Bar", 23);
+ members[2] = new ArrayMember("Hue Long Hair", 25);
+ ArrayBean bean = new ArrayBean();
+ bean.setId("ID123");
+ bean.setNumber(7);
+ bean.setMembers(members);
+ bean.openMembers =
+ new ArrayMember[] {new ArrayMember("OpenFoo", 1000), new ArrayMember("OpenBar", 2000)};
+ List<ArrayMember> list = new ArrayList<ArrayMember>(2);
+ list.add(new ArrayMember("John", 111));
+ list.add(new ArrayMember("Tony", 222));
+ bean.setList(list);
+ Yaml yaml = new Yaml();
+ String output = yaml.dumpAsMap(bean);
+ // System.out.println(output);
+ assertEquals(Util.getLocalResource("issues/issue74-array1.txt"), output);
+ Yaml beanLoader = new Yaml();
+ ArrayBean parsed = beanLoader.loadAs(output, ArrayBean.class);
+ // System.out.println(parsed);
+ assertEquals(3, parsed.getMembers().length);
+ assertEquals(2, parsed.openMembers.length);
+ assertEquals(2, parsed.getList().size());
+ assertEquals("ID123", parsed.getId());
+ assertEquals(7, parsed.getNumber());
+ for (ArrayMember member : parsed.getMembers()) {
+ assertTrue((member.getAge() >= 21) && (member.getAge() <= 25));
+ }
+ }
+
+ public static class ArrayBean {
+
+ private String id;
+ private int number;
+ private ArrayMember[] members;
+ public ArrayMember[] openMembers;
+ private List<ArrayMember> list;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public int getNumber() {
+ return number;
+ }
+
+ public void setNumber(int number) {
+ this.number = number;
+ }
+
+ public ArrayMember[] getMembers() {
+ return members;
+ }
+
+ public void setMembers(ArrayMember[] members) {
+ this.members = members;
+ }
+
+ public List<ArrayMember> getList() {
+ return list;
+ }
+
+ public void setList(List<ArrayMember> list) {
+ this.list = list;
+ }
+ }
+
+ public static class ArrayMember {
+
+ private String name;
+ private int age;
+
+ public ArrayMember(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public ArrayMember() {
+ this.name = "NoName";
+ this.age = 0;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof ArrayMember) {
+ ArrayMember m = (ArrayMember) obj;
+ return age == m.age;
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ public int hashCode() {
+ return age;
+ }
+
+ @Override
+ public String toString() {
+ return "ArrayMember age=" + age;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue8/Person.java b/src/test/java/org/yaml/snakeyaml/issues/issue8/Person.java
index 1714a918..ae58fb35 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue8/Person.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue8/Person.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue8;
@@ -21,56 +19,56 @@ import java.io.Serializable;
* to test http://code.google.com/p/snakeyaml/issues/detail?id=8
*/
public class Person implements Serializable {
- private static final long serialVersionUID = 1L;
- private String firstName;
- private String lastName;
- private int hatSize;
- public Person() {
- }
+ private static final long serialVersionUID = 1L;
+ private String firstName;
+ private String lastName;
+ private int hatSize;
- public Person(String firstName, String lastName, int hatSize) {
- this.firstName = firstName;
- this.lastName = lastName;
- this.hatSize = hatSize;
- }
+ public Person() {}
- public String getFirstName() {
- return firstName;
- }
+ public Person(String firstName, String lastName, int hatSize) {
+ this.firstName = firstName;
+ this.lastName = lastName;
+ this.hatSize = hatSize;
+ }
- public void setFirstName(String firstName) {
- this.firstName = firstName;
- }
+ public String getFirstName() {
+ return firstName;
+ }
- public String getLastName() {
- return lastName;
- }
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
- public void setLastName(String lastName) {
- this.lastName = lastName;
- }
+ public String getLastName() {
+ return lastName;
+ }
- public int getHatSize() {
- return hatSize;
- }
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
- public void setHatSize(int hatSize) {
- this.hatSize = hatSize;
- }
+ public int getHatSize() {
+ return hatSize;
+ }
- @Override
- public boolean equals(Object object) {
- if (object instanceof Person) {
- Person person = (Person) object;
- return firstName.equals(person.firstName) && lastName.equals(person.lastName)
- && hatSize == person.hatSize;
- }
- return false;
- }
+ public void setHatSize(int hatSize) {
+ this.hatSize = hatSize;
+ }
- @Override
- public int hashCode() {
- return 1;
+ @Override
+ public boolean equals(Object object) {
+ if (object instanceof Person) {
+ Person person = (Person) object;
+ return firstName.equals(person.firstName) && lastName.equals(person.lastName)
+ && hatSize == person.hatSize;
}
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ return 1;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue8/PrattleRepresenterTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue8/PrattleRepresenterTest.java
index b51ebb45..01b378c9 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue8/PrattleRepresenterTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue8/PrattleRepresenterTest.java
@@ -1,22 +1,19 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue8;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
@@ -24,43 +21,48 @@ import org.yaml.snakeyaml.Yaml;
* to test http://code.google.com/p/snakeyaml/issues/detail?id=8
*/
public class PrattleRepresenterTest extends TestCase {
- public void test() {
- Yaml yaml = new Yaml();
- Person person = new Person("Alan", "Gutierrez", 9);
- String etalon = "!!org.yaml.snakeyaml.issues.issue8.Person {firstName: Alan, hatSize: 9, lastName: Gutierrez}\n";
- assertEquals(etalon, yaml.dump(person));
- assertEquals(etalon, yaml.dump(person));
- }
- public void test2beans() {
- DumperOptions options = new DumperOptions();
- options.setAllowReadOnlyProperties(true);
- Yaml yaml = new Yaml(options);
- Person person = new Person("Alan", "Gutierrez", 9);
- String etalon = "!!org.yaml.snakeyaml.issues.issue8.Person {firstName: Alan, hatSize: 9, lastName: Gutierrez}\n";
- assertEquals(etalon, yaml.dump(person));
- Horse horse = new Horse("Tom", person);
- String etalon2 = "!!org.yaml.snakeyaml.issues.issue8.PrattleRepresenterTest$Horse\nname: Tom\nowner: {firstName: Alan, hatSize: 9, lastName: Gutierrez}\n";
- assertEquals(etalon2, yaml.dump(horse));
- }
+ public void test() {
+ Yaml yaml = new Yaml();
+ Person person = new Person("Alan", "Gutierrez", 9);
+ String etalon =
+ "!!org.yaml.snakeyaml.issues.issue8.Person {firstName: Alan, hatSize: 9, lastName: Gutierrez}\n";
+ assertEquals(etalon, yaml.dump(person));
+ assertEquals(etalon, yaml.dump(person));
+ }
- public static class Horse {
- private String name;
- private Person owner;
+ public void test2beans() {
+ DumperOptions options = new DumperOptions();
+ options.setAllowReadOnlyProperties(true);
+ Yaml yaml = new Yaml(options);
+ Person person = new Person("Alan", "Gutierrez", 9);
+ String etalon =
+ "!!org.yaml.snakeyaml.issues.issue8.Person {firstName: Alan, hatSize: 9, lastName: Gutierrez}\n";
+ assertEquals(etalon, yaml.dump(person));
+ Horse horse = new Horse("Tom", person);
+ String etalon2 =
+ "!!org.yaml.snakeyaml.issues.issue8.PrattleRepresenterTest$Horse\nname: Tom\nowner: {firstName: Alan, hatSize: 9, lastName: Gutierrez}\n";
+ assertEquals(etalon2, yaml.dump(horse));
+ }
- public Horse(String name, Person owner) {
- super();
- this.name = name;
- this.owner = owner;
- }
+ public static class Horse {
- public String getName() {
- return name;
- }
+ private final String name;
+ private final Person owner;
- public Person getOwner() {
- return owner;
- }
+ public Horse(String name, Person owner) {
+ super();
+ this.name = name;
+ this.owner = owner;
+ }
+ public String getName() {
+ return name;
}
+
+ public Person getOwner() {
+ return owner;
+ }
+
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue82/PropOrderInfluenceWhenAliasedInGenericCollectionTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue82/PropOrderInfluenceWhenAliasedInGenericCollectionTest.java
index fb07b909..b608776c 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue82/PropOrderInfluenceWhenAliasedInGenericCollectionTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue82/PropOrderInfluenceWhenAliasedInGenericCollectionTest.java
@@ -1,29 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue82;
+import static org.junit.Assert.assertNotEquals;
+
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.TypeDescription;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.Constructor;
@@ -35,286 +33,291 @@ import org.yaml.snakeyaml.representer.Representer;
*/
public class PropOrderInfluenceWhenAliasedInGenericCollectionTest extends TestCase {
- public static interface Account {
- }
+ public interface Account {
- public static class GeneralAccount implements Account {
- public String name = "General";
- }
+ }
- public static class SuperSaverAccount extends GeneralAccount {
+ public static class GeneralAccount implements Account {
- public SuperSaverAccount() {
- name = "SuperSaver";
- }
- }
+ public String name = "General";
+ }
- public static class CustomerAB {
- public Collection<Account> aAll;
- public Collection<GeneralAccount> bGeneral;
+ public static class SuperSaverAccount extends GeneralAccount {
- @Override
- public String toString() {
- return "CustomerAB";
- }
+ public SuperSaverAccount() {
+ name = "SuperSaver";
}
+ }
- public static class CustomerBA {
- public Collection<GeneralAccount> aGeneral;
- public Collection<Account> bAll;
- }
+ public static class CustomerAB {
- public static class CustomerAB_MapValue {
- public Collection<Account> aAll;
- public Map<String, GeneralAccount> bGeneralMap;
+ public Collection<Account> aAll;
+ public Collection<GeneralAccount> bGeneral;
- @Override
- public String toString() {
- return "CustomerAB_MapValue";
- }
+ @Override
+ public String toString() {
+ return "CustomerAB";
}
+ }
- public static class CustomerAB_MapKey {
- public Collection<Account> aAll;
- public Map<GeneralAccount, String> bGeneralMap;
+ public static class CustomerBA {
- @Override
- public String toString() {
- return "CustomerAB_MapKey";
- }
- }
+ public Collection<GeneralAccount> aGeneral;
+ public Collection<Account> bAll;
+ }
- public static class CustomerAB_Property {
- public Account acc;
- public Collection<GeneralAccount> bGeneral;
+ public static class CustomerAB_MapValue {
- @Override
- public String toString() {
- return "CustomerAB_Property";
- }
- }
+ public Collection<Account> aAll;
+ public Map<String, GeneralAccount> bGeneralMap;
- public void testAB() {
- SuperSaverAccount supersaver = new SuperSaverAccount();
- GeneralAccount generalAccount = new GeneralAccount();
-
- CustomerAB customerAB = new CustomerAB();
- ArrayList<Account> all = new ArrayList<Account>();
- all.add(supersaver);
- all.add(generalAccount);
- ArrayList<GeneralAccount> general = new ArrayList<GeneralAccount>();
- general.add(generalAccount);
- general.add(supersaver);
-
- customerAB.aAll = all;
- customerAB.bGeneral = general;
-
- Yaml yaml = new Yaml();
- String dump = yaml.dump(customerAB);
- // System.out.println(dump);
- CustomerAB parsed = (CustomerAB) yaml.load(dump);
- assertNotNull(parsed);
+ @Override
+ public String toString() {
+ return "CustomerAB_MapValue";
}
+ }
- public void testAB_Set() {
- SuperSaverAccount supersaver = new SuperSaverAccount();
- GeneralAccount generalAccount = new GeneralAccount();
-
- CustomerAB customerAB = new CustomerAB();
- ArrayList<Account> all = new ArrayList<Account>();
- all.add(supersaver);
- all.add(generalAccount);
- Set<GeneralAccount> general = new HashSet<GeneralAccount>();
- general.add(generalAccount);
- general.add(supersaver);
-
- customerAB.aAll = all;
- customerAB.bGeneral = general;
-
- Yaml yaml = new Yaml();
- String dump = yaml.dump(customerAB);
- // System.out.println(dump);
- CustomerAB parsed = (CustomerAB) yaml.load(dump);
- assertNotNull(parsed);
- }
-
- public void testABWithCustomTag() {
- SuperSaverAccount supersaver = new SuperSaverAccount();
- GeneralAccount generalAccount = new GeneralAccount();
-
- CustomerAB customerAB = new CustomerAB();
- ArrayList<Account> all = new ArrayList<Account>();
- all.add(supersaver);
- all.add(generalAccount);
- ArrayList<GeneralAccount> general = new ArrayList<GeneralAccount>();
- general.add(generalAccount);
- general.add(supersaver);
-
- customerAB.aAll = all;
- customerAB.bGeneral = general;
-
- Constructor constructor = new Constructor();
- Representer representer = new Representer();
- Tag generalAccountTag = new Tag("!GA");
- constructor
- .addTypeDescription(new TypeDescription(GeneralAccount.class, generalAccountTag));
- representer.addClassTag(GeneralAccount.class, generalAccountTag);
-
- Yaml yaml = new Yaml(constructor, representer);
- String dump = yaml.dump(customerAB);
- // System.out.println(dump);
- CustomerAB parsed = (CustomerAB) yaml.load(dump);
- assertNotNull(parsed);
- }
-
- public void testABProperty() {
- SuperSaverAccount supersaver = new SuperSaverAccount();
- GeneralAccount generalAccount = new GeneralAccount();
-
- CustomerAB_Property customerAB_property = new CustomerAB_Property();
- ArrayList<Account> all = new ArrayList<Account>();
- all.add(supersaver);
- all.add(generalAccount);
- ArrayList<GeneralAccount> general = new ArrayList<GeneralAccount>();
- general.add(generalAccount);
- general.add(supersaver);
-
- customerAB_property.acc = generalAccount;
- customerAB_property.bGeneral = general;
-
- Constructor constructor = new Constructor();
- Representer representer = new Representer();
-
- Yaml yaml = new Yaml(constructor, representer);
- String dump = yaml.dump(customerAB_property);
- // System.out.println(dump);
- CustomerAB_Property parsed = (CustomerAB_Property) yaml.load(dump);
- assertNotNull(parsed);
- }
+ public static class CustomerAB_MapKey {
- public void testABPropertyWithCustomTag() {
- SuperSaverAccount supersaver = new SuperSaverAccount();
- GeneralAccount generalAccount = new GeneralAccount();
-
- CustomerAB_Property customerAB_property = new CustomerAB_Property();
- ArrayList<Account> all = new ArrayList<Account>();
- all.add(supersaver);
- all.add(generalAccount);
- ArrayList<GeneralAccount> general = new ArrayList<GeneralAccount>();
- general.add(generalAccount);
- general.add(supersaver);
-
- customerAB_property.acc = generalAccount;
- customerAB_property.bGeneral = general;
-
- Constructor constructor = new Constructor();
- Representer representer = new Representer();
-
- Tag generalAccountTag = new Tag("!GA");
- constructor
- .addTypeDescription(new TypeDescription(GeneralAccount.class, generalAccountTag));
- representer.addClassTag(GeneralAccount.class, generalAccountTag);
-
- Yaml yaml = new Yaml(constructor, representer);
- String dump = yaml.dump(customerAB_property);
- // System.out.println(dump);
- CustomerAB_Property parsed = (CustomerAB_Property) yaml.load(dump);
- assertNotNull(parsed);
- }
+ public Collection<Account> aAll;
+ public Map<GeneralAccount, String> bGeneralMap;
- public void testABwithJavaBeanHelpers() {
- SuperSaverAccount supersaver = new SuperSaverAccount();
- GeneralAccount generalAccount = new GeneralAccount();
-
- CustomerAB customerAB = new CustomerAB();
- ArrayList<Account> all = new ArrayList<Account>();
- all.add(supersaver);
- all.add(generalAccount);
- ArrayList<GeneralAccount> general = new ArrayList<GeneralAccount>();
- general.add(generalAccount);
- general.add(supersaver);
-
- customerAB.aAll = all;
- customerAB.bGeneral = general;
-
- Yaml yaml = new Yaml();
- String dump2 = yaml.dumpAsMap(customerAB);
- // System.out.println(dump2);
- Yaml loader = new Yaml();
- CustomerAB parsed = loader.loadAs(dump2, CustomerAB.class);
- assertNotNull(parsed);
+ @Override
+ public String toString() {
+ return "CustomerAB_MapKey";
}
+ }
- public void testAB_asMapValue() {
- SuperSaverAccount supersaver = new SuperSaverAccount();
- GeneralAccount generalAccount = new GeneralAccount();
-
- CustomerAB_MapValue customerAB_mapValue = new CustomerAB_MapValue();
- ArrayList<Account> all = new ArrayList<Account>();
- all.add(supersaver);
- all.add(generalAccount);
- Map<String, GeneralAccount> generalMap = new HashMap<String, GeneralAccount>();
- generalMap.put(generalAccount.name, generalAccount);
- generalMap.put(supersaver.name, supersaver);
-
- customerAB_mapValue.aAll = all;
- customerAB_mapValue.bGeneralMap = generalMap;
-
- Yaml yaml = new Yaml();
- String dump = yaml.dump(customerAB_mapValue);
- // System.out.println(dump);
- CustomerAB_MapValue parsed = (CustomerAB_MapValue) yaml.load(dump);
- assertNotNull(parsed);
- }
+ public static class CustomerAB_Property {
- public void testAB_asMapKey() {
- SuperSaverAccount supersaver = new SuperSaverAccount();
- GeneralAccount generalAccount = new GeneralAccount();
-
- CustomerAB_MapKey customerAB_mapKey = new CustomerAB_MapKey();
- ArrayList<Account> all = new ArrayList<Account>();
- all.add(supersaver);
- all.add(generalAccount);
- Map<GeneralAccount, String> generalMap = new HashMap<GeneralAccount, String>();
- generalMap.put(generalAccount, generalAccount.name);
- generalMap.put(supersaver, supersaver.name);
-
- customerAB_mapKey.aAll = all;
- customerAB_mapKey.bGeneralMap = generalMap;
-
- Yaml yaml = new Yaml();
- String dump = yaml.dump(customerAB_mapKey);
- // System.out.println(dump);
- CustomerAB_MapKey parsed = (CustomerAB_MapKey) yaml.load(dump);
- assertNotNull(parsed);
- }
+ public Account acc;
+ public Collection<GeneralAccount> bGeneral;
- public void testBA() {
- SuperSaverAccount supersaver = new SuperSaverAccount();
- GeneralAccount generalAccount = new GeneralAccount();
-
- CustomerBA customerBA = new CustomerBA();
- ArrayList<Account> all = new ArrayList<Account>();
- all.add(supersaver);
- all.add(generalAccount);
- ArrayList<GeneralAccount> general = new ArrayList<GeneralAccount>();
- general.add(generalAccount);
- general.add(supersaver);
-
- customerBA.aGeneral = general;
- customerBA.bAll = all;
-
- Yaml yaml = new Yaml();
- String dump = yaml.dump(customerBA);
- // System.out.println(dump);
- //
- CustomerBA parsed = (CustomerBA) yaml.load(dump);
- assertEquals(2, parsed.bAll.size());
- assertEquals(2, parsed.aGeneral.size());
- assertFalse(parsed.bAll.equals(parsed.aGeneral));
- GeneralAccount[] array = parsed.aGeneral.toArray(new GeneralAccount[2]);
- assertEquals(GeneralAccount.class, array[0].getClass());
- assertEquals(SuperSaverAccount.class, array[1].getClass());
- assertEquals("SuperSaver", array[1].name);
+ @Override
+ public String toString() {
+ return "CustomerAB_Property";
}
+ }
+
+ public void testAB() {
+ SuperSaverAccount supersaver = new SuperSaverAccount();
+ GeneralAccount generalAccount = new GeneralAccount();
+
+ CustomerAB customerAB = new CustomerAB();
+ ArrayList<Account> all = new ArrayList<Account>();
+ all.add(supersaver);
+ all.add(generalAccount);
+ ArrayList<GeneralAccount> general = new ArrayList<GeneralAccount>();
+ general.add(generalAccount);
+ general.add(supersaver);
+
+ customerAB.aAll = all;
+ customerAB.bGeneral = general;
+
+ Yaml yaml = new Yaml();
+ String dump = yaml.dump(customerAB);
+ // System.out.println(dump);
+ CustomerAB parsed = yaml.load(dump);
+ assertNotNull(parsed);
+ }
+
+ public void testAB_Set() {
+ SuperSaverAccount supersaver = new SuperSaverAccount();
+ GeneralAccount generalAccount = new GeneralAccount();
+
+ CustomerAB customerAB = new CustomerAB();
+ ArrayList<Account> all = new ArrayList<Account>();
+ all.add(supersaver);
+ all.add(generalAccount);
+ Set<GeneralAccount> general = new HashSet<GeneralAccount>();
+ general.add(generalAccount);
+ general.add(supersaver);
+
+ customerAB.aAll = all;
+ customerAB.bGeneral = general;
+
+ Yaml yaml = new Yaml();
+ String dump = yaml.dump(customerAB);
+ // System.out.println(dump);
+ CustomerAB parsed = yaml.load(dump);
+ assertNotNull(parsed);
+ }
+
+ public void testABWithCustomTag() {
+ SuperSaverAccount supersaver = new SuperSaverAccount();
+ GeneralAccount generalAccount = new GeneralAccount();
+
+ CustomerAB customerAB = new CustomerAB();
+ ArrayList<Account> all = new ArrayList<Account>();
+ all.add(supersaver);
+ all.add(generalAccount);
+ ArrayList<GeneralAccount> general = new ArrayList<GeneralAccount>();
+ general.add(generalAccount);
+ general.add(supersaver);
+
+ customerAB.aAll = all;
+ customerAB.bGeneral = general;
+
+ Constructor constructor = new Constructor();
+ Representer representer = new Representer();
+ Tag generalAccountTag = new Tag("!GA");
+ constructor.addTypeDescription(new TypeDescription(GeneralAccount.class, generalAccountTag));
+ representer.addClassTag(GeneralAccount.class, generalAccountTag);
+
+ Yaml yaml = new Yaml(constructor, representer);
+ String dump = yaml.dump(customerAB);
+ // System.out.println(dump);
+ CustomerAB parsed = yaml.load(dump);
+ assertNotNull(parsed);
+ }
+
+ public void testABProperty() {
+ SuperSaverAccount supersaver = new SuperSaverAccount();
+ GeneralAccount generalAccount = new GeneralAccount();
+
+ CustomerAB_Property customerAB_property = new CustomerAB_Property();
+ ArrayList<Account> all = new ArrayList<Account>();
+ all.add(supersaver);
+ all.add(generalAccount);
+ ArrayList<GeneralAccount> general = new ArrayList<GeneralAccount>();
+ general.add(generalAccount);
+ general.add(supersaver);
+
+ customerAB_property.acc = generalAccount;
+ customerAB_property.bGeneral = general;
+
+ Constructor constructor = new Constructor();
+ Representer representer = new Representer();
+
+ Yaml yaml = new Yaml(constructor, representer);
+ String dump = yaml.dump(customerAB_property);
+ // System.out.println(dump);
+ CustomerAB_Property parsed = yaml.load(dump);
+ assertNotNull(parsed);
+ }
+
+ public void testABPropertyWithCustomTag() {
+ SuperSaverAccount supersaver = new SuperSaverAccount();
+ GeneralAccount generalAccount = new GeneralAccount();
+
+ CustomerAB_Property customerAB_property = new CustomerAB_Property();
+ ArrayList<Account> all = new ArrayList<Account>();
+ all.add(supersaver);
+ all.add(generalAccount);
+ ArrayList<GeneralAccount> general = new ArrayList<GeneralAccount>();
+ general.add(generalAccount);
+ general.add(supersaver);
+
+ customerAB_property.acc = generalAccount;
+ customerAB_property.bGeneral = general;
+
+ Constructor constructor = new Constructor();
+ Representer representer = new Representer();
+
+ Tag generalAccountTag = new Tag("!GA");
+ constructor.addTypeDescription(new TypeDescription(GeneralAccount.class, generalAccountTag));
+ representer.addClassTag(GeneralAccount.class, generalAccountTag);
+
+ Yaml yaml = new Yaml(constructor, representer);
+ String dump = yaml.dump(customerAB_property);
+ // System.out.println(dump);
+ CustomerAB_Property parsed = yaml.load(dump);
+ assertNotNull(parsed);
+ }
+
+ public void testABwithJavaBeanHelpers() {
+ SuperSaverAccount supersaver = new SuperSaverAccount();
+ GeneralAccount generalAccount = new GeneralAccount();
+
+ CustomerAB customerAB = new CustomerAB();
+ ArrayList<Account> all = new ArrayList<Account>();
+ all.add(supersaver);
+ all.add(generalAccount);
+ ArrayList<GeneralAccount> general = new ArrayList<GeneralAccount>();
+ general.add(generalAccount);
+ general.add(supersaver);
+
+ customerAB.aAll = all;
+ customerAB.bGeneral = general;
+
+ Yaml yaml = new Yaml();
+ String dump2 = yaml.dumpAsMap(customerAB);
+ // System.out.println(dump2);
+ Yaml loader = new Yaml();
+ CustomerAB parsed = loader.loadAs(dump2, CustomerAB.class);
+ assertNotNull(parsed);
+ }
+
+ public void testAB_asMapValue() {
+ SuperSaverAccount supersaver = new SuperSaverAccount();
+ GeneralAccount generalAccount = new GeneralAccount();
+
+ CustomerAB_MapValue customerAB_mapValue = new CustomerAB_MapValue();
+ ArrayList<Account> all = new ArrayList<Account>();
+ all.add(supersaver);
+ all.add(generalAccount);
+ Map<String, GeneralAccount> generalMap = new HashMap<String, GeneralAccount>();
+ generalMap.put(generalAccount.name, generalAccount);
+ generalMap.put(supersaver.name, supersaver);
+
+ customerAB_mapValue.aAll = all;
+ customerAB_mapValue.bGeneralMap = generalMap;
+
+ Yaml yaml = new Yaml();
+ String dump = yaml.dump(customerAB_mapValue);
+ // System.out.println(dump);
+ CustomerAB_MapValue parsed = yaml.load(dump);
+ assertNotNull(parsed);
+ }
+
+ public void testAB_asMapKey() {
+ SuperSaverAccount supersaver = new SuperSaverAccount();
+ GeneralAccount generalAccount = new GeneralAccount();
+
+ CustomerAB_MapKey customerAB_mapKey = new CustomerAB_MapKey();
+ ArrayList<Account> all = new ArrayList<Account>();
+ all.add(supersaver);
+ all.add(generalAccount);
+ Map<GeneralAccount, String> generalMap = new HashMap<GeneralAccount, String>();
+ generalMap.put(generalAccount, generalAccount.name);
+ generalMap.put(supersaver, supersaver.name);
+
+ customerAB_mapKey.aAll = all;
+ customerAB_mapKey.bGeneralMap = generalMap;
+
+ Yaml yaml = new Yaml();
+ String dump = yaml.dump(customerAB_mapKey);
+ // System.out.println(dump);
+ CustomerAB_MapKey parsed = yaml.load(dump);
+ assertNotNull(parsed);
+ }
+
+ public void testBA() {
+ SuperSaverAccount supersaver = new SuperSaverAccount();
+ GeneralAccount generalAccount = new GeneralAccount();
+
+ CustomerBA customerBA = new CustomerBA();
+ ArrayList<Account> all = new ArrayList<Account>();
+ all.add(supersaver);
+ all.add(generalAccount);
+ ArrayList<GeneralAccount> general = new ArrayList<GeneralAccount>();
+ general.add(generalAccount);
+ general.add(supersaver);
+
+ customerBA.aGeneral = general;
+ customerBA.bAll = all;
+
+ Yaml yaml = new Yaml();
+ String dump = yaml.dump(customerBA);
+ // System.out.println(dump);
+ //
+ CustomerBA parsed = yaml.load(dump);
+ assertEquals(2, parsed.bAll.size());
+ assertEquals(2, parsed.aGeneral.size());
+ assertNotEquals(parsed.bAll, parsed.aGeneral);
+ GeneralAccount[] array = parsed.aGeneral.toArray(new GeneralAccount[2]);
+ assertEquals(GeneralAccount.class, array[0].getClass());
+ assertEquals(SuperSaverAccount.class, array[1].getClass());
+ assertEquals("SuperSaver", array[1].name);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue94/ChangeRuntimeClassTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue94/ChangeRuntimeClassTest.java
index b9823a01..27a04d5a 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue94/ChangeRuntimeClassTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue94/ChangeRuntimeClassTest.java
@@ -1,23 +1,22 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue94;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
+import org.yaml.snakeyaml.TypeDescription;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.AbstractConstruct;
import org.yaml.snakeyaml.constructor.Construct;
@@ -26,71 +25,104 @@ import org.yaml.snakeyaml.nodes.Node;
public class ChangeRuntimeClassTest {
- @Test
- public void testWithGlobalTag() {
- String yamlText = "!!org.yaml.snakeyaml.issues.issue94.Entity\n" + "name: Matt\n"
- + "nickName: Java\n";
+ @Test
+ public void testWithGlobalTag() {
+ String yamlText =
+ "!!org.yaml.snakeyaml.issues.issue94.Entity\n" + "name: Matt\n" + "nickName: Java\n";
- // Now here that I would like to somehow intercept the constructor of
- // SnakeYaml and give it
- // an fresh instance of EntityLoadingProxy(); based on today's
- // temperature, so to speak...
- // that is un-preditable statically which proxy I will give it.
+ // Now here that I would like to somehow intercept the constructor of
+ // SnakeYaml and give it
+ // an fresh instance of EntityLoadingProxy(); based on today's
+ // temperature, so to speak...
+ // that is un-preditable statically which proxy I will give it.
- Yaml yaml = new Yaml(new MyConstructor());
+ Yaml yaml = new Yaml(new MyConstructor());
- Entity loadedEntity = null;
- loadedEntity = (Entity) yaml.load(yamlText);
+ Entity loadedEntity = null;
+ loadedEntity = yaml.load(yamlText);
- assertEquals("Matt", loadedEntity.getName());
+ assertEquals("Matt", loadedEntity.getName());
- // The expectation below is from having intercepted setNickName() with
- // the artifical subclass and
- // performed the calculation.
- assertEquals("JJ-Java", loadedEntity.getNickName());
- assertEquals(EntityLoadingProxy.class, loadedEntity.getClass());
+ // The expectation below is from having intercepted setNickName() with
+ // the artifical subclass and
+ // performed the calculation.
+ assertEquals("JJ-Java", loadedEntity.getNickName());
+ assertEquals(EntityLoadingProxy.class, loadedEntity.getClass());
+ }
+
+ @Test
+ public void testWithGlobalTagUsingTypeDescription() {
+ String yamlText =
+ "!!org.yaml.snakeyaml.issues.issue94.Entity\n" + "name: Matt\n" + "nickName: Java\n";
+
+ Yaml yaml = new Yaml();
+ yaml.addTypeDescription(new TypeDescription(Entity.class, EntityLoadingProxy.class));
+
+ Entity loadedEntity = null;
+ loadedEntity = yaml.load(yamlText);
+
+ assertEquals("Matt", loadedEntity.getName());
+
+ // The expectation below is from having intercepted setNickName() with
+ // the artifical subclass and
+ // performed the calculation.
+ assertEquals("JJ-Java", loadedEntity.getNickName());
+ assertEquals(EntityLoadingProxy.class, loadedEntity.getClass());
+ }
+
+ @Test
+ public void testNoTag() {
+ String yamlText = "name: Matt\n" + "nickName: Java\n";
+ Yaml yaml = new Yaml(new MyConstructor(Entity.class));
+ Entity loadedEntity = null;
+ loadedEntity = yaml.load(yamlText);
+ assertEquals("Matt", loadedEntity.getName());
+ assertEquals("JJ-Java", loadedEntity.getNickName());
+ }
+
+ @Test
+ public void testNoTagWithTypeDescription() {
+ String yamlText = "name: Matt\n" + "nickName: Java\n";
+ Yaml yaml = new Yaml();
+ yaml.addTypeDescription(new TypeDescription(Entity.class, EntityLoadingProxy.class));
+ Entity loadedEntity = null;
+ loadedEntity = yaml.loadAs(yamlText, Entity.class);
+ assertEquals("Matt", loadedEntity.getName());
+ assertEquals("JJ-Java", loadedEntity.getNickName());
+ }
+
+ /**
+ * @see Constructor.ConstructYamlObject
+ */
+ private class MyConstructor extends Constructor {
+
+ public MyConstructor() {
+ super();
+ this.yamlConstructors.put(null, new ConstructProxy());
}
- @Test
- public void testNoTag() {
- String yamlText = "name: Matt\n" + "nickName: Java\n";
- Yaml yaml = new Yaml(new MyConstructor(Entity.class));
- Entity loadedEntity = null;
- loadedEntity = (Entity) yaml.load(yamlText);
- assertEquals("Matt", loadedEntity.getName());
- assertEquals("JJ-Java", loadedEntity.getNickName());
+ public MyConstructor(Class<?> clazz) {
+ super(clazz);
+ this.yamlConstructors.put(null, new ConstructProxy());
}
- /**
- * @see Constructor.ConstructYamlObject
- */
- private class MyConstructor extends Constructor {
- public MyConstructor() {
- super();
- this.yamlConstructors.put(null, new ConstructProxy());
- }
+ private class ConstructProxy extends AbstractConstruct {
- public MyConstructor(Class<?> clazz) {
- super(clazz);
- this.yamlConstructors.put(null, new ConstructProxy());
+ private Construct getConstructor(Node node) {
+ Class<?> cl = getClassForNode(node);
+ if (cl.equals(Entity.class)) {
+ // today's temperature is high :)
+ cl = EntityLoadingProxy.class;
}
+ node.setType(cl);
+ // call the constructor as if the runtime class is defined
+ Construct constructor = yamlClassConstructors.get(node.getNodeId());
+ return constructor;
+ }
- private class ConstructProxy extends AbstractConstruct {
- private Construct getConstructor(Node node) {
- Class<?> cl = getClassForNode(node);
- if (cl.equals(Entity.class) && true) {
- // today's temperature is high :)
- cl = EntityLoadingProxy.class;
- }
- node.setType(cl);
- // call the constructor as if the runtime class is defined
- Construct constructor = yamlClassConstructors.get(node.getNodeId());
- return constructor;
- }
-
- public Object construct(Node node) {
- return getConstructor(node).construct(node);
- }
- }
+ public Object construct(Node node) {
+ return getConstructor(node).construct(node);
+ }
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue94/Entity.java b/src/test/java/org/yaml/snakeyaml/issues/issue94/Entity.java
index eb3f7ebb..63562c08 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue94/Entity.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue94/Entity.java
@@ -1,37 +1,36 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue94;
public class Entity {
- private String name;
- private String nickName;
- public String getName() {
- return name;
- }
+ private String name;
+ private String nickName;
- public void setName(String name) {
- this.name = name;
- }
+ public String getName() {
+ return name;
+ }
- public String getNickName() {
- return nickName;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public void setNickName(String nickName) {
- this.nickName = nickName;
- }
+ public String getNickName() {
+ return nickName;
+ }
+
+ public void setNickName(String nickName) {
+ this.nickName = nickName;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue94/EntityLoadingProxy.java b/src/test/java/org/yaml/snakeyaml/issues/issue94/EntityLoadingProxy.java
index e8129a1e..e5d2571b 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue94/EntityLoadingProxy.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue94/EntityLoadingProxy.java
@@ -1,26 +1,25 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue94;
public class EntityLoadingProxy extends Entity {
- @Override
- public void setNickName(String nickName) {
- if (nickName.startsWith("J"))
- nickName = "JJ-" + nickName;
- super.setNickName(nickName);
+ @Override
+ public void setNickName(String nickName) {
+ if (nickName.startsWith("J")) {
+ nickName = "JJ-" + nickName;
}
+ super.setNickName(nickName);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue95/ArrayInGenericCollectionTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue95/ArrayInGenericCollectionTest.java
index b454953a..6415e708 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue95/ArrayInGenericCollectionTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue95/ArrayInGenericCollectionTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue95;
@@ -21,9 +19,7 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-
import junit.framework.TestCase;
-
import org.junit.Assert;
import org.yaml.snakeyaml.DumperOptions.FlowStyle;
import org.yaml.snakeyaml.TypeDescription;
@@ -34,119 +30,121 @@ import org.yaml.snakeyaml.nodes.Tag;
public class ArrayInGenericCollectionTest extends TestCase {
- public static class A {
- private Map<String, String[]> meta = new HashMap<String, String[]>();
- }
-
- public static class B {
- private List<String[]> meta = new ArrayList<String[]>();
- }
-
- private A createA() {
- A a = new A();
- a.meta.put("met1", new String[] { "whatever" });
- a.meta.put("met2", new String[] { "something", "something else" });
- return a;
- }
-
- private B createB() {
- B b = new B();
- b.meta.add(new String[] { "whatever" });
- b.meta.add(new String[] { "something", "something else" });
- return b;
- }
-
- public void testArrayAsMapValue() {
- Yaml yaml2dump = new Yaml();
- yaml2dump.setBeanAccess(BeanAccess.FIELD);
- A data = createA();
- String dump = yaml2dump.dump(data);
- // System.out.println(dump);
-
- Yaml yaml2load = new Yaml();
- yaml2load.setBeanAccess(BeanAccess.FIELD);
- A loaded = (A) yaml2load.load(dump);
-
- assertEquals(data.meta.size(), loaded.meta.size());
- Set<Entry<String, String[]>> loadedMeta = loaded.meta.entrySet();
- for (Entry<String, String[]> entry : loadedMeta) {
- assertTrue(data.meta.containsKey(entry.getKey()));
- Assert.assertArrayEquals(data.meta.get(entry.getKey()), entry.getValue());
- }
- }
-
- public void testArrayAsMapValueWithTypeDespriptor() {
- Yaml yaml2dump = new Yaml();
- yaml2dump.setBeanAccess(BeanAccess.FIELD);
- A data = createA();
- String dump = yaml2dump.dump(data);
- // System.out.println(dump);
-
- TypeDescription aTypeDescr = new TypeDescription(A.class);
- aTypeDescr.putMapPropertyType("meta", String.class, String[].class);
-
- Constructor c = new Constructor();
- c.addTypeDescription(aTypeDescr);
- Yaml yaml2load = new Yaml(c);
- yaml2load.setBeanAccess(BeanAccess.FIELD);
-
- A loaded = (A) yaml2load.load(dump);
-
- assertEquals(data.meta.size(), loaded.meta.size());
- Set<Entry<String, String[]>> loadedMeta = loaded.meta.entrySet();
- for (Entry<String, String[]> entry : loadedMeta) {
- assertTrue(data.meta.containsKey(entry.getKey()));
- Assert.assertArrayEquals(data.meta.get(entry.getKey()), entry.getValue());
- }
+ public static class A {
+
+ private final Map<String, String[]> meta = new HashMap<String, String[]>();
+ }
+
+ public static class B {
+
+ private final List<String[]> meta = new ArrayList<String[]>();
+ }
+
+ private A createA() {
+ A a = new A();
+ a.meta.put("met1", new String[] {"whatever"});
+ a.meta.put("met2", new String[] {"something", "something else"});
+ return a;
+ }
+
+ private B createB() {
+ B b = new B();
+ b.meta.add(new String[] {"whatever"});
+ b.meta.add(new String[] {"something", "something else"});
+ return b;
+ }
+
+ public void testArrayAsMapValue() {
+ Yaml yaml2dump = new Yaml();
+ yaml2dump.setBeanAccess(BeanAccess.FIELD);
+ A data = createA();
+ String dump = yaml2dump.dump(data);
+ // System.out.println(dump);
+
+ Yaml yaml2load = new Yaml();
+ yaml2load.setBeanAccess(BeanAccess.FIELD);
+ A loaded = yaml2load.load(dump);
+
+ assertEquals(data.meta.size(), loaded.meta.size());
+ Set<Entry<String, String[]>> loadedMeta = loaded.meta.entrySet();
+ for (Entry<String, String[]> entry : loadedMeta) {
+ assertTrue(data.meta.containsKey(entry.getKey()));
+ Assert.assertArrayEquals(data.meta.get(entry.getKey()), entry.getValue());
}
-
- public void testArrayAsListValue() {
- Yaml yaml2dump = new Yaml();
- yaml2dump.setBeanAccess(BeanAccess.FIELD);
- B data = createB();
- String dump = yaml2dump.dump(data);
- // System.out.println(dump);
-
- Yaml yaml2load = new Yaml();
- yaml2load.setBeanAccess(BeanAccess.FIELD);
- B loaded = (B) yaml2load.load(dump);
-
- Assert.assertArrayEquals(data.meta.toArray(), loaded.meta.toArray());
- }
-
- public void testArrayAsListValueWithTypeDespriptor() {
- Yaml yaml2dump = new Yaml();
- yaml2dump.setBeanAccess(BeanAccess.FIELD);
- B data = createB();
- String dump = yaml2dump.dump(data);
- // System.out.println(dump);
-
- TypeDescription aTypeDescr = new TypeDescription(B.class);
- aTypeDescr.putListPropertyType("meta", String[].class);
-
- Constructor c = new Constructor();
- c.addTypeDescription(aTypeDescr);
- Yaml yaml2load = new Yaml(c);
- yaml2load.setBeanAccess(BeanAccess.FIELD);
-
- B loaded = (B) yaml2load.load(dump);
-
- Assert.assertArrayEquals(data.meta.toArray(), loaded.meta.toArray());
- }
-
- public void testNoTags() {
- Yaml yaml2dump = new Yaml();
- yaml2dump.setBeanAccess(BeanAccess.FIELD);
- B data = createB();
- String dump = yaml2dump.dumpAs(data, Tag.MAP, FlowStyle.AUTO);
- // System.out.println(dump);
- assertEquals("meta:\n- [whatever]\n- [something, something else]\n", dump);
- //
- Constructor constr = new Constructor(B.class);
- Yaml yaml2load = new Yaml(constr);
- yaml2load.setBeanAccess(BeanAccess.FIELD);
- B loaded = (B) yaml2load.load(dump);
-
- Assert.assertArrayEquals(data.meta.toArray(), loaded.meta.toArray());
+ }
+
+ public void testArrayAsMapValueWithTypeDespriptor() {
+ Yaml yaml2dump = new Yaml();
+ yaml2dump.setBeanAccess(BeanAccess.FIELD);
+ A data = createA();
+ String dump = yaml2dump.dump(data);
+ // System.out.println(dump);
+
+ TypeDescription aTypeDescr = new TypeDescription(A.class);
+ aTypeDescr.putMapPropertyType("meta", String.class, String[].class);
+
+ Constructor c = new Constructor();
+ c.addTypeDescription(aTypeDescr);
+ Yaml yaml2load = new Yaml(c);
+ yaml2load.setBeanAccess(BeanAccess.FIELD);
+
+ A loaded = yaml2load.load(dump);
+
+ assertEquals(data.meta.size(), loaded.meta.size());
+ Set<Entry<String, String[]>> loadedMeta = loaded.meta.entrySet();
+ for (Entry<String, String[]> entry : loadedMeta) {
+ assertTrue(data.meta.containsKey(entry.getKey()));
+ Assert.assertArrayEquals(data.meta.get(entry.getKey()), entry.getValue());
}
+ }
+
+ public void testArrayAsListValue() {
+ Yaml yaml2dump = new Yaml();
+ yaml2dump.setBeanAccess(BeanAccess.FIELD);
+ B data = createB();
+ String dump = yaml2dump.dump(data);
+ // System.out.println(dump);
+
+ Yaml yaml2load = new Yaml();
+ yaml2load.setBeanAccess(BeanAccess.FIELD);
+ B loaded = yaml2load.load(dump);
+
+ Assert.assertArrayEquals(data.meta.toArray(), loaded.meta.toArray());
+ }
+
+ public void testArrayAsListValueWithTypeDespriptor() {
+ Yaml yaml2dump = new Yaml();
+ yaml2dump.setBeanAccess(BeanAccess.FIELD);
+ B data = createB();
+ String dump = yaml2dump.dump(data);
+ // System.out.println(dump);
+
+ TypeDescription aTypeDescr = new TypeDescription(B.class);
+ aTypeDescr.putListPropertyType("meta", String[].class);
+
+ Constructor c = new Constructor();
+ c.addTypeDescription(aTypeDescr);
+ Yaml yaml2load = new Yaml(c);
+ yaml2load.setBeanAccess(BeanAccess.FIELD);
+
+ B loaded = yaml2load.load(dump);
+
+ Assert.assertArrayEquals(data.meta.toArray(), loaded.meta.toArray());
+ }
+
+ public void testNoTags() {
+ Yaml yaml2dump = new Yaml();
+ yaml2dump.setBeanAccess(BeanAccess.FIELD);
+ B data = createB();
+ String dump = yaml2dump.dumpAs(data, Tag.MAP, FlowStyle.AUTO);
+ // System.out.println(dump);
+ assertEquals("meta:\n- [whatever]\n- [something, something else]\n", dump);
+ //
+ Constructor constr = new Constructor(B.class);
+ Yaml yaml2load = new Yaml(constr);
+ yaml2load.setBeanAccess(BeanAccess.FIELD);
+ B loaded = yaml2load.load(dump);
+
+ Assert.assertArrayEquals(data.meta.toArray(), loaded.meta.toArray());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue97/Blog.java b/src/test/java/org/yaml/snakeyaml/issues/issue97/Blog.java
index 8da4dc71..ddb4d7c7 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue97/Blog.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue97/Blog.java
@@ -1,30 +1,29 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue97;
import java.util.SortedSet;
public class Blog {
- private SortedSet<Post> posts;
- public void addPost(Post p) {
- posts.add(p);
- }
+ private SortedSet<Post> posts;
- public SortedSet<Post> getPosts() {
- return posts;
- }
-} \ No newline at end of file
+ public void addPost(Post p) {
+ posts.add(p);
+ }
+
+ public SortedSet<Post> getPosts() {
+ return posts;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue97/Post.java b/src/test/java/org/yaml/snakeyaml/issues/issue97/Post.java
index 479055de..015f38c8 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue97/Post.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue97/Post.java
@@ -1,34 +1,32 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue97;
public class Post implements Comparable<Post> {
- private String title;
- private String text;
+ private String title;
+ private String text;
- public String getTitle() {
- return title;
- }
+ public String getTitle() {
+ return title;
+ }
- public String getText() {
- return text;
- }
+ public String getText() {
+ return text;
+ }
- public int compareTo(Post o) {
- return title.compareTo(o.title);
- }
-} \ No newline at end of file
+ public int compareTo(Post o) {
+ return title.compareTo(o.title);
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue97/YamlSortedSetTest.java b/src/test/java/org/yaml/snakeyaml/issues/issue97/YamlSortedSetTest.java
index 1b4d3a1d..d6175c56 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue97/YamlSortedSetTest.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue97/YamlSortedSetTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue97;
@@ -19,9 +17,9 @@ import java.util.Collection;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
-
import org.junit.Assert;
import org.junit.Test;
+import org.yaml.snakeyaml.TypeDescription;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.Constructor;
import org.yaml.snakeyaml.error.YAMLException;
@@ -32,48 +30,101 @@ import org.yaml.snakeyaml.nodes.SequenceNode;
public class YamlSortedSetTest {
- @Test
- public void testYaml() {
- String serialized = "!!org.yaml.snakeyaml.issues.issue97.Blog\n" + "posts:\n"
- + " - text: Dummy\n" + " title: Test\n" + " - text: Creative\n"
- + " title: Highly\n";
- // System.out.println(serialized);
- Yaml yaml2 = constructYamlParser();
- Blog rehydrated = (Blog) yaml2.load(serialized);
- checkTestBlog(rehydrated);
- }
+ @Test
+ public void testYaml() {
+ String serialized =
+ "!!org.yaml.snakeyaml.issues.issue97.Blog\n" + "posts:\n" + " - text: Dummy\n"
+ + " title: Test\n" + " - text: Creative\n" + " title: Highly\n";
+ // System.out.println(serialized);
+ Yaml yaml2 = constructYamlParser();
+ Blog rehydrated = yaml2.load(serialized);
+ checkTestBlog(rehydrated);
+ }
- protected Yaml constructYamlParser() {
- Yaml yaml = new Yaml(new SetContructor());
- yaml.setBeanAccess(BeanAccess.FIELD);
- return yaml;
- }
+ public void testYaml2() {
+ String serialized =
+ "!!org.yaml.snakeyaml.issues.issue97.Blog\n" + "posts:\n" + " - text: Dummy\n"
+ + " title: Test\n" + " - text: Creative\n" + " title: Highly\n";
+ // System.out.println(serialized);
+ Yaml yaml2 = constructYamlParser2();
+ Blog rehydrated = yaml2.load(serialized);
+ checkTestBlog(rehydrated);
+ }
+
+ public void testYaml3() {
+ String serialized =
+ "!!org.yaml.snakeyaml.issues.issue97.Blog\n" + "posts:\n" + " - text: Dummy\n"
+ + " title: Test\n" + " - text: Creative\n" + " title: Highly\n";
+ // System.out.println(serialized);
+ Yaml yaml3 = constructYamlParser3();
+ Blog rehydrated = yaml3.loadAs(serialized, Blog.class);
+ checkTestBlog(rehydrated);
+ }
+
+ public void testYamlDefault() {
+ String serialized =
+ "!!org.yaml.snakeyaml.issues.issue97.Blog\n" + "posts:\n" + " - text: Dummy\n"
+ + " title: Test\n" + " - text: Creative\n" + " title: Highly\n";
+ // System.out.println(serialized);
+ Yaml yaml = new Yaml();
+ yaml.setBeanAccess(BeanAccess.FIELD);
+ Blog rehydrated = yaml.loadAs(serialized, Blog.class);
+ checkTestBlog(rehydrated);
+ }
+
+ protected Yaml constructYamlParser2() {
+ Yaml yaml = new Yaml();
+ yaml.addTypeDescription(new TypeDescription(SortedSet.class) {
+ @Override
+ public Object newInstance(Node node) {
+ return new TreeSet<Object>();
+ }
+ });
+ yaml.setBeanAccess(BeanAccess.FIELD);
+ return yaml;
+ }
- protected void checkTestBlog(Blog blog) {
- Set<Post> posts = blog.getPosts();
- Assert.assertEquals("Blog contains 2 posts", 2, posts.size());
+ protected Yaml constructYamlParser3() {
+ Yaml yaml = new Yaml();
+ yaml.setBeanAccess(BeanAccess.FIELD);
+ yaml.addTypeDescription(new TypeDescription(SortedSet.class, TreeSet.class));
+ return yaml;
+ }
+
+ protected Yaml constructYamlParser() {
+ Yaml yaml = new Yaml(new SetContructor());
+ yaml.setBeanAccess(BeanAccess.FIELD);
+ return yaml;
+ }
+
+ protected void checkTestBlog(Blog blog) {
+ Set<Post> posts = blog.getPosts();
+ Assert.assertTrue("posts should be SortedSet", (posts instanceof SortedSet));
+ Assert.assertEquals("Blog contains 2 posts", 2, posts.size());
+ }
+
+ private class SetContructor extends Constructor {
+
+ public SetContructor() {
+ yamlClassConstructors.put(NodeId.sequence, new ConstructSetFromSequence());
}
- private class SetContructor extends Constructor {
- public SetContructor() {
- yamlClassConstructors.put(NodeId.sequence, new ConstructSetFromSequence());
- }
+ private class ConstructSetFromSequence extends ConstructSequence {
- private class ConstructSetFromSequence extends ConstructSequence {
- @Override
- public Object construct(Node node) {
- if (SortedSet.class.isAssignableFrom(node.getType())) {
- if (node.isTwoStepsConstruction()) {
- throw new YAMLException("Set cannot be recursive.");
- } else {
- Collection<Object> result = new TreeSet<Object>();
- SetContructor.this.constructSequenceStep2((SequenceNode) node, result);
- return result;
- }
- } else {
- return super.construct(node);
- }
- }
+ @Override
+ public Object construct(Node node) {
+ if (SortedSet.class.isAssignableFrom(node.getType())) {
+ if (node.isTwoStepsConstruction()) {
+ throw new YAMLException("Set cannot be recursive.");
+ } else {
+ Collection<Object> result = new TreeSet<Object>();
+ SetContructor.this.constructSequenceStep2((SequenceNode) node, result);
+ return result;
+ }
+ } else {
+ return super.construct(node);
}
+ }
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue99/YamlBase64Test.java b/src/test/java/org/yaml/snakeyaml/issues/issue99/YamlBase64Test.java
index 32e7eefd..c1a742d3 100644
--- a/src/test/java/org/yaml/snakeyaml/issues/issue99/YamlBase64Test.java
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue99/YamlBase64Test.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.issues.issue99;
@@ -19,9 +17,7 @@ import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.YamlDocument;
@@ -34,117 +30,113 @@ import org.yaml.snakeyaml.nodes.Tag;
/**
* Example for issue 99
- *
- * @see <a href="http://code.google.com/p/snakeyaml/issues/detail?id=99"></a>
+ *
+ * @see <a href="http://code.google.com/p/snakeyaml/issues/detail?id=99">issue 99</a>
*/
public class YamlBase64Test extends TestCase {
- /**
- * test base64 decoding
- */
- public void testBase64() throws IOException {
- String text = Util.getLocalResource("issues/issue99-base64_literal.yaml");
- String[] lines = text.split("\n");
- String all = "";
- for (int i = 1; i < lines.length; i++) {// skip first line
- all = all + lines[i].trim();
- }
- // System.out.println(all);
- byte[] decoded = Base64Coder.decode(all.toCharArray());
- assertEquals(3737, decoded.length);
- checkBytes(decoded);
+ /**
+ * test base64 decoding
+ */
+ public void testBase64() throws IOException {
+ String text = Util.getLocalResource("issues/issue99-base64_literal.yaml");
+ String[] lines = text.split("\n");
+ String all = "";
+ for (int i = 1; i < lines.length; i++) {// skip first line
+ all = all + lines[i].trim();
}
+ // System.out.println(all);
+ byte[] decoded = Base64Coder.decode(all.toCharArray());
+ assertEquals(3737, decoded.length);
+ checkBytes(decoded);
+ }
- @SuppressWarnings("unchecked")
- public void testYamlBase64Loading() throws IOException {
- Yaml yaml = new Yaml();
- InputStream inputStream = YamlBase64Test.class
- .getResourceAsStream("/issues/issue99-base64_double_quoted.yaml");
- Map<String, Object> bean = (Map<String, Object>) yaml.load(inputStream);
- byte[] jpeg = (byte[]) bean.get("jpegPhoto");
- checkBytes(jpeg);
- inputStream.close();
- }
+ @SuppressWarnings("unchecked")
+ public void testYamlBase64Loading() throws IOException {
+ Yaml yaml = new Yaml();
+ InputStream inputStream =
+ YamlBase64Test.class.getResourceAsStream("/issues/issue99-base64_double_quoted.yaml");
+ Map<String, Object> bean = yaml.load(inputStream);
+ byte[] jpeg = (byte[]) bean.get("jpegPhoto");
+ checkBytes(jpeg);
+ inputStream.close();
+ }
- private void checkBytes(byte[] jpeg) throws IOException {
- InputStream input;
- input = YamlDocument.class.getClassLoader().getResourceAsStream("issues/issue99.jpeg");
- BufferedInputStream is = new BufferedInputStream(input);
- int i = 0;
- while (i < jpeg.length) {
- int etalon = is.read();
- if (jpeg[i] < 0) {
- assertEquals(etalon, jpeg[i] + 256);
- } else {
- assertEquals(etalon, jpeg[i]);
- }
- i++;
- }
- is.close();
+ private void checkBytes(byte[] jpeg) throws IOException {
+ InputStream input;
+ input = YamlDocument.class.getClassLoader().getResourceAsStream("issues/issue99.jpeg");
+ BufferedInputStream is = new BufferedInputStream(input);
+ int i = 0;
+ while (i < jpeg.length) {
+ int etalon = is.read();
+ if (jpeg[i] < 0) {
+ assertEquals(etalon, jpeg[i] + 256);
+ } else {
+ assertEquals(etalon, jpeg[i]);
+ }
+ i++;
}
+ is.close();
+ }
- /**
- * In the literal scalar all the line breaks are significant
- *
- * @throws IOException
- */
- public void testYamlBase64LoadingLiteral() throws IOException {
- Yaml yaml = new Yaml();
- InputStream inputStream = YamlBase64Test.class
- .getResourceAsStream("/issues/issue99-base64_literal.yaml");
- try {
- yaml.load(inputStream);
- fail("In the literal scalar all the line breaks are significant");
- } catch (Exception e) {
- assertEquals("Length of Base64 encoded input string is not a multiple of 4.",
- e.getMessage());
- } finally {
- inputStream.close();
- }
- }
+ /**
+ * In the literal scalar all the line breaks are significant
+ *
+ * @throws IOException
+ */
+ public void testYamlBase64LoadingLiteral() throws IOException {
+ Yaml yaml = new Yaml();
+ InputStream inputStream =
+ YamlBase64Test.class.getResourceAsStream("/issues/issue99-base64_literal.yaml");
+ Map<String, Object> bean = yaml.load(inputStream);
+ byte[] jpeg = (byte[]) bean.get("jpegPhoto");
+ checkBytes(jpeg);
+ inputStream.close();
+ }
- /**
- * Redefine the !!binary global tag in a way that it ignores all the white
- * spaces to be able to use literal scalar
- */
- @SuppressWarnings("unchecked")
- public void testRedefineBinaryTag() throws IOException {
- Yaml yaml = new Yaml(new SpecialContructor(Tag.BINARY));
- InputStream inputStream = YamlBase64Test.class
- .getResourceAsStream("/issues/issue99-base64_literal.yaml");
- Map<String, Object> bean = (Map<String, Object>) yaml.load(inputStream);
- byte[] jpeg = (byte[]) bean.get("jpegPhoto");
- checkBytes(jpeg);
- inputStream.close();
- }
+ /**
+ * Redefine the !!binary global tag in a way that it ignores all the white spaces to be able to
+ * use literal scalar
+ */
+ @SuppressWarnings("unchecked")
+ public void testRedefineBinaryTag() throws IOException {
+ Yaml yaml = new Yaml(new SpecialContructor(Tag.BINARY));
+ InputStream inputStream =
+ YamlBase64Test.class.getResourceAsStream("/issues/issue99-base64_literal.yaml");
+ Map<String, Object> bean = yaml.load(inputStream);
+ byte[] jpeg = (byte[]) bean.get("jpegPhoto");
+ checkBytes(jpeg);
+ inputStream.close();
+ }
- private class SpecialContructor extends Constructor {
- public SpecialContructor(Tag tag) {
- this.yamlConstructors.put(tag, new MyBinaryConstructor());
- }
+ private class SpecialContructor extends Constructor {
- private class MyBinaryConstructor extends AbstractConstruct {
- public Object construct(Node node) {
- String contentWithNewLines = constructScalar((ScalarNode) node).toString();
- String noNewLines = contentWithNewLines.replaceAll("\\s", "");
- byte[] decoded = Base64Coder.decode(noNewLines.toCharArray());
- return decoded;
- }
- }
+ public SpecialContructor(Tag tag) {
+ this.yamlConstructors.put(tag, new MyBinaryConstructor());
}
- /**
- * Define a local tag to ignore all the white spaces to be able to use
- * literal scalar
- */
- @SuppressWarnings("unchecked")
- public void testLocalBinaryTag() throws IOException {
- Yaml yaml = new Yaml(new SpecialContructor(new Tag("!beautiful")));
- InputStream inputStream = YamlBase64Test.class
- .getResourceAsStream("/issues/issue99-base64_literal_custom_tag.yaml");
- Map<String, Object> bean = (Map<String, Object>) yaml.load(inputStream);
- byte[] jpeg = (byte[]) bean.get("jpegPhoto");
- checkBytes(jpeg);
- inputStream.close();
+ private class MyBinaryConstructor extends AbstractConstruct {
+
+ public Object construct(Node node) {
+ String contentWithNewLines = constructScalar((ScalarNode) node);
+ String noNewLines = contentWithNewLines.replaceAll("\\s", "");
+ byte[] decoded = Base64Coder.decode(noNewLines.toCharArray());
+ return decoded;
+ }
}
+ }
+
+ /**
+ * Define a local tag to ignore all the white spaces to be able to use literal scalar
+ */
+ @SuppressWarnings("unchecked")
+ public void testLocalBinaryTag() throws IOException {
+ Yaml yaml = new Yaml(new SpecialContructor(new Tag("!beautiful")));
+ InputStream inputStream =
+ YamlBase64Test.class.getResourceAsStream("/issues/issue99-base64_literal_custom_tag.yaml");
+ Map<String, Object> bean = yaml.load(inputStream);
+ byte[] jpeg = (byte[]) bean.get("jpegPhoto");
+ checkBytes(jpeg);
+ inputStream.close();
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/javabeans/ConstructEmptyBeanTest.java b/src/test/java/org/yaml/snakeyaml/javabeans/ConstructEmptyBeanTest.java
index 8dea2315..68306426 100644
--- a/src/test/java/org/yaml/snakeyaml/javabeans/ConstructEmptyBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/javabeans/ConstructEmptyBeanTest.java
@@ -1,131 +1,127 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.javabeans;
import java.io.Serializable;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class ConstructEmptyBeanTest extends TestCase {
- /**
- * standard Yaml
- */
- public void testEmptyBean() {
- Yaml yaml = new Yaml();
- EmptyBean bean = (EmptyBean) yaml
- .load("!!org.yaml.snakeyaml.javabeans.ConstructEmptyBeanTest$EmptyBean {}");
- assertNotNull(bean);
- assertNull(bean.getFirstName());
- assertEquals(5, bean.getHatSize());
- }
- /**
- * global tag is correct (but ignored)
- */
- public void testEmptyBean1() {
- Yaml beanLoader = new Yaml();
- EmptyBean bean = beanLoader.loadAs(
- "!!org.yaml.snakeyaml.javabeans.ConstructEmptyBeanTest$EmptyBean {}",
- EmptyBean.class);
- assertNotNull(bean);
- assertNull(bean.getFirstName());
- assertEquals(5, bean.getHatSize());
+ /**
+ * standard Yaml
+ */
+ public void testEmptyBean() {
+ Yaml yaml = new Yaml();
+ EmptyBean bean =
+ yaml.load("!!org.yaml.snakeyaml.javabeans.ConstructEmptyBeanTest$EmptyBean {}");
+ assertNotNull(bean);
+ assertNull(bean.getFirstName());
+ assertEquals(5, bean.getHatSize());
+ }
+
+ /**
+ * global tag is correct (but ignored)
+ */
+ public void testEmptyBean1() {
+ Yaml beanLoader = new Yaml();
+ EmptyBean bean = beanLoader.loadAs(
+ "!!org.yaml.snakeyaml.javabeans.ConstructEmptyBeanTest$EmptyBean {}", EmptyBean.class);
+ assertNotNull(bean);
+ assertNull(bean.getFirstName());
+ assertEquals(5, bean.getHatSize());
+ }
+
+ /**
+ * global tag is ignored
+ */
+ public void testEmptyBean2() {
+ Yaml beanLoader = new Yaml();
+ EmptyBean bean = beanLoader.loadAs("!!Bla-bla-bla {}", EmptyBean.class);
+ assertNotNull(bean);
+ assertNull(bean.getFirstName());
+ assertEquals(5, bean.getHatSize());
+ }
+
+ /**
+ * no tag
+ */
+ public void testEmptyBean3() {
+ Yaml beanLoader = new Yaml();
+ EmptyBean bean = beanLoader.loadAs("{ }", EmptyBean.class);
+ assertNotNull(bean);
+ assertNull(bean.getFirstName());
+ assertEquals(5, bean.getHatSize());
+ }
+
+ /**
+ * empty document
+ */
+ public void testEmptyBean4() {
+ Yaml beanLoader = new Yaml();
+ EmptyBean bean = beanLoader.loadAs("", EmptyBean.class);
+ assertNull(bean);
+ }
+
+ /**
+ * local tag is ignored
+ */
+ public void testEmptyBean5() {
+ Yaml beanLoader = new Yaml();
+ EmptyBean bean = beanLoader.loadAs("!Bla-bla-bla {}", EmptyBean.class);
+ assertNotNull(bean);
+ assertNull(bean.getFirstName());
+ assertEquals(5, bean.getHatSize());
+ }
+
+ /**
+ * invalid document
+ */
+ public void testEmptyBean6() {
+ Yaml beanLoader = new Yaml();
+ try {
+ beanLoader.loadAs("{", EmptyBean.class);
+ fail("Invalid document provided.");
+ } catch (Exception e) {
+ assertEquals("while parsing a flow node\n" + " in 'string', line 1, column 2:\n" + " {\n"
+ + " ^\n" + "expected the node content, but found '<stream end>'\n"
+ + " in 'string', line 1, column 2:\n" + " {\n" + " ^\n", e.getMessage());
}
+ }
- /**
- * global tag is ignored
- */
- public void testEmptyBean2() {
- Yaml beanLoader = new Yaml();
- EmptyBean bean = beanLoader.loadAs("!!Bla-bla-bla {}", EmptyBean.class);
- assertNotNull(bean);
- assertNull(bean.getFirstName());
- assertEquals(5, bean.getHatSize());
- }
+ public static class EmptyBean implements Serializable {
- /**
- * no tag
- */
- public void testEmptyBean3() {
- Yaml beanLoader = new Yaml();
- EmptyBean bean = beanLoader.loadAs("{ }", EmptyBean.class);
- assertNotNull(bean);
- assertNull(bean.getFirstName());
- assertEquals(5, bean.getHatSize());
- }
+ private static final long serialVersionUID = -8001155967276657180L;
+ private String firstName;
+ private int hatSize = 5;
- /**
- * empty document
- */
- public void testEmptyBean4() {
- Yaml beanLoader = new Yaml();
- EmptyBean bean = beanLoader.loadAs("", EmptyBean.class);
- assertNull(bean);
- }
+ public EmptyBean() {}
- /**
- * local tag is ignored
- */
- public void testEmptyBean5() {
- Yaml beanLoader = new Yaml();
- EmptyBean bean = beanLoader.loadAs("!Bla-bla-bla {}", EmptyBean.class);
- assertNotNull(bean);
- assertNull(bean.getFirstName());
- assertEquals(5, bean.getHatSize());
+ public String getFirstName() {
+ return firstName;
}
- /**
- * invalid document
- */
- public void testEmptyBean6() {
- Yaml beanLoader = new Yaml();
- try {
- beanLoader.loadAs("{", EmptyBean.class);
- fail("Invalid document provided.");
- } catch (Exception e) {
- assertEquals("while parsing a flow node\n" + " in 'string', line 1, column 2:\n"
- + " {\n" + " ^\n" + "expected the node content, but found StreamEnd\n"
- + " in 'string', line 1, column 2:\n" + " {\n" + " ^\n", e.getMessage());
- }
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
}
- public static class EmptyBean implements Serializable {
- private static final long serialVersionUID = -8001155967276657180L;
- private String firstName;
- private int hatSize = 5;
-
- public EmptyBean() {
- }
-
- public String getFirstName() {
- return firstName;
- }
-
- public void setFirstName(String firstName) {
- this.firstName = firstName;
- }
-
- public int getHatSize() {
- return hatSize;
- }
+ public int getHatSize() {
+ return hatSize;
+ }
- public void setHatSize(int hatSize) {
- this.hatSize = hatSize;
- }
+ public void setHatSize(int hatSize) {
+ this.hatSize = hatSize;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/javabeans/Door.java b/src/test/java/org/yaml/snakeyaml/javabeans/Door.java
index 7e3ad133..68b61ac0 100644
--- a/src/test/java/org/yaml/snakeyaml/javabeans/Door.java
+++ b/src/test/java/org/yaml/snakeyaml/javabeans/Door.java
@@ -1,67 +1,66 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.javabeans;
public class Door {
- private String id;
- private int height;
- public Door(String id, int height) {
- this.id = id;
- this.height = height;
- }
+ private String id;
+ private int height;
- public Door() {
- this.height = 3;
- }
+ public Door(String id, int height) {
+ this.id = id;
+ this.height = height;
+ }
- public int getHeight() {
- return height;
- }
+ public Door() {
+ this.height = 3;
+ }
- public void setHeight(int height) {
- this.height = height;
- }
+ public int getHeight() {
+ return height;
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof Door) {
- Door door = (Door) obj;
- return id.equals(door.id);
- } else {
- return false;
- }
- }
+ public void setHeight(int height) {
+ this.height = height;
+ }
- @Override
- public int hashCode() {
- return id.hashCode();
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof Door) {
+ Door door = (Door) obj;
+ return id.equals(door.id);
+ } else {
+ return false;
}
+ }
- public String getId() {
- return id;
- }
+ @Override
+ public int hashCode() {
+ return id.hashCode();
+ }
- public void setId(String id) {
- this.id = id;
- }
+ public String getId() {
+ return id;
+ }
- @Override
- public String toString() {
- return "Door id=" + id;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ @Override
+ public String toString() {
+ return "Door id=" + id;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/javabeans/FrontDoor.java b/src/test/java/org/yaml/snakeyaml/javabeans/FrontDoor.java
index 2b958da7..0bf99b7b 100644
--- a/src/test/java/org/yaml/snakeyaml/javabeans/FrontDoor.java
+++ b/src/test/java/org/yaml/snakeyaml/javabeans/FrontDoor.java
@@ -1,37 +1,36 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.javabeans;
public class FrontDoor extends Door {
- private String keytype;
- public FrontDoor() {
- super();
- }
+ private String keytype;
- public FrontDoor(String id, int height) {
- super(id, height);
- }
+ public FrontDoor() {
+ super();
+ }
- public String getKeytype() {
- return keytype;
- }
+ public FrontDoor(String id, int height) {
+ super(id, height);
+ }
- public void setKeytype(String keytype) {
- this.keytype = keytype;
- }
+ public String getKeytype() {
+ return keytype;
+ }
+
+ public void setKeytype(String keytype) {
+ this.keytype = keytype;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/javabeans/House.java b/src/test/java/org/yaml/snakeyaml/javabeans/House.java
index 41ba335a..81190bde 100644
--- a/src/test/java/org/yaml/snakeyaml/javabeans/House.java
+++ b/src/test/java/org/yaml/snakeyaml/javabeans/House.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.javabeans;
@@ -19,50 +17,51 @@ import java.util.List;
import java.util.Map;
public class House {
- private String street;
- private int number;
- private List<Room> rooms;
- private FrontDoor frontDoor;
- private Map<String, String> reminders;
- public String getStreet() {
- return street;
- }
+ private String street;
+ private int number;
+ private List<Room> rooms;
+ private FrontDoor frontDoor;
+ private Map<String, String> reminders;
- public void setStreet(String street) {
- this.street = street;
- }
+ public String getStreet() {
+ return street;
+ }
- public int getNumber() {
- return number;
- }
+ public void setStreet(String street) {
+ this.street = street;
+ }
- public void setNumber(int number) {
- this.number = number;
- }
+ public int getNumber() {
+ return number;
+ }
- public List<Room> getRooms() {
- return rooms;
- }
+ public void setNumber(int number) {
+ this.number = number;
+ }
- public void setRooms(List<Room> rooms) {
- this.rooms = rooms;
- }
+ public List<Room> getRooms() {
+ return rooms;
+ }
- public FrontDoor getFrontDoor() {
- return frontDoor;
- }
+ public void setRooms(List<Room> rooms) {
+ this.rooms = rooms;
+ }
- public void setFrontDoor(FrontDoor frontDoor) {
- this.frontDoor = frontDoor;
- }
+ public FrontDoor getFrontDoor() {
+ return frontDoor;
+ }
- public Map<String, String> getReminders() {
- return reminders;
- }
+ public void setFrontDoor(FrontDoor frontDoor) {
+ this.frontDoor = frontDoor;
+ }
- public void setReminders(Map<String, String> reminders) {
- this.reminders = reminders;
- }
+ public Map<String, String> getReminders() {
+ return reminders;
+ }
+
+ public void setReminders(Map<String, String> reminders) {
+ this.reminders = reminders;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/javabeans/HouseTest.java b/src/test/java/org/yaml/snakeyaml/javabeans/HouseTest.java
index 97c69338..367493c7 100644
--- a/src/test/java/org/yaml/snakeyaml/javabeans/HouseTest.java
+++ b/src/test/java/org/yaml/snakeyaml/javabeans/HouseTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.javabeans;
@@ -19,9 +17,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.FlowStyle;
import org.yaml.snakeyaml.TypeDescription;
@@ -30,115 +26,116 @@ import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.Constructor;
public class HouseTest extends TestCase {
- /**
- * no root global tag
- */
- public void testDump1() {
- House house = new House();
- FrontDoor frontDoor = new FrontDoor("qaz1", 5);
- frontDoor.setKeytype("qwerty123");
- house.setFrontDoor(frontDoor);
- List<Room> rooms = new ArrayList<Room>();
- rooms.add(new Room("Hall"));
- rooms.add(new Room("Kitchen"));
- house.setRooms(rooms);
- Map<String, String> reminders = new TreeMap<String, String>();
- reminders.put("today", "do nothig");
- reminders.put("tomorrow", "go shoping");
- house.setReminders(reminders);
- house.setNumber(1);
- house.setStreet("Wall Street");
- Yaml beanDumper = new Yaml();
- String yaml = beanDumper.dumpAsMap(house);
- String etalon = Util.getLocalResource("javabeans/house-dump1.yaml");
- assertEquals(etalon, yaml);
- // load
- Yaml beanLoader = new Yaml();
- House loadedHouse = beanLoader.loadAs(yaml, House.class);
- assertNotNull(loadedHouse);
- assertEquals("Wall Street", loadedHouse.getStreet());
- // dump again
- String yaml3 = beanDumper.dumpAsMap(loadedHouse);
- assertEquals(yaml, yaml3);
- }
- /**
- * with global root class tag (global tag should be avoided)
- */
- public void testDump3() {
- House house = new House();
- FrontDoor frontDoor = new FrontDoor("qaz1", 5);
- frontDoor.setKeytype("qwerty123");
- house.setFrontDoor(frontDoor);
- List<Room> rooms = new ArrayList<Room>();
- rooms.add(new Room("Hall"));
- rooms.add(new Room("Kitchen"));
- house.setRooms(rooms);
- Map<String, String> reminders = new TreeMap<String, String>();
- reminders.put("today", "do nothig");
- reminders.put("tomorrow", "go shoping");
- house.setReminders(reminders);
- house.setNumber(1);
- house.setStreet("Wall Street");
- Yaml beanDumper = new Yaml();
- String yaml = beanDumper.dumpAsMap(house);
- String etalon = Util.getLocalResource("javabeans/house-dump3.yaml");
- assertEquals(etalon, yaml);
- // load
- TypeDescription description = new TypeDescription(House.class);
- description.putListPropertyType("rooms", Room.class);
- Yaml beanLoader = new Yaml(new Constructor(description));
- House loadedHouse = (House) beanLoader.load(yaml);
- House loadedHouse2 = (House) beanLoader.loadAs(yaml, House.class);
- assertNotNull(loadedHouse);
- assertFalse(loadedHouse == loadedHouse2);
- assertEquals("Wall Street", loadedHouse.getStreet());
- assertEquals(1, loadedHouse.getNumber());
- assertEquals(1, loadedHouse2.getNumber());
- FrontDoor fdoor = loadedHouse.getFrontDoor();
- assertEquals(frontDoor.getId(), fdoor.getId());
- assertEquals(frontDoor.getHeight(), fdoor.getHeight());
- assertEquals(frontDoor.getKeytype(), fdoor.getKeytype());
- assertEquals(frontDoor, fdoor);
- assertEquals(reminders, loadedHouse.getReminders());
- List<Room> loadedRooms = loadedHouse.getRooms();
- assertEquals(rooms, loadedRooms);
- // dump again
- String yaml3 = beanDumper.dumpAsMap(loadedHouse);
- assertEquals(yaml, yaml3);
- }
+ /**
+ * no root global tag
+ */
+ public void testDump1() {
+ House house = new House();
+ FrontDoor frontDoor = new FrontDoor("qaz1", 5);
+ frontDoor.setKeytype("qwerty123");
+ house.setFrontDoor(frontDoor);
+ List<Room> rooms = new ArrayList<Room>();
+ rooms.add(new Room("Hall"));
+ rooms.add(new Room("Kitchen"));
+ house.setRooms(rooms);
+ Map<String, String> reminders = new TreeMap<String, String>();
+ reminders.put("today", "do nothig");
+ reminders.put("tomorrow", "go shoping");
+ house.setReminders(reminders);
+ house.setNumber(1);
+ house.setStreet("Wall Street");
+ Yaml beanDumper = new Yaml();
+ String yaml = beanDumper.dumpAsMap(house);
+ String etalon = Util.getLocalResource("javabeans/house-dump1.yaml");
+ assertEquals(etalon, yaml);
+ // load
+ Yaml beanLoader = new Yaml();
+ House loadedHouse = beanLoader.loadAs(yaml, House.class);
+ assertNotNull(loadedHouse);
+ assertEquals("Wall Street", loadedHouse.getStreet());
+ // dump again
+ String yaml3 = beanDumper.dumpAsMap(loadedHouse);
+ assertEquals(yaml, yaml3);
+ }
+
+ /**
+ * with global root class tag (global tag should be avoided)
+ */
+ public void testDump3() {
+ House house = new House();
+ FrontDoor frontDoor = new FrontDoor("qaz1", 5);
+ frontDoor.setKeytype("qwerty123");
+ house.setFrontDoor(frontDoor);
+ List<Room> rooms = new ArrayList<Room>();
+ rooms.add(new Room("Hall"));
+ rooms.add(new Room("Kitchen"));
+ house.setRooms(rooms);
+ Map<String, String> reminders = new TreeMap<String, String>();
+ reminders.put("today", "do nothig");
+ reminders.put("tomorrow", "go shoping");
+ house.setReminders(reminders);
+ house.setNumber(1);
+ house.setStreet("Wall Street");
+ Yaml beanDumper = new Yaml();
+ String yaml = beanDumper.dumpAsMap(house);
+ String etalon = Util.getLocalResource("javabeans/house-dump3.yaml");
+ assertEquals(etalon, yaml);
+ // load
+ TypeDescription description = new TypeDescription(House.class);
+ description.putListPropertyType("rooms", Room.class);
+ Yaml beanLoader = new Yaml(new Constructor(description));
+ House loadedHouse = beanLoader.load(yaml);
+ House loadedHouse2 = beanLoader.loadAs(yaml, House.class);
+ assertNotNull(loadedHouse);
+ assertNotSame(loadedHouse, loadedHouse2);
+ assertEquals("Wall Street", loadedHouse.getStreet());
+ assertEquals(1, loadedHouse.getNumber());
+ assertEquals(1, loadedHouse2.getNumber());
+ FrontDoor fdoor = loadedHouse.getFrontDoor();
+ assertEquals(frontDoor.getId(), fdoor.getId());
+ assertEquals(frontDoor.getHeight(), fdoor.getHeight());
+ assertEquals(frontDoor.getKeytype(), fdoor.getKeytype());
+ assertEquals(frontDoor, fdoor);
+ assertEquals(reminders, loadedHouse.getReminders());
+ List<Room> loadedRooms = loadedHouse.getRooms();
+ assertEquals(rooms, loadedRooms);
+ // dump again
+ String yaml3 = beanDumper.dumpAsMap(loadedHouse);
+ assertEquals(yaml, yaml3);
+ }
- /**
- * with global root class tag (global tag should be avoided)
- */
- public void testDump2() {
- House house = new House();
- FrontDoor frontDoor = new FrontDoor("qaz1", 5);
- frontDoor.setKeytype("qwerty123");
- house.setFrontDoor(frontDoor);
- List<Room> rooms = new ArrayList<Room>();
- rooms.add(new Room("Hall"));
- rooms.add(new Room("Kitchen"));
- house.setRooms(rooms);
- Map<String, String> reminders = new TreeMap<String, String>();
- reminders.put("today", "do nothig");
- reminders.put("tomorrow", "go shoping");
- house.setReminders(reminders);
- house.setNumber(1);
- house.setStreet("Wall Street");
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(FlowStyle.BLOCK);
- Yaml beanDumper = new Yaml(options);
- String yaml = beanDumper.dump(house);
- String etalon = Util.getLocalResource("javabeans/house-dump2.yaml");
- assertEquals(etalon, yaml);
- // load
- Yaml beanLoader = new Yaml();
- House loadedHouse = beanLoader.loadAs(yaml, House.class);
- assertNotNull(loadedHouse);
- assertEquals("Wall Street", loadedHouse.getStreet());
- // dump again
- String yaml3 = beanDumper.dump(loadedHouse);
- assertEquals(yaml, yaml3);
- }
+ /**
+ * with global root class tag (global tag should be avoided)
+ */
+ public void testDump2() {
+ House house = new House();
+ FrontDoor frontDoor = new FrontDoor("qaz1", 5);
+ frontDoor.setKeytype("qwerty123");
+ house.setFrontDoor(frontDoor);
+ List<Room> rooms = new ArrayList<Room>();
+ rooms.add(new Room("Hall"));
+ rooms.add(new Room("Kitchen"));
+ house.setRooms(rooms);
+ Map<String, String> reminders = new TreeMap<String, String>();
+ reminders.put("today", "do nothig");
+ reminders.put("tomorrow", "go shoping");
+ house.setReminders(reminders);
+ house.setNumber(1);
+ house.setStreet("Wall Street");
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(FlowStyle.BLOCK);
+ Yaml beanDumper = new Yaml(options);
+ String yaml = beanDumper.dump(house);
+ String etalon = Util.getLocalResource("javabeans/house-dump2.yaml");
+ assertEquals(etalon, yaml);
+ // load
+ Yaml beanLoader = new Yaml();
+ House loadedHouse = beanLoader.loadAs(yaml, House.class);
+ assertNotNull(loadedHouse);
+ assertEquals("Wall Street", loadedHouse.getStreet());
+ // dump again
+ String yaml3 = beanDumper.dump(loadedHouse);
+ assertEquals(yaml, yaml3);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/javabeans/LongTest.java b/src/test/java/org/yaml/snakeyaml/javabeans/LongTest.java
index 7b7deaf3..16d2cc84 100644
--- a/src/test/java/org/yaml/snakeyaml/javabeans/LongTest.java
+++ b/src/test/java/org/yaml/snakeyaml/javabeans/LongTest.java
@@ -1,73 +1,72 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.javabeans;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.nodes.Tag;
import org.yaml.snakeyaml.representer.Representer;
public class LongTest extends TestCase {
- public void testLongFail() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
- Yaml yaml = new Yaml(options);
- Foo foo = new Foo();
- String output = yaml.dump(foo);
- // System.out.println(output);
- try {
- yaml.load(output);
- } catch (Exception e) {
- assertTrue(e.getMessage(), e.getMessage().contains("argument type mismatch"));
- }
+
+ public void testLongFail() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ Yaml yaml = new Yaml(options);
+ Foo foo = new Foo();
+ String output = yaml.dump(foo);
+ // System.out.println(output);
+ try {
+ yaml.load(output);
+ } catch (Exception e) {
+ assertTrue(e.getMessage(), e.getMessage().contains("argument type mismatch"));
}
+ }
- public static class Foo {
- private Long bar = Long.valueOf(42L);
+ public static class Foo {
- public Long getBar() {
- return bar;
- }
+ private Long bar = Long.valueOf(42L);
- public void setBar(Long bar) {
- this.bar = bar;
- }
+ public Long getBar() {
+ return bar;
}
- public void testLongRepresenter() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
- Representer repr = new Representer();
- repr.addClassTag(Long.class, new Tag("!!java.lang.Long"));
- Yaml yaml = new Yaml(repr, options);
-
- Foo foo = new Foo();
- String output = yaml.dump(foo);
- // System.out.println(output);
- Foo foo2 = (Foo) yaml.load(output);
- assertEquals(new Long(42L), foo2.getBar());
+ public void setBar(Long bar) {
+ this.bar = bar;
}
+ }
- public void testLongConstructor() {
- String doc = "!!org.yaml.snakeyaml.javabeans.LongTest$Foo\n\"bar\": !!int \"42\"";
- // System.out.println(doc);
- Yaml yaml = new Yaml();
- Foo foo2 = (Foo) yaml.load(doc);
- assertEquals(new Long(42L), foo2.getBar());
- }
+ public void testLongRepresenter() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ Representer repr = new Representer();
+ repr.addClassTag(Long.class, new Tag("!!java.lang.Long"));
+ Yaml yaml = new Yaml(repr, options);
+
+ Foo foo = new Foo();
+ String output = yaml.dump(foo);
+ // System.out.println(output);
+ Foo foo2 = yaml.load(output);
+ assertEquals(Long.valueOf(42L), foo2.getBar());
+ }
+
+ public void testLongConstructor() {
+ String doc = "!!org.yaml.snakeyaml.javabeans.LongTest$Foo\n\"bar\": !!int \"42\"";
+ // System.out.println(doc);
+ Yaml yaml = new Yaml();
+ Foo foo2 = yaml.load(doc);
+ assertEquals(Long.valueOf(42L), foo2.getBar());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/javabeans/Room.java b/src/test/java/org/yaml/snakeyaml/javabeans/Room.java
index 31e0ebde..4332d9a5 100644
--- a/src/test/java/org/yaml/snakeyaml/javabeans/Room.java
+++ b/src/test/java/org/yaml/snakeyaml/javabeans/Room.java
@@ -1,57 +1,56 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.javabeans;
public class Room {
- private String name;
- public Room() {
- this.name = "Bedroom";
- }
+ private String name;
- public Room(String name) {
- this.name = name;
- }
+ public Room() {
+ this.name = "Bedroom";
+ }
- public String getName() {
- return name;
- }
+ public Room(String name) {
+ this.name = name;
+ }
- public void setName(String name) {
- this.name = name;
- }
+ public String getName() {
+ return name;
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof Room) {
- Room room = (Room) obj;
- return name.equals(room.name);
- } else {
- return false;
- }
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- @Override
- public int hashCode() {
- return name.hashCode();
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof Room) {
+ Room room = (Room) obj;
+ return name.equals(room.name);
+ } else {
+ return false;
}
+ }
- @Override
- public String toString() {
- return "Room name=" + name;
- }
+ @Override
+ public int hashCode() {
+ return name.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return "Room name=" + name;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/javabeans/Shape.java b/src/test/java/org/yaml/snakeyaml/javabeans/Shape.java
index ec086e48..29e7ad13 100644
--- a/src/test/java/org/yaml/snakeyaml/javabeans/Shape.java
+++ b/src/test/java/org/yaml/snakeyaml/javabeans/Shape.java
@@ -1,21 +1,19 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.javabeans;
public interface Shape {
- public int process();
+ int process();
}
diff --git a/src/test/java/org/yaml/snakeyaml/javabeans/StringArrayTest.java b/src/test/java/org/yaml/snakeyaml/javabeans/StringArrayTest.java
index 5a380491..4fcb1afb 100644
--- a/src/test/java/org/yaml/snakeyaml/javabeans/StringArrayTest.java
+++ b/src/test/java/org/yaml/snakeyaml/javabeans/StringArrayTest.java
@@ -1,70 +1,69 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.javabeans;
-import java.util.Arrays;
+import static org.junit.Assert.assertArrayEquals;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
public class StringArrayTest extends TestCase {
- public void testStrings() {
- A a = new A();
- a.setNames(new String[] { "aaa", "bbb", "ccc" });
- Yaml yaml = new Yaml();
- String output = yaml.dump(a);
- assertEquals("!!org.yaml.snakeyaml.javabeans.StringArrayTest$A\nnames: [aaa, bbb, ccc]\n",
- output);
- A b = (A) yaml.load(output);
- assertTrue(Arrays.equals(a.getNames(), b.getNames()));
- }
- public void testStringsPretty() {
- A a = new A();
- a.setNames(new String[] { "aaa", "bbb", "ccc" });
- DumperOptions options = new DumperOptions();
- options.setPrettyFlow(true);
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(a);
- assertEquals(
- "!!org.yaml.snakeyaml.javabeans.StringArrayTest$A\nnames: [\n aaa,\n bbb,\n ccc]\n",
- output);
- A b = (A) yaml.load(output);
- assertTrue(Arrays.equals(a.getNames(), b.getNames()));
- }
+ public void testStrings() {
+ A a = new A();
+ a.setNames(new String[] {"aaa", "bbb", "ccc"});
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(a);
+ assertEquals("!!org.yaml.snakeyaml.javabeans.StringArrayTest$A\nnames: [aaa, bbb, ccc]\n",
+ output);
+ A b = yaml.load(output);
+ assertArrayEquals(a.getNames(), b.getNames());
+ }
+
+ public void testStringsPretty() {
+ A a = new A();
+ a.setNames(new String[] {"aaa", "bbb", "ccc"});
+ DumperOptions options = new DumperOptions();
+ options.setPrettyFlow(true);
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(a);
+ assertEquals(
+ "!!org.yaml.snakeyaml.javabeans.StringArrayTest$A\nnames: [\n aaa,\n bbb,\n ccc\n]\n",
+ output);
+ A b = yaml.load(output);
+ assertArrayEquals(a.getNames(), b.getNames());
+ }
- public static class A {
- String[] names;
+ public static class A {
- public String[] getNames() {
- return names;
- }
+ String[] names;
- public void setNames(String[] names) {
- this.names = names;
- }
+ public String[] getNames() {
+ return names;
+ }
+
+ public void setNames(String[] names) {
+ this.names = names;
+ }
- public String getName(int index) {
- return names[index];
- }
+ public String getName(int index) {
+ return names[index];
+ }
- public void setName(int index, String name) {
- this.names[index] = name;
- }
+ public void setName(int index, String name) {
+ this.names[index] = name;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/javabeans/Triangle.java b/src/test/java/org/yaml/snakeyaml/javabeans/Triangle.java
index 10acc6dc..6476dbc9 100644
--- a/src/test/java/org/yaml/snakeyaml/javabeans/Triangle.java
+++ b/src/test/java/org/yaml/snakeyaml/javabeans/Triangle.java
@@ -1,32 +1,31 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.javabeans;
public class Triangle implements Shape {
- private String name;
- public String getName() {
- return name;
- }
+ private String name;
- public void setName(String name) {
- this.name = name;
- }
+ public String getName() {
+ return name;
+ }
- public int process() {
- return 7;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int process() {
+ return 7;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/javabeans/TriangleBean.java b/src/test/java/org/yaml/snakeyaml/javabeans/TriangleBean.java
index 68930902..9f459047 100644
--- a/src/test/java/org/yaml/snakeyaml/javabeans/TriangleBean.java
+++ b/src/test/java/org/yaml/snakeyaml/javabeans/TriangleBean.java
@@ -1,42 +1,41 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.javabeans;
public class TriangleBean {
- private String name;
- private Shape shape;
- public String getName() {
- return name;
- }
+ private String name;
+ private Shape shape;
- public void setName(String name) {
- this.name = name;
- }
+ public String getName() {
+ return name;
+ }
- public Shape getShape() {
- return shape;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public void setShape(Shape shape) {
- this.shape = shape;
- }
+ public Shape getShape() {
+ return shape;
+ }
- @Override
- public String toString() {
- return "TriangleBean name=" + name;
- }
+ public void setShape(Shape shape) {
+ this.shape = shape;
+ }
+
+ @Override
+ public String toString() {
+ return "TriangleBean name=" + name;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/javabeans/TriangleBeanTest.java b/src/test/java/org/yaml/snakeyaml/javabeans/TriangleBeanTest.java
index 8e84e753..a5448eb8 100644
--- a/src/test/java/org/yaml/snakeyaml/javabeans/TriangleBeanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/javabeans/TriangleBeanTest.java
@@ -1,69 +1,66 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.javabeans;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class TriangleBeanTest extends TestCase {
- public void testGetTriangle() {
- Triangle triangle = new Triangle();
- triangle.setName("Triangle25");
- TriangleBean bean = new TriangleBean();
- bean.setShape(triangle);
- bean.setName("Bean25");
- Yaml beanDumper = new Yaml();
- String output = beanDumper.dumpAsMap(bean);
- assertEquals(
- "name: Bean25\nshape: !!org.yaml.snakeyaml.javabeans.Triangle\n name: Triangle25\n",
- output);
- Yaml beanLoader = new Yaml();
- TriangleBean loadedBean = beanLoader.loadAs(output, TriangleBean.class);
- assertNotNull(loadedBean);
- assertEquals("Bean25", loadedBean.getName());
- assertEquals(7, loadedBean.getShape().process());
- }
+ public void testGetTriangle() {
+ Triangle triangle = new Triangle();
+ triangle.setName("Triangle25");
+ TriangleBean bean = new TriangleBean();
+ bean.setShape(triangle);
+ bean.setName("Bean25");
+ Yaml beanDumper = new Yaml();
+ String output = beanDumper.dumpAsMap(bean);
+ assertEquals(
+ "name: Bean25\nshape: !!org.yaml.snakeyaml.javabeans.Triangle\n name: Triangle25\n",
+ output);
+ Yaml beanLoader = new Yaml();
+ TriangleBean loadedBean = beanLoader.loadAs(output, TriangleBean.class);
+ assertNotNull(loadedBean);
+ assertEquals("Bean25", loadedBean.getName());
+ assertEquals(7, loadedBean.getShape().process());
+ }
- public void testClassNotFound() {
- String output = "name: Bean25\nshape: !!org.yaml.snakeyaml.javabeans.Triangle777\n name: Triangle25\n";
- Yaml beanLoader = new Yaml();
- try {
- beanLoader.loadAs(output, TriangleBean.class);
- fail("Class not found expected.");
- } catch (Exception e) {
- assertTrue(
- e.getMessage(),
- e.getMessage().contains(
- "Class not found: org.yaml.snakeyaml.javabeans.Triangle777"));
- }
+ public void testClassNotFound() {
+ String output =
+ "name: Bean25\nshape: !!org.yaml.snakeyaml.javabeans.Triangle777\n name: Triangle25\n";
+ Yaml beanLoader = new Yaml();
+ try {
+ beanLoader.loadAs(output, TriangleBean.class);
+ fail("Class not found expected.");
+ } catch (Exception e) {
+ assertTrue(e.getMessage(),
+ e.getMessage().contains("Class not found: org.yaml.snakeyaml.javabeans.Triangle777"));
}
+ }
- /**
- * Runtime class has less priority then an explicit tag
- */
- public void testClassAndTag() {
- String output = "name: !!whatever Bean25\nshape: !!org.yaml.snakeyaml.javabeans.Triangle\n name: Triangle25\n";
- Yaml beanLoader = new Yaml();
- try {
- beanLoader.loadAs(output, TriangleBean.class);
- fail("Runtime class has less priority then an explicit tag");
- } catch (Exception e) {
- assertTrue(e.getMessage(), e.getMessage().contains("Class not found: whatever"));
- }
+ /**
+ * Runtime class has less priority then an explicit tag
+ */
+ public void testClassAndTag() {
+ String output =
+ "name: !!whatever Bean25\nshape: !!org.yaml.snakeyaml.javabeans.Triangle\n name: Triangle25\n";
+ Yaml beanLoader = new Yaml();
+ try {
+ beanLoader.loadAs(output, TriangleBean.class);
+ fail("Runtime class has less priority then an explicit tag");
+ } catch (Exception e) {
+ assertTrue(e.getMessage(), e.getMessage().contains("Class not found: whatever"));
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/json/JsonTest.java b/src/test/java/org/yaml/snakeyaml/json/JsonTest.java
index 4ba2119f..19390e3e 100644
--- a/src/test/java/org/yaml/snakeyaml/json/JsonTest.java
+++ b/src/test/java/org/yaml/snakeyaml/json/JsonTest.java
@@ -1,88 +1,75 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.json;
+import java.util.Map;
import junit.framework.TestCase;
import org.yaml.snakeyaml.Yaml;
-
-import java.util.Map;
-
public class JsonTest extends TestCase {
- private Yaml loader = new Yaml();
-
-
- public void testLooksLikeJson() {
- Map<String, Integer> map = (Map<String, Integer>) loader.load("{a: 1}");
- assertEquals(new Integer(1), map.get("a"));
- }
-
- public void testSpaceAfterColon() {
- Map<String, Integer> map = (Map<String, Integer>) loader.load("{\"a\": 1}");
- assertEquals(new Integer(1), map.get("a"));
- }
-
- public void testCounterintuitiveColon() {
- try {
- loader.load("{a:1}");
- fail("We agree with libyaml and PyYAML.");
- } catch (Exception e) {
- assertTrue("':' in the flow context is a mess.", e.getMessage().contains("Please check http://pyyaml.org/wiki/YAMLColonInFlowContext for details."));
- }
- }
-
- public void testNoSpace() {
- Map<String, Integer> map = (Map<String, Integer>) loader.load("{\"a\":1}");
- assertEquals(new Integer(1), map.get("a"));
- }
-
- public void testNoSpaceBothDoubleQuoted() {
- Map<String, Integer> map = (Map<String, Integer>) loader.load("{\"a\":\"1\"}");
- assertEquals("1", map.get("a"));
- }
-
- public void testNoSpaceSingleQouted() {
- Map<String, Integer> map = (Map<String, Integer>) loader.load("{'a':1}");
- assertEquals(new Integer(1), map.get("a"));
- }
-
- public void testManyValues() {
- Map<String, Object> map = (Map<String, Object>) loader.load("{\"a\":1,\"b\":true,\"c\":\"foo\"}");
- assertEquals(3, map.size());
- assertEquals(new Integer(1), map.get("a"));
- assertTrue((Boolean) map.get("b"));
- assertEquals("foo", map.get("c"));
- }
-
- public void testConstructNull() {
- Map<String, Object> map = (Map<String, Object>) loader.load("{a: null}");
- assertEquals(1, map.size());
- assertNull(map.get("a"));
- }
-
- public void testConstructNullFromEmpty() {
- Map<String, Object> map = (Map<String, Object>) loader.load("{a: }");
- assertEquals(1, map.size());
- assertNull(map.get("a"));
- }
-
- public void testConstructBoolean() {
- Map<String, Object> map = (Map<String, Object>) loader.load("{a: true}");
- assertEquals(1, map.size());
- assertEquals(Boolean.TRUE, map.get("a"));
- }
+ private final Yaml loader = new Yaml();
+
+
+ public void testLooksLikeJson() {
+ Map<String, Integer> map = loader.load("{a: 1}");
+ assertEquals(Integer.valueOf(1), map.get("a"));
+ }
+
+ public void testSpaceAfterColon() {
+ Map<String, Integer> map = loader.load("{\"a\": 1}");
+ assertEquals(Integer.valueOf(1), map.get("a"));
+ }
+
+ public void testNoSpace() {
+ Map<String, Integer> map = loader.load("{\"a\":1}");
+ assertEquals(Integer.valueOf(1), map.get("a"));
+ }
+
+ public void testNoSpaceBothDoubleQuoted() {
+ Map<String, Integer> map = loader.load("{\"a\":\"1\"}");
+ assertEquals("1", map.get("a"));
+ }
+
+ public void testNoSpaceSingleQouted() {
+ Map<String, Integer> map = loader.load("{'a':1}");
+ assertEquals(Integer.valueOf(1), map.get("a"));
+ }
+
+ public void testManyValues() {
+ Map<String, Object> map = loader.load("{\"a\":1,\"b\":true,\"c\":\"foo\"}");
+ assertEquals(3, map.size());
+ assertEquals(Integer.valueOf(1), map.get("a"));
+ assertTrue((Boolean) map.get("b"));
+ assertEquals("foo", map.get("c"));
+ }
+
+ public void testConstructNull() {
+ Map<String, Object> map = loader.load("{a: null}");
+ assertEquals(1, map.size());
+ assertNull(map.get("a"));
+ }
+
+ public void testConstructNullFromEmpty() {
+ Map<String, Object> map = loader.load("{a: }");
+ assertEquals(1, map.size());
+ assertNull(map.get("a"));
+ }
+
+ public void testConstructBoolean() {
+ Map<String, Object> map = loader.load("{a: true}");
+ assertEquals(1, map.size());
+ assertEquals(Boolean.TRUE, map.get("a"));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/lowlevel/LowLevelApiTest.java b/src/test/java/org/yaml/snakeyaml/lowlevel/LowLevelApiTest.java
index 12d7f3a0..a92c4c90 100644
--- a/src/test/java/org/yaml/snakeyaml/lowlevel/LowLevelApiTest.java
+++ b/src/test/java/org/yaml/snakeyaml/lowlevel/LowLevelApiTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.lowlevel;
@@ -20,9 +18,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.events.Event;
import org.yaml.snakeyaml.events.ScalarEvent;
@@ -30,36 +26,35 @@ import org.yaml.snakeyaml.nodes.Node;
public class LowLevelApiTest extends TestCase {
- public void testLowLevel() {
- List<Object> list = new ArrayList<Object>();
- list.add(1);
- list.add("abc");
- Map<String, String> map = new HashMap<String, String>();
- map.put("name", "Tolstoy");
- map.put("book", "War and People");
- list.add(map);
- Yaml yaml = new Yaml();
- String etalon = yaml.dump(list);
- // System.out.println(etalon);
- //
- Node node = yaml.represent(list);
- // System.out.println(node);
- assertEquals(
- "Representation tree from an object and from its YAML document must be the same.",
- yaml.compose(new StringReader(etalon)).toString(), node.toString());
- //
- List<Event> events = yaml.serialize(node);
- int i = 0;
- for (Event etalonEvent : yaml.parse(new StringReader(etalon))) {
- Event ev1 = events.get(i++);
- assertEquals(etalonEvent.getClass(), ev1.getClass());
- if (etalonEvent instanceof ScalarEvent) {
- ScalarEvent scalar1 = (ScalarEvent) etalonEvent;
- ScalarEvent scalar2 = (ScalarEvent) ev1;
- assertEquals(scalar1.getAnchor(), scalar2.getAnchor());
- assertEquals(scalar1.getValue(), scalar2.getValue());
- }
- }
- assertEquals(i, events.size());
+ public void testLowLevel() {
+ List<Object> list = new ArrayList<Object>();
+ list.add(1);
+ list.add("abc");
+ Map<String, String> map = new HashMap<String, String>();
+ map.put("name", "Tolstoy");
+ map.put("book", "War and People");
+ list.add(map);
+ Yaml yaml = new Yaml();
+ String etalon = yaml.dump(list);
+ // System.out.println(etalon);
+ //
+ Node node = yaml.represent(list);
+ // System.out.println(node);
+ assertEquals("Representation tree from an object and from its YAML document must be the same.",
+ yaml.compose(new StringReader(etalon)).toString(), node.toString());
+ //
+ List<Event> events = yaml.serialize(node);
+ int i = 0;
+ for (Event etalonEvent : yaml.parse(new StringReader(etalon))) {
+ Event ev1 = events.get(i++);
+ assertEquals(etalonEvent.getClass(), ev1.getClass());
+ if (etalonEvent instanceof ScalarEvent) {
+ ScalarEvent scalar1 = (ScalarEvent) etalonEvent;
+ ScalarEvent scalar2 = (ScalarEvent) ev1;
+ assertEquals(scalar1.getAnchor(), scalar2.getAnchor());
+ assertEquals(scalar1.getValue(), scalar2.getValue());
+ }
}
+ assertEquals(i, events.size());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/nodes/MappingNodeTest.java b/src/test/java/org/yaml/snakeyaml/nodes/MappingNodeTest.java
index a17afbbe..c466581e 100644
--- a/src/test/java/org/yaml/snakeyaml/nodes/MappingNodeTest.java
+++ b/src/test/java/org/yaml/snakeyaml/nodes/MappingNodeTest.java
@@ -1,30 +1,29 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.nodes;
import junit.framework.TestCase;
+import org.yaml.snakeyaml.DumperOptions;
public class MappingNodeTest extends TestCase {
- public void testNullValue() {
- try {
- new MappingNode(new Tag("!tag"), true, null, null, null, false);
- fail("Value is required.");
- } catch (Exception e) {
- assertEquals("value in a Node is required.", e.getMessage());
- }
+ public void testNullValue() {
+ try {
+ new MappingNode(new Tag("!tag"), true, null, null, null, DumperOptions.FlowStyle.BLOCK);
+ fail("Value is required.");
+ } catch (Exception e) {
+ assertEquals("value in a Node is required.", e.getMessage());
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/nodes/NodeTest.java b/src/test/java/org/yaml/snakeyaml/nodes/NodeTest.java
index ab7c6ca9..ec734953 100644
--- a/src/test/java/org/yaml/snakeyaml/nodes/NodeTest.java
+++ b/src/test/java/org/yaml/snakeyaml/nodes/NodeTest.java
@@ -1,51 +1,51 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.nodes;
import junit.framework.TestCase;
-
+import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.error.Mark;
public class NodeTest extends TestCase {
- public void testNode() {
- try {
- new ScalarNode(new Tag("!foo"), null, null, null, '"');
- fail("Value must be required.");
- } catch (Exception e) {
- assertEquals("value in a Node is required.", e.getMessage());
- }
+ public void testNode() {
+ try {
+ new ScalarNode(new Tag("!foo"), null, null, null, DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ fail("Value must be required.");
+ } catch (Exception e) {
+ assertEquals("value in a Node is required.", e.getMessage());
}
+ }
- public void testSetTag() {
- try {
- ScalarNode node = new ScalarNode(new Tag("!foo"), "Value1", null, null, '"');
- node.setTag((Tag) null);
- fail("Value must be required.");
- } catch (Exception e) {
- assertEquals("tag in a Node is required.", e.getMessage());
- }
+ public void testSetTag() {
+ try {
+ ScalarNode node = new ScalarNode(new Tag("!foo"), "Value1", null, null,
+ DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ node.setTag(null);
+ fail("Value must be required.");
+ } catch (Exception e) {
+ assertEquals("tag in a Node is required.", e.getMessage());
}
+ }
- public void testGetEndMark() {
- Mark mark1 = new Mark("name", 5, 2, 12, "afd asd asd", 7);
- Mark mark2 = new Mark("name", 6, 3, 13, "afd asd asd", 8);
- Node node = new ScalarNode(new Tag("!foo"), "bla-bla", mark1, mark2, '"');
- assertEquals(mark1, node.getStartMark());
- assertEquals(mark2, node.getEndMark());
- }
+ public void testGetEndMark() {
+ Mark mark1 = new Mark("name", 0, 2, 12, "afd asd asd".toCharArray(), 7);
+ Mark mark2 = new Mark("name", 0, 3, 13, "afd asd asd".toCharArray(), 8);
+ Node node = new ScalarNode(new Tag("!foo"), "bla-bla", mark1, mark2,
+ DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ assertEquals(mark1, node.getStartMark());
+ assertEquals(mark2, node.getEndMark());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/nodes/NodeTupleTest.java b/src/test/java/org/yaml/snakeyaml/nodes/NodeTupleTest.java
index 70d0d3aa..c6dd611a 100644
--- a/src/test/java/org/yaml/snakeyaml/nodes/NodeTupleTest.java
+++ b/src/test/java/org/yaml/snakeyaml/nodes/NodeTupleTest.java
@@ -1,51 +1,52 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.nodes;
import junit.framework.TestCase;
+import org.yaml.snakeyaml.DumperOptions;
public class NodeTupleTest extends TestCase {
- public void testNodeTuple1() {
- Node node = new ScalarNode(new Tag("!tag"), "value1", null, null, null);
- try {
- new NodeTuple(null, node);
- fail("Node must be provided.");
- } catch (Exception e) {
- assertEquals("Nodes must be provided.", e.getMessage());
- }
+ public void testNodeTuple1() {
+ Node node =
+ new ScalarNode(new Tag("!tag"), "value1", null, null, DumperOptions.ScalarStyle.PLAIN);
+ try {
+ new NodeTuple(null, node);
+ fail("Node must be provided.");
+ } catch (Exception e) {
+ assertEquals("Nodes must be provided.", e.getMessage());
}
+ }
- public void testNodeTuple2() {
- Node node = new ScalarNode(new Tag("!tag"), "value1", null, null, null);
- try {
- new NodeTuple(node, null);
- fail("Node must be provided.");
- } catch (Exception e) {
- assertEquals("Nodes must be provided.", e.getMessage());
- }
+ public void testNodeTuple2() {
+ Node node =
+ new ScalarNode(new Tag("!tag"), "value1", null, null, DumperOptions.ScalarStyle.PLAIN);
+ try {
+ new NodeTuple(node, null);
+ fail("Node must be provided.");
+ } catch (Exception e) {
+ assertEquals("Nodes must be provided.", e.getMessage());
}
+ }
- public void testToString() {
- Node key = new ScalarNode(Tag.STR, "key1", null, null, null);
- Node value = new ScalarNode(Tag.STR, "value1", null, null, null);
- NodeTuple tuple = new NodeTuple(key, value);
- assertEquals(
- "<NodeTuple keyNode=<org.yaml.snakeyaml.nodes.ScalarNode (tag=tag:yaml.org,2002:str, value=key1)>; valueNode=<org.yaml.snakeyaml.nodes.ScalarNode (tag=tag:yaml.org,2002:str, value=value1)>>",
- tuple.toString());
- }
+ public void testToString() {
+ Node key = new ScalarNode(Tag.STR, "key1", null, null, DumperOptions.ScalarStyle.PLAIN);
+ Node value = new ScalarNode(Tag.STR, "value1", null, null, DumperOptions.ScalarStyle.PLAIN);
+ NodeTuple tuple = new NodeTuple(key, value);
+ assertEquals(
+ "<NodeTuple keyNode=<org.yaml.snakeyaml.nodes.ScalarNode (tag=tag:yaml.org,2002:str, value=key1)>; valueNode=<org.yaml.snakeyaml.nodes.ScalarNode (tag=tag:yaml.org,2002:str, value=value1)>>",
+ tuple.toString());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/nodes/ScalarNodeTest.java b/src/test/java/org/yaml/snakeyaml/nodes/ScalarNodeTest.java
index 501115d9..df591945 100644
--- a/src/test/java/org/yaml/snakeyaml/nodes/ScalarNodeTest.java
+++ b/src/test/java/org/yaml/snakeyaml/nodes/ScalarNodeTest.java
@@ -1,37 +1,38 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.nodes;
import junit.framework.TestCase;
+import org.yaml.snakeyaml.DumperOptions;
public class ScalarNodeTest extends TestCase {
- protected void setUp() throws Exception {
- super.setUp();
- }
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
- public void testGetNodeId() {
- Node node = new ScalarNode(new Tag("str"), "text", null, null, '>');
- assertEquals(NodeId.scalar, node.getNodeId());
- }
+ public void testGetNodeId() {
+ Node node =
+ new ScalarNode(new Tag("str"), "text", null, null, DumperOptions.ScalarStyle.FOLDED);
+ assertEquals(NodeId.scalar, node.getNodeId());
+ }
- public void testToString() {
- Node node = new ScalarNode(new Tag("str"), "text", null, null, '>');
- assertTrue(node.toString().contains("ScalarNode"));
- assertTrue(node.toString().contains("tag="));
- assertTrue(node.toString().contains("value="));
- }
+ public void testToString() {
+ Node node =
+ new ScalarNode(new Tag("str"), "text", null, null, DumperOptions.ScalarStyle.FOLDED);
+ assertTrue(node.toString().contains("ScalarNode"));
+ assertTrue(node.toString().contains("tag="));
+ assertTrue(node.toString().contains("value="));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/nodes/SequenceNodeTest.java b/src/test/java/org/yaml/snakeyaml/nodes/SequenceNodeTest.java
index 4ab1ce14..817f2616 100644
--- a/src/test/java/org/yaml/snakeyaml/nodes/SequenceNodeTest.java
+++ b/src/test/java/org/yaml/snakeyaml/nodes/SequenceNodeTest.java
@@ -1,38 +1,36 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.nodes;
import java.util.ArrayList;
-
import junit.framework.TestCase;
+import org.yaml.snakeyaml.DumperOptions;
public class SequenceNodeTest extends TestCase {
- public void testGetNodeId() {
- SequenceNode node = new SequenceNode(new Tag("!foo"), true, new ArrayList<Node>(), null,
- null, true);
- assertEquals(NodeId.sequence, node.getNodeId());
- }
+ public void testGetNodeId() {
+ SequenceNode node = new SequenceNode(new Tag("!foo"), true, new ArrayList<Node>(), null, null,
+ DumperOptions.FlowStyle.FLOW);
+ assertEquals(NodeId.sequence, node.getNodeId());
+ }
- public void testNullValue() {
- try {
- new SequenceNode(new Tag("!foo"), true, null, null, null, true);
- fail("Value is required.");
- } catch (Exception e) {
- assertEquals("value in a Node is required.", e.getMessage());
- }
+ public void testNullValue() {
+ try {
+ new SequenceNode(new Tag("!foo"), true, null, null, null, DumperOptions.FlowStyle.FLOW);
+ fail("Value is required.");
+ } catch (Exception e) {
+ assertEquals("value in a Node is required.", e.getMessage());
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/nodes/TagTest.java b/src/test/java/org/yaml/snakeyaml/nodes/TagTest.java
index 467d3354..5943c0ba 100644
--- a/src/test/java/org/yaml/snakeyaml/nodes/TagTest.java
+++ b/src/test/java/org/yaml/snakeyaml/nodes/TagTest.java
@@ -1,106 +1,92 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.nodes;
-import java.net.URI;
-import java.net.URISyntaxException;
+import static org.junit.Assert.assertNotEquals;
import junit.framework.TestCase;
public class TagTest extends TestCase {
- public void testCreate() {
- try {
- new Tag((String) null);
- fail();
- } catch (Exception e) {
- assertEquals("Tag must be provided.", e.getMessage());
- }
- try {
- new Tag("");
- fail();
- } catch (Exception e) {
- assertEquals("Tag must not be empty.", e.getMessage());
- }
- try {
- new Tag("!Dice ");
- fail();
- } catch (Exception e) {
- assertEquals("Tag must not contain leading or trailing spaces.", e.getMessage());
- }
- Tag tag = new Tag(TagTest.class);
- assertEquals(Tag.PREFIX + "org.yaml.snakeyaml.nodes.TagTest", tag.getValue());
+ public void testCreate() {
+ try {
+ new Tag((String) null);
+ fail();
+ } catch (Exception e) {
+ assertEquals("Tag must be provided.", e.getMessage());
}
-
- public void testCreate2() {
- try {
- new Tag((Class<?>) null);
- fail();
- } catch (Exception e) {
- assertEquals("Class for tag must be provided.", e.getMessage());
- }
+ try {
+ new Tag("");
+ fail();
+ } catch (Exception e) {
+ assertEquals("Tag must not be empty.", e.getMessage());
}
-
- public void testGetClassName() {
- Tag tag = new Tag(Tag.PREFIX + "org.yaml.snakeyaml.nodes.TagTest");
- assertEquals("org.yaml.snakeyaml.nodes.TagTest", tag.getClassName());
+ try {
+ new Tag("!Dice ");
+ fail();
+ } catch (Exception e) {
+ assertEquals("Tag must not contain leading or trailing spaces.", e.getMessage());
}
+ Tag tag = new Tag(TagTest.class);
+ assertEquals(Tag.PREFIX + "org.yaml.snakeyaml.nodes.TagTest", tag.getValue());
+ }
- public void testGetClassNameError() {
- try {
- Tag tag = new Tag("!TagTest");
- tag.getClassName();
- fail("Class name is only available for global tag");
- } catch (Exception e) {
- assertEquals("Invalid tag: !TagTest", e.getMessage());
- }
+ public void testCreate2() {
+ try {
+ new Tag((Class<?>) null);
+ fail();
+ } catch (Exception e) {
+ assertEquals("Class for tag must be provided.", e.getMessage());
}
+ }
- public void testLength() {
- String t = Tag.PREFIX + "org.yaml.snakeyaml.nodes.TagTest";
- Tag tag = new Tag(t);
- assertEquals(t.length(), tag.getLength());
- }
+ public void testGetClassName() {
+ Tag tag = new Tag(Tag.PREFIX + "org.yaml.snakeyaml.nodes.TagTest");
+ assertEquals("org.yaml.snakeyaml.nodes.TagTest", tag.getClassName());
+ }
- public void testToString() {
- Tag tag = new Tag("!car");
- assertEquals("!car", tag.toString());
+ public void testGetClassNameError() {
+ try {
+ Tag tag = new Tag("!TagTest");
+ tag.getClassName();
+ fail("Class name is only available for global tag");
+ } catch (Exception e) {
+ assertEquals("Invalid tag: !TagTest", e.getMessage());
}
+ }
- public void testUri1() {
- Tag tag = new Tag("!Académico");
- assertEquals("!Acad%C3%A9mico", tag.toString());
- }
+ public void testToString() {
+ Tag tag = new Tag("!car");
+ assertEquals("!car", tag.toString());
+ }
- public void testUri2() {
- Tag tag = new Tag("!ruby/object:Test::Module::Sub2");
- assertEquals("!ruby/object:Test::Module::Sub2", tag.getValue());
- }
+ public void testUri1() {
+ Tag tag = new Tag("!Académico");
+ assertEquals("!Acad%C3%A9mico", tag.toString());
+ }
- public void testCompare() {
- Tag tag = new Tag("!car");
- assertEquals(0, tag.compareTo(new Tag("!car")));
- }
+ public void testUri2() {
+ Tag tag = new Tag("!ruby/object:Test::Module::Sub2");
+ assertEquals("!ruby/object:Test::Module::Sub2", tag.getValue());
+ }
- public void testEqualsObject() {
- Tag tag = new Tag("!car");
- assertEquals(tag, tag);
- assertEquals(tag, new Tag("!car"));
- assertFalse(tag.equals(new Tag("!!str")));
- assertFalse(tag.equals(null));
- assertFalse(tag.equals(25));
- }
+ public void testEqualsObject() {
+ Tag tag = new Tag("!car");
+ assertEquals(tag, tag);
+ assertEquals(tag, new Tag("!car"));
+ assertNotEquals(tag, new Tag("!!str"));
+ assertNotEquals(null, tag);
+ assertNotEquals(25, tag);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/nodes/TagsTest.java b/src/test/java/org/yaml/snakeyaml/nodes/TagsTest.java
index 51556232..547910f2 100644
--- a/src/test/java/org/yaml/snakeyaml/nodes/TagsTest.java
+++ b/src/test/java/org/yaml/snakeyaml/nodes/TagsTest.java
@@ -1,57 +1,54 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.nodes;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
public class TagsTest extends TestCase {
- public void testGetGlobalTagForClass() {
- assertEquals(new Tag("tag:yaml.org,2002:java.lang.String"), new Tag(String.class));
- assertEquals(new Tag("tag:yaml.org,2002:org.yaml.snakeyaml.nodes.TagsTest"), new Tag(
- TagsTest.class));
- }
-
- /**
- * test fix for issue 18 -
- * http://code.google.com/p/snakeyaml/issues/detail?id=18
- */
- public void testLong() {
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
- Yaml yaml = new Yaml(options);
- Foo foo = new Foo();
- String output = yaml.dump(foo);
- // System.out.println(output);
- Foo foo2 = (Foo) yaml.load(output);
- assertEquals(new Long(42L), foo2.getBar());
+ public void testGetGlobalTagForClass() {
+ assertEquals(new Tag("tag:yaml.org,2002:java.lang.String"), new Tag(String.class));
+ assertEquals(new Tag("tag:yaml.org,2002:org.yaml.snakeyaml.nodes.TagsTest"),
+ new Tag(TagsTest.class));
+ }
+
+ /**
+ * test fix for issue 18 - http://code.google.com/p/snakeyaml/issues/detail?id=18
+ */
+ public void testLong() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ Yaml yaml = new Yaml(options);
+ Foo foo = new Foo();
+ String output = yaml.dump(foo);
+ // System.out.println(output);
+ Foo foo2 = yaml.load(output);
+ assertEquals(Long.valueOf(42L), foo2.getBar());
+ }
+
+ public static class Foo {
+
+ private Long bar = Long.valueOf(42L);
+
+ public Long getBar() {
+ return bar;
}
- public static class Foo {
- private Long bar = Long.valueOf(42L);
-
- public Long getBar() {
- return bar;
- }
-
- public void setBar(Long bar) {
- this.bar = bar;
- }
+ public void setBar(Long bar) {
+ this.bar = bar;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/parser/ParserImplTest.java b/src/test/java/org/yaml/snakeyaml/parser/ParserImplTest.java
index d8bd3c8a..22163b8c 100644
--- a/src/test/java/org/yaml/snakeyaml/parser/ParserImplTest.java
+++ b/src/test/java/org/yaml/snakeyaml/parser/ParserImplTest.java
@@ -1,24 +1,21 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.parser;
import java.util.LinkedList;
-
import junit.framework.TestCase;
-
+import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.error.Mark;
import org.yaml.snakeyaml.events.DocumentEndEvent;
import org.yaml.snakeyaml.events.DocumentStartEvent;
@@ -35,57 +32,72 @@ import org.yaml.snakeyaml.reader.StreamReader;
public class ParserImplTest extends TestCase {
- private void check(LinkedList<Event> etalonEvents, Parser parser) {
- while (parser.checkEvent(null)) {
- Event event = parser.getEvent();
- if (etalonEvents.isEmpty()) {
- fail("unexpected event: " + event);
- }
- assertEquals(etalonEvents.removeFirst(), event);
- }
- assertFalse("Must contain no more events: " + parser.getEvent(), parser.checkEvent(null));
+ private void check(LinkedList<Event> etalonEvents, Parser parser) {
+ for (Event etalonEvent : etalonEvents) {
+ parser.checkEvent(etalonEvent.getEventId());
+ Event event = parser.getEvent();
+ if (event == null) {
+ fail("Missing event: " + etalonEvent);
+ }
+ assertEquals(etalonEvent, event);
}
+ }
- public void testGetEvent() {
- String data = "string: abcd";
- StreamReader reader = new StreamReader(data);
- Parser parser = new ParserImpl(reader);
- Mark dummyMark = new Mark("dummy", 0, 0, 0, "", 0);
- LinkedList<Event> etalonEvents = new LinkedList<Event>();
- etalonEvents.add(new StreamStartEvent(dummyMark, dummyMark));
- etalonEvents.add(new DocumentStartEvent(dummyMark, dummyMark, false, null, null));
- etalonEvents.add(new MappingStartEvent(null, null, true, dummyMark, dummyMark,
- Boolean.FALSE));
- etalonEvents.add(new ScalarEvent(null, null, new ImplicitTuple(true, false), "string",
- dummyMark, dummyMark, (char) 0));
- etalonEvents.add(new ScalarEvent(null, null, new ImplicitTuple(true, false), "abcd",
- dummyMark, dummyMark, (char) 0));
- etalonEvents.add(new MappingEndEvent(dummyMark, dummyMark));
- etalonEvents.add(new DocumentEndEvent(dummyMark, dummyMark, false));
- etalonEvents.add(new StreamEndEvent(dummyMark, dummyMark));
- check(etalonEvents, parser);
- }
+ public void testGetEventWithTag() {
+ String data = "! 12";
+ StreamReader reader = new StreamReader(data);
+ Parser parser = new ParserImpl(reader);
+ Mark dummyMark = new Mark("dummy", 0, 0, 0, "".toCharArray(), 0);
+ LinkedList<Event> etalonEvents = new LinkedList<Event>();
+ etalonEvents.add(new StreamStartEvent(dummyMark, dummyMark));
+ etalonEvents.add(new DocumentStartEvent(dummyMark, dummyMark, false, null, null));
+ etalonEvents.add(new ScalarEvent(null, "!", new ImplicitTuple(true, false), "12", dummyMark,
+ dummyMark, DumperOptions.ScalarStyle.PLAIN));
+ etalonEvents.add(new DocumentEndEvent(dummyMark, dummyMark, false));
+ etalonEvents.add(new StreamEndEvent(dummyMark, dummyMark));
+ check(etalonEvents, parser);
+ }
- public void testGetEvent2() {
- String data = "american:\n - Boston Red Sox";
- StreamReader reader = new StreamReader(data);
- Parser parser = new ParserImpl(reader);
- Mark dummyMark = new Mark("dummy", 0, 0, 0, "", 0);
- LinkedList<Event> etalonEvents = new LinkedList<Event>();
- etalonEvents.add(new StreamStartEvent(dummyMark, dummyMark));
- etalonEvents.add(new DocumentStartEvent(dummyMark, dummyMark, false, null, null));
- etalonEvents
- .add(new MappingStartEvent(null, null, true, dummyMark, dummyMark, Boolean.TRUE));
- etalonEvents.add(new ScalarEvent(null, null, new ImplicitTuple(true, false), "american",
- dummyMark, dummyMark, (char) 0));
- etalonEvents.add(new SequenceStartEvent(null, null, true, dummyMark, dummyMark,
- Boolean.FALSE));
- etalonEvents.add(new ScalarEvent(null, null, new ImplicitTuple(true, false),
- "Boston Red Sox", dummyMark, dummyMark, (char) 0));
- etalonEvents.add(new SequenceEndEvent(dummyMark, dummyMark));
- etalonEvents.add(new MappingEndEvent(dummyMark, dummyMark));
- etalonEvents.add(new DocumentEndEvent(dummyMark, dummyMark, false));
- etalonEvents.add(new StreamEndEvent(dummyMark, dummyMark));
- check(etalonEvents, parser);
- }
+ public void testGetEvent() {
+ String data = "string: abcd";
+ StreamReader reader = new StreamReader(data);
+ Parser parser = new ParserImpl(reader);
+ Mark dummyMark = new Mark("dummy", 0, 0, 0, "".toCharArray(), 0);
+ LinkedList<Event> etalonEvents = new LinkedList<Event>();
+ etalonEvents.add(new StreamStartEvent(dummyMark, dummyMark));
+ etalonEvents.add(new DocumentStartEvent(dummyMark, dummyMark, false, null, null));
+ etalonEvents.add(new MappingStartEvent(null, null, true, dummyMark, dummyMark,
+ DumperOptions.FlowStyle.BLOCK));
+ etalonEvents.add(new ScalarEvent(null, null, new ImplicitTuple(true, false), "string",
+ dummyMark, dummyMark, DumperOptions.ScalarStyle.PLAIN));
+ etalonEvents.add(new ScalarEvent(null, null, new ImplicitTuple(true, false), "abcd", dummyMark,
+ dummyMark, DumperOptions.ScalarStyle.PLAIN));
+ etalonEvents.add(new MappingEndEvent(dummyMark, dummyMark));
+ etalonEvents.add(new DocumentEndEvent(dummyMark, dummyMark, false));
+ etalonEvents.add(new StreamEndEvent(dummyMark, dummyMark));
+ check(etalonEvents, parser);
+ }
+
+ public void testGetEvent2() {
+ String data = "american:\n - Boston Red Sox";
+ StreamReader reader = new StreamReader(data);
+ Parser parser = new ParserImpl(reader);
+ Mark dummyMark = new Mark("dummy", 0, 0, 0, "".toCharArray(), 0);
+ LinkedList<Event> etalonEvents = new LinkedList<Event>();
+ etalonEvents.add(new StreamStartEvent(dummyMark, dummyMark));
+ etalonEvents.add(new DocumentStartEvent(dummyMark, dummyMark, false, null, null));
+ etalonEvents.add(new MappingStartEvent(null, null, true, dummyMark, dummyMark,
+ DumperOptions.FlowStyle.FLOW));
+ etalonEvents.add(new ScalarEvent(null, null, new ImplicitTuple(true, false), "american",
+ dummyMark, dummyMark, DumperOptions.ScalarStyle.PLAIN));
+ etalonEvents.add(new SequenceStartEvent(null, null, true, dummyMark, dummyMark,
+ DumperOptions.FlowStyle.BLOCK));
+ etalonEvents.add(new ScalarEvent(null, null, new ImplicitTuple(true, false), "Boston Red Sox",
+ dummyMark, dummyMark, DumperOptions.ScalarStyle.PLAIN));
+ etalonEvents.add(new SequenceEndEvent(dummyMark, dummyMark));
+ etalonEvents.add(new MappingEndEvent(dummyMark, dummyMark));
+ etalonEvents.add(new DocumentEndEvent(dummyMark, dummyMark, false));
+ etalonEvents.add(new StreamEndEvent(dummyMark, dummyMark));
+ check(etalonEvents, parser);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/parser/VersionTagsTupleTest.java b/src/test/java/org/yaml/snakeyaml/parser/VersionTagsTupleTest.java
index abd072b0..3132dc6f 100644
--- a/src/test/java/org/yaml/snakeyaml/parser/VersionTagsTupleTest.java
+++ b/src/test/java/org/yaml/snakeyaml/parser/VersionTagsTupleTest.java
@@ -1,30 +1,26 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.parser;
import java.util.HashMap;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions.Version;
public class VersionTagsTupleTest extends TestCase {
- public void testToString() {
- VersionTagsTuple tuple = new VersionTagsTuple(Version.V1_1, new HashMap<String, String>());
- assertEquals("VersionTagsTuple<Version: 1.1, {}>", tuple.toString());
- }
+ public void testToString() {
+ VersionTagsTuple tuple = new VersionTagsTuple(Version.V1_1, new HashMap<String, String>());
+ assertEquals("VersionTagsTuple<Version: 1.1, {}>", tuple.toString());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/partialconstruct/DeveloperBean.java b/src/test/java/org/yaml/snakeyaml/partialconstruct/DeveloperBean.java
index f9a1e570..fcb7097b 100644
--- a/src/test/java/org/yaml/snakeyaml/partialconstruct/DeveloperBean.java
+++ b/src/test/java/org/yaml/snakeyaml/partialconstruct/DeveloperBean.java
@@ -1,37 +1,36 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.partialconstruct;
public class DeveloperBean {
- String name;
- String language;
- public String getName() {
- return name;
- }
+ String name;
+ String language;
- public String getLanguage() {
- return language;
- }
+ public String getName() {
+ return name;
+ }
- public void setName(String name) {
- this.name = name;
- }
+ public String getLanguage() {
+ return language;
+ }
- public void setLanguage(String language) {
- this.language = language;
- }
-} \ No newline at end of file
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setLanguage(String language) {
+ this.language = language;
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/partialconstruct/FragmentComposer.java b/src/test/java/org/yaml/snakeyaml/partialconstruct/FragmentComposer.java
index eccf57eb..d0883135 100644
--- a/src/test/java/org/yaml/snakeyaml/partialconstruct/FragmentComposer.java
+++ b/src/test/java/org/yaml/snakeyaml/partialconstruct/FragmentComposer.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.partialconstruct;
@@ -24,29 +22,30 @@ import org.yaml.snakeyaml.parser.Parser;
import org.yaml.snakeyaml.resolver.Resolver;
class FragmentComposer extends Composer {
- String nodeName;
- public FragmentComposer(Parser parser, Resolver resolver, String nodeName) {
- super(parser, resolver);
- this.nodeName = nodeName;
- }
+ String nodeName;
- @Override
- public Node getSingleNode() {
- Node node = super.getSingleNode();
- if (!MappingNode.class.isAssignableFrom(node.getClass())) {
- throw new RuntimeException(
- "Document is not structured as expected. Root element should be a map!");
- }
- MappingNode root = (MappingNode) node;
- for (NodeTuple tuple : root.getValue()) {
- Node keyNode = tuple.getKeyNode();
- if (ScalarNode.class.isAssignableFrom(keyNode.getClass())) {
- if (((ScalarNode) keyNode).getValue().equals(nodeName)) {
- return tuple.getValueNode();
- }
- }
+ public FragmentComposer(Parser parser, Resolver resolver, String nodeName) {
+ super(parser, resolver);
+ this.nodeName = nodeName;
+ }
+
+ @Override
+ public Node getSingleNode() {
+ Node node = super.getSingleNode();
+ if (!MappingNode.class.isAssignableFrom(node.getClass())) {
+ throw new RuntimeException(
+ "Document is not structured as expected. Root element should be a map!");
+ }
+ MappingNode root = (MappingNode) node;
+ for (NodeTuple tuple : root.getValue()) {
+ Node keyNode = tuple.getKeyNode();
+ if (ScalarNode.class.isAssignableFrom(keyNode.getClass())) {
+ if (((ScalarNode) keyNode).getValue().equals(nodeName)) {
+ return tuple.getValueNode();
}
- throw new RuntimeException("Did not find key \"" + nodeName + "\" in document-level map");
+ }
}
-} \ No newline at end of file
+ throw new RuntimeException("Did not find key \"" + nodeName + "\" in document-level map");
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/partialconstruct/FragmentComposerTest.java b/src/test/java/org/yaml/snakeyaml/partialconstruct/FragmentComposerTest.java
index c2bb990d..de34f812 100644
--- a/src/test/java/org/yaml/snakeyaml/partialconstruct/FragmentComposerTest.java
+++ b/src/test/java/org/yaml/snakeyaml/partialconstruct/FragmentComposerTest.java
@@ -1,22 +1,19 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.partialconstruct;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.composer.Composer;
import org.yaml.snakeyaml.constructor.Constructor;
import org.yaml.snakeyaml.parser.ParserImpl;
@@ -25,18 +22,17 @@ import org.yaml.snakeyaml.resolver.Resolver;
public class FragmentComposerTest extends TestCase {
- public void testFragment() {
- String document = "foo: blargle\n"
- + "developer: { name: \"Bjarne Stroustrup\", language: \"C++\"}\n"
- + "gee: [ \"whiz\", \"bang\"]\n";//
+ public void testFragment() {
+ String document =
+ "foo: blargle\n" + "developer: { name: \"Bjarne Stroustrup\", language: \"C++\"}\n"
+ + "gee: [ \"whiz\", \"bang\"]\n";//
- StreamReader reader = new StreamReader(document);
- Composer composer = new FragmentComposer(new ParserImpl(reader), new Resolver(),
- "developer");
- Constructor constructor = new Constructor();
- constructor.setComposer(composer);
- DeveloperBean developer = (DeveloperBean) constructor.getSingleData(DeveloperBean.class);
- assertEquals("Bjarne Stroustrup", developer.name);
- assertEquals("C++", developer.language);
- }
+ StreamReader reader = new StreamReader(document);
+ Composer composer = new FragmentComposer(new ParserImpl(reader), new Resolver(), "developer");
+ Constructor constructor = new Constructor();
+ constructor.setComposer(composer);
+ DeveloperBean developer = (DeveloperBean) constructor.getSingleData(DeveloperBean.class);
+ assertEquals("Bjarne Stroustrup", developer.name);
+ assertEquals("C++", developer.language);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/reader/IoReaderTest.java b/src/test/java/org/yaml/snakeyaml/reader/IoReaderTest.java
index 625f735b..0817e684 100644
--- a/src/test/java/org/yaml/snakeyaml/reader/IoReaderTest.java
+++ b/src/test/java/org/yaml/snakeyaml/reader/IoReaderTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.reader;
@@ -19,31 +17,29 @@ import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class IoReaderTest extends TestCase {
- @SuppressWarnings("unchecked")
- public void testCheckPrintable() throws IOException {
- Yaml yaml = new Yaml();
- Reader reader = new FileReader("src/test/resources/specification/example2_1.yaml");
- List<String> list = (List<String>) yaml.load(reader);
- reader.close();
- assertEquals(3, list.size());
- }
+ @SuppressWarnings("unchecked")
+ public void testCheckPrintable() throws IOException {
+ Yaml yaml = new Yaml();
+ Reader reader = new FileReader("src/test/resources/specification/example2_1.yaml");
+ List<String> list = yaml.load(reader);
+ reader.close();
+ assertEquals(3, list.size());
+ }
- /**
- * test input which is longer then internal buffer - 1k
- */
- public void testBigInput() throws IOException {
- Yaml yaml = new Yaml();
- Reader reader = new FileReader("src/test/resources/reader/large.yaml");
- @SuppressWarnings("unchecked")
- List<Object> list = (List<Object>) yaml.load(reader);
- reader.close();
- assertEquals(37, list.size());
- }
+ /**
+ * test input which is longer then internal buffer - 1k
+ */
+ public void testBigInput() throws IOException {
+ Yaml yaml = new Yaml();
+ Reader reader = new FileReader("src/test/resources/reader/large.yaml");
+ @SuppressWarnings("unchecked")
+ List<Object> list = yaml.load(reader);
+ reader.close();
+ assertEquals(37, list.size());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/reader/ReaderBomTest.java b/src/test/java/org/yaml/snakeyaml/reader/ReaderBomTest.java
index ffde7dda..c7396c2c 100644
--- a/src/test/java/org/yaml/snakeyaml/reader/ReaderBomTest.java
+++ b/src/test/java/org/yaml/snakeyaml/reader/ReaderBomTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.reader;
@@ -23,94 +21,97 @@ import java.io.InputStream;
import java.io.Reader;
import java.io.StringReader;
import java.nio.charset.Charset;
-
+import java.nio.charset.StandardCharsets;
import junit.framework.TestCase;
public class ReaderBomTest extends TestCase {
- public void testReader() {
- Reader input = new StringReader("test");
- StreamReader reader = new StreamReader(input);
- assertEquals('t', reader.peek());
- reader.forward(1);
- assertEquals('e', reader.peek());
- reader.forward(1);
- assertEquals('s', reader.peek());
- reader.forward(1);
- assertEquals('t', reader.peek());
- reader.forward(1);
- assertEquals('\u0000', reader.peek());
- }
+ public void testReader() {
+ Reader input = new StringReader("test");
+ StreamReader reader = new StreamReader(input);
+ assertEquals('t', reader.peek());
+ reader.forward(1);
+ assertEquals('e', reader.peek());
+ reader.forward(1);
+ assertEquals('s', reader.peek());
+ reader.forward(1);
+ assertEquals('t', reader.peek());
+ reader.forward(1);
+ assertEquals('\u0000', reader.peek());
+ }
- public void testNoBom() throws IOException {
- byte[] data = "test".getBytes("UTF-8");
- ByteArrayInputStream input = new ByteArrayInputStream(data);
- Reader r = new UnicodeReader(input);
- StreamReader reader = new StreamReader(r);
- assertEquals('t', reader.peek());
- assertEquals(Charset.forName("UTF-8"), reader.getEncoding());
- reader.forward(1);
- assertEquals('e', reader.peek());
- reader.forward(1);
- assertEquals('s', reader.peek());
- reader.forward(1);
- assertEquals('t', reader.peek());
- reader.forward(1);
- assertEquals('\u0000', reader.peek());
- r.close();
- }
+ public void testNoBom() throws IOException {
+ byte[] data = "test".getBytes(StandardCharsets.UTF_8);
+ ByteArrayInputStream input = new ByteArrayInputStream(data);
+ UnicodeReader r = new UnicodeReader(input);
+ StreamReader reader = new StreamReader(r);
+ assertEquals('t', reader.peek());
+ assertEquals(StandardCharsets.UTF_8, Charset.forName(r.getEncoding()));
+ reader.forward(1);
+ assertEquals('e', reader.peek());
+ reader.forward(1);
+ assertEquals('s', reader.peek());
+ reader.forward(1);
+ assertEquals('t', reader.peek());
+ reader.forward(1);
+ assertEquals('\u0000', reader.peek());
+ r.close();
+ }
- public void testUtf8Bom() throws IOException {
- File file = new File("src/test/resources/reader/utf-8.txt");
- assertTrue("Test file not found: " + file.getAbsolutePath(), file.exists());
- InputStream input = new FileInputStream(file);
- StreamReader reader = new StreamReader(new UnicodeReader(input));
- assertEquals('t', reader.peek());
- reader.forward(1);
- assertEquals('e', reader.peek());
- reader.forward(1);
- assertEquals('s', reader.peek());
- reader.forward(1);
- assertEquals('t', reader.peek());
- reader.forward(1);
- assertEquals('\u0000', reader.peek());
- assertEquals(Charset.forName("UTF-8"), reader.getEncoding());
- input.close();
- }
+ public void testUtf8Bom() throws IOException {
+ File file = new File("src/test/resources/reader/utf-8.txt");
+ assertTrue("Test file not found: " + file.getAbsolutePath(), file.exists());
+ InputStream input = new FileInputStream(file);
+ UnicodeReader unicodeReader = new UnicodeReader(input);
+ StreamReader reader = new StreamReader(unicodeReader);
+ assertEquals('t', reader.peek());
+ reader.forward(1);
+ assertEquals('e', reader.peek());
+ reader.forward(1);
+ assertEquals('s', reader.peek());
+ reader.forward(1);
+ assertEquals('t', reader.peek());
+ reader.forward(1);
+ assertEquals('\u0000', reader.peek());
+ assertEquals(StandardCharsets.UTF_8, Charset.forName(unicodeReader.getEncoding()));
+ input.close();
+ }
- public void testUnicodeLeBom() throws IOException {
- File file = new File("src/test/resources/reader/unicode-16le.txt");
- assertTrue("Test file not found: " + file.getAbsolutePath(), file.exists());
- InputStream input = new FileInputStream(file);
- StreamReader reader = new StreamReader(new UnicodeReader(input));
- assertEquals('t', reader.peek());
- reader.forward(1);
- assertEquals('e', reader.peek());
- reader.forward(1);
- assertEquals('s', reader.peek());
- reader.forward(1);
- assertEquals('t', reader.peek());
- reader.forward(1);
- assertEquals('\u0000', reader.peek());
- assertEquals(Charset.forName("UTF-16LE"), reader.getEncoding());
- input.close();
- }
+ public void testUnicodeLeBom() throws IOException {
+ File file = new File("src/test/resources/reader/unicode-16le.txt");
+ assertTrue("Test file not found: " + file.getAbsolutePath(), file.exists());
+ InputStream input = new FileInputStream(file);
+ UnicodeReader unicodeReader = new UnicodeReader(input);
+ StreamReader reader = new StreamReader(unicodeReader);
+ assertEquals('t', reader.peek());
+ reader.forward(1);
+ assertEquals('e', reader.peek());
+ reader.forward(1);
+ assertEquals('s', reader.peek());
+ reader.forward(1);
+ assertEquals('t', reader.peek());
+ reader.forward(1);
+ assertEquals('\u0000', reader.peek());
+ assertEquals(StandardCharsets.UTF_16LE, Charset.forName(unicodeReader.getEncoding()));
+ input.close();
+ }
- public void testUnicodeBeBom() throws IOException {
- File file = new File("src/test/resources/reader/unicode-16be.txt");
- assertTrue("Test file not found: " + file.getAbsolutePath(), file.exists());
- InputStream input = new FileInputStream(file);
- StreamReader reader = new StreamReader(new UnicodeReader(input));
- assertEquals('t', reader.peek());
- reader.forward(1);
- assertEquals('e', reader.peek());
- reader.forward(1);
- assertEquals('s', reader.peek());
- reader.forward(1);
- assertEquals('t', reader.peek());
- reader.forward(1);
- assertEquals('\u0000', reader.peek());
- assertEquals(Charset.forName("UTF-16BE"), reader.getEncoding());
- input.close();
- }
+ public void testUnicodeBeBom() throws IOException {
+ File file = new File("src/test/resources/reader/unicode-16be.txt");
+ assertTrue("Test file not found: " + file.getAbsolutePath(), file.exists());
+ InputStream input = new FileInputStream(file);
+ UnicodeReader unicodeReader = new UnicodeReader(input);
+ StreamReader reader = new StreamReader(unicodeReader);
+ assertEquals('t', reader.peek());
+ reader.forward(1);
+ assertEquals('e', reader.peek());
+ reader.forward(1);
+ assertEquals('s', reader.peek());
+ reader.forward(1);
+ assertEquals('t', reader.peek());
+ reader.forward(1);
+ assertEquals('\u0000', reader.peek());
+ assertEquals(StandardCharsets.UTF_16BE, Charset.forName(unicodeReader.getEncoding()));
+ input.close();
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/reader/ReaderStringTest.java b/src/test/java/org/yaml/snakeyaml/reader/ReaderStringTest.java
index 282b7e6f..6fc8defa 100644
--- a/src/test/java/org/yaml/snakeyaml/reader/ReaderStringTest.java
+++ b/src/test/java/org/yaml/snakeyaml/reader/ReaderStringTest.java
@@ -1,107 +1,94 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.reader;
-import java.util.regex.Matcher;
-
+import java.io.StringReader;
import junit.framework.TestCase;
public class ReaderStringTest extends TestCase {
- public void testCheckPrintable() {
- StreamReader reader = new StreamReader("test");
- reader.checkPrintable("test");
- Matcher matcher = StreamReader.NON_PRINTABLE.matcher("test");
- assertFalse(matcher.find());
-
- try {
- reader.checkPrintable("test".toCharArray(), 0, 4);
- } catch (ReaderException e) {
- fail();
- }
+ public void testCheckPrintable() {
+ StreamReader reader = new StreamReader("test");
+ assertEquals('\0', reader.peek(4));
+ assertTrue(StreamReader.isPrintable("test"));
+ }
+ public void testCheckNonPrintable() {
+ assertFalse(StreamReader.isPrintable("test\u0005 fail"));
+ try {
+ StreamReader reader = new StreamReader("test\u0005 fail");
+ while (reader.peek() != '\0') {
+ reader.forward();
+ }
+ fail("Non printable Unicode code points must not be accepted.");
+ } catch (ReaderException e) {
+ assertEquals(
+ "unacceptable code point '' (0x5) special characters are not allowed\nin \"'string'\", position 4",
+ e.toString());
}
+ }
- public void testCheckNonPrintable() {
- Matcher matcher = StreamReader.NON_PRINTABLE.matcher("test\u0005 fail");
- assertTrue(matcher.find());
- try {
- new StreamReader("test\u0005 fail");
- fail("Non printable Unicode characters must not be accepted.");
- } catch (ReaderException e) {
- assertEquals(
- "unacceptable character '' (0x5) special characters are not allowed\nin \"'string'\", position 4",
- e.toString());
- }
- }
+ /**
+ * test that Reading date and checking String work the same
+ */
+ public void testCheckAll() {
+ for (char i = 0; i < 256 * 256 - 1; i++) {
+ char[] chars = new char[1];
+ chars[0] = i;
+ String str = new String(chars);
+ boolean regularExpressionResult = StreamReader.isPrintable(str);
- /**
- * test that regular expression and array check work the same
- */
- public void testCheckAll() {
- StreamReader streamReader = new StreamReader("");
- for (char i = 0; i < 256 * 256 - 1; i++) {
- char[] chars = new char[1];
- chars[0] = i;
- String str = new String(chars);
- Matcher matcher = StreamReader.NON_PRINTABLE.matcher(str);
- boolean regularExpressionResult = !matcher.find();
-
- boolean charsArrayResult = true;
- try {
- streamReader.checkPrintable(chars, 0, 1);
- } catch (Exception e) {
- String error = e.getMessage();
- assertTrue(
- error,
- error.startsWith("unacceptable character")
- || error.equals("special characters are not allowed"));
- charsArrayResult = false;
- }
- assertEquals("Failed for #" + i, regularExpressionResult, charsArrayResult);
- }
+ boolean charsArrayResult = true;
+ try {
+ new StreamReader(new StringReader(str)).peek();
+ } catch (Exception e) {
+ String error = e.getMessage();
+ assertTrue(error, error.startsWith("unacceptable character")
+ || error.equals("special characters are not allowed"));
+ charsArrayResult = false;
+ }
+ assertEquals("Failed for #" + i, regularExpressionResult, charsArrayResult);
}
+ }
- public void testForward() {
- StreamReader reader = new StreamReader("test");
- while (reader.peek() != '\u0000') {
- reader.forward(1);
- }
- reader = new StreamReader("test");
- assertEquals('t', reader.peek());
- reader.forward(1);
- assertEquals('e', reader.peek());
- reader.forward(1);
- assertEquals('s', reader.peek());
- reader.forward(1);
- assertEquals('t', reader.peek());
- reader.forward(1);
- assertEquals('\u0000', reader.peek());
+ public void testForward() {
+ StreamReader reader = new StreamReader("test");
+ while (reader.peek() != '\u0000') {
+ reader.forward(1);
}
+ reader = new StreamReader("test");
+ assertEquals('t', reader.peek());
+ reader.forward(1);
+ assertEquals('e', reader.peek());
+ reader.forward(1);
+ assertEquals('s', reader.peek());
+ reader.forward(1);
+ assertEquals('t', reader.peek());
+ reader.forward(1);
+ assertEquals('\u0000', reader.peek());
+ }
- public void testPeekInt() {
- StreamReader reader = new StreamReader("test");
- assertEquals('t', reader.peek(0));
- assertEquals('e', reader.peek(1));
- assertEquals('s', reader.peek(2));
- assertEquals('t', reader.peek(3));
- reader.forward(1);
- assertEquals('e', reader.peek(0));
- assertEquals('s', reader.peek(1));
- assertEquals('t', reader.peek(2));
- }
+ public void testPeekInt() {
+ StreamReader reader = new StreamReader("test");
+ assertEquals('t', reader.peek(0));
+ assertEquals('e', reader.peek(1));
+ assertEquals('s', reader.peek(2));
+ assertEquals('t', reader.peek(3));
+ reader.forward(1);
+ assertEquals('e', reader.peek(0));
+ assertEquals('s', reader.peek(1));
+ assertEquals('t', reader.peek(2));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/reader/WindowsTest.java b/src/test/java/org/yaml/snakeyaml/reader/WindowsTest.java
new file mode 100644
index 00000000..33db2b36
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/reader/WindowsTest.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.reader;
+
+import junit.framework.TestCase;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.parser.ParserException;
+
+/**
+ * https://yaml.org/spec/1.1/#id871136
+ */
+public class WindowsTest extends TestCase {
+
+ // test windows style
+ public void testCRLF() {
+ try {
+ Yaml yaml = new Yaml();
+ yaml.load("\r\n[");
+ } catch (ParserException e) {
+ assertTrue(e.getMessage().contains("line 2,"));
+ }
+ }
+
+ public void testCRCR() {
+ try {
+ Yaml yaml = new Yaml();
+ yaml.load("\r\r[");
+ } catch (ParserException e) {
+ assertTrue(e.getMessage().contains("line 3,"));
+ }
+ }
+
+ // test UNIX style
+ public void testLFLF() {
+ try {
+ Yaml yaml = new Yaml();
+ yaml.load("\n\n[");
+ } catch (ParserException e) {
+ assertTrue(e.getMessage().contains("line 3,"));
+ }
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/recursive/AbstractHuman.java b/src/test/java/org/yaml/snakeyaml/recursive/AbstractHuman.java
index a0ee3334..c8f25695 100644
--- a/src/test/java/org/yaml/snakeyaml/recursive/AbstractHuman.java
+++ b/src/test/java/org/yaml/snakeyaml/recursive/AbstractHuman.java
@@ -1,86 +1,91 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.recursive;
import java.util.Date;
public abstract class AbstractHuman {
- private String name;
- private Date birthday;
- private String birthPlace;
- public String getName() {
- return name;
- }
+ private String name;
+ private Date birthday;
+ private String birthPlace;
- public void setName(String name) {
- this.name = name;
- }
+ public String getName() {
+ return name;
+ }
- public Date getBirthday() {
- return birthday;
- }
+ public void setName(String name) {
+ this.name = name;
+ }
- public void setBirthday(Date birthday) {
- this.birthday = birthday;
- }
+ public Date getBirthday() {
+ return birthday;
+ }
- public String getBirthPlace() {
- return birthPlace;
- }
+ public void setBirthday(Date birthday) {
+ this.birthday = birthday;
+ }
- public void setBirthPlace(String birthPlace) {
- this.birthPlace = birthPlace;
- }
+ public String getBirthPlace() {
+ return birthPlace;
+ }
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((birthPlace == null) ? 0 : birthPlace.hashCode());
- result = prime * result + ((birthday == null) ? 0 : birthday.hashCode());
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- return result;
- }
+ public void setBirthPlace(String birthPlace) {
+ this.birthPlace = birthPlace;
+ }
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- AbstractHuman other = (AbstractHuman) obj;
- if (birthPlace == null) {
- if (other.birthPlace != null)
- return false;
- } else if (!birthPlace.equals(other.birthPlace))
- return false;
- if (birthday == null) {
- if (other.birthday != null)
- return false;
- } else if (!birthday.equals(other.birthday))
- return false;
- if (name == null) {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- return true;
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((birthPlace == null) ? 0 : birthPlace.hashCode());
+ result = prime * result + ((birthday == null) ? 0 : birthday.hashCode());
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ AbstractHuman other = (AbstractHuman) obj;
+ if (birthPlace == null) {
+ if (other.birthPlace != null) {
+ return false;
+ }
+ } else if (!birthPlace.equals(other.birthPlace)) {
+ return false;
+ }
+ if (birthday == null) {
+ if (other.birthday != null) {
+ return false;
+ }
+ } else if (!birthday.equals(other.birthday)) {
+ return false;
+ }
+ if (name == null) {
+ return other.name == null;
+ } else {
+ return name.equals(other.name);
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/recursive/Human.java b/src/test/java/org/yaml/snakeyaml/recursive/Human.java
index 1ff91ae4..f5302d29 100644
--- a/src/test/java/org/yaml/snakeyaml/recursive/Human.java
+++ b/src/test/java/org/yaml/snakeyaml/recursive/Human.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.recursive;
@@ -20,54 +18,54 @@ import java.util.Set;
public class Human extends AbstractHuman {
- private Human father;
- private Human mother;
- private Human partner;
- private Human bankAccountOwner;
- protected Set<Human> children;
+ private Human father;
+ private Human mother;
+ private Human partner;
+ private Human bankAccountOwner;
+ protected Set<Human> children;
- public Human() {
- children = new HashSet<Human>();
- }
+ public Human() {
+ children = new HashSet<Human>();
+ }
- public Human getFather() {
- return father;
- }
+ public Human getFather() {
+ return father;
+ }
- public void setFather(Human father) {
- this.father = father;
- }
+ public void setFather(Human father) {
+ this.father = father;
+ }
- public Human getMother() {
- return mother;
- }
+ public Human getMother() {
+ return mother;
+ }
- public void setMother(Human mother) {
- this.mother = mother;
- }
+ public void setMother(Human mother) {
+ this.mother = mother;
+ }
- public Human getPartner() {
- return partner;
- }
+ public Human getPartner() {
+ return partner;
+ }
- public void setPartner(Human partner) {
- this.partner = partner;
- }
+ public void setPartner(Human partner) {
+ this.partner = partner;
+ }
- public Human getBankAccountOwner() {
- return bankAccountOwner;
- }
+ public Human getBankAccountOwner() {
+ return bankAccountOwner;
+ }
- public void setBankAccountOwner(Human bankAccountOwner) {
- this.bankAccountOwner = bankAccountOwner;
- }
+ public void setBankAccountOwner(Human bankAccountOwner) {
+ this.bankAccountOwner = bankAccountOwner;
+ }
- public Set<Human> getChildren() {
- return children;
- }
+ public Set<Human> getChildren() {
+ return children;
+ }
- public void setChildren(Set<Human> children) {
- this.children = children;
- }
+ public void setChildren(Set<Human> children) {
+ this.children = children;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/recursive/Human2.java b/src/test/java/org/yaml/snakeyaml/recursive/Human2.java
index d056c725..1110a53d 100644
--- a/src/test/java/org/yaml/snakeyaml/recursive/Human2.java
+++ b/src/test/java/org/yaml/snakeyaml/recursive/Human2.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.recursive;
@@ -20,54 +18,54 @@ import java.util.Map;
public class Human2 extends AbstractHuman {
- private Human2 father;
- private Human2 mother;
- private Human2 partner;
- private Human2 bankAccountOwner;
- protected Map<Human2, String> children;
+ private Human2 father;
+ private Human2 mother;
+ private Human2 partner;
+ private Human2 bankAccountOwner;
+ protected Map<Human2, String> children;
- public Human2() {
- children = new HashMap<Human2, String>();
- }
+ public Human2() {
+ children = new HashMap<Human2, String>();
+ }
- public Human2 getFather() {
- return father;
- }
+ public Human2 getFather() {
+ return father;
+ }
- public void setFather(Human2 father) {
- this.father = father;
- }
+ public void setFather(Human2 father) {
+ this.father = father;
+ }
- public Human2 getMother() {
- return mother;
- }
+ public Human2 getMother() {
+ return mother;
+ }
- public void setMother(Human2 mother) {
- this.mother = mother;
- }
+ public void setMother(Human2 mother) {
+ this.mother = mother;
+ }
- public Human2 getPartner() {
- return partner;
- }
+ public Human2 getPartner() {
+ return partner;
+ }
- public void setPartner(Human2 partner) {
- this.partner = partner;
- }
+ public void setPartner(Human2 partner) {
+ this.partner = partner;
+ }
- public Human2 getBankAccountOwner() {
- return bankAccountOwner;
- }
+ public Human2 getBankAccountOwner() {
+ return bankAccountOwner;
+ }
- public void setBankAccountOwner(Human2 bankAccountOwner) {
- this.bankAccountOwner = bankAccountOwner;
- }
+ public void setBankAccountOwner(Human2 bankAccountOwner) {
+ this.bankAccountOwner = bankAccountOwner;
+ }
- public Map<Human2, String> getChildren() {
- return children;
- }
+ public Map<Human2, String> getChildren() {
+ return children;
+ }
- public void setChildren(Map<Human2, String> children) {
- this.children = children;
- }
+ public void setChildren(Map<Human2, String> children) {
+ this.children = children;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/recursive/Human3.java b/src/test/java/org/yaml/snakeyaml/recursive/Human3.java
index 41bda1fb..038db9ed 100644
--- a/src/test/java/org/yaml/snakeyaml/recursive/Human3.java
+++ b/src/test/java/org/yaml/snakeyaml/recursive/Human3.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.recursive;
@@ -20,54 +18,54 @@ import java.util.List;
public class Human3 extends AbstractHuman {
- private Human3 father;
- private Human3 mother;
- private Human3 partner;
- private Human3 bankAccountOwner;
- protected List<Human3> children;
+ private Human3 father;
+ private Human3 mother;
+ private Human3 partner;
+ private Human3 bankAccountOwner;
+ protected List<Human3> children;
- public Human3() {
- children = new ArrayList<Human3>();
- }
+ public Human3() {
+ children = new ArrayList<Human3>();
+ }
- public Human3 getFather() {
- return father;
- }
+ public Human3 getFather() {
+ return father;
+ }
- public void setFather(Human3 father) {
- this.father = father;
- }
+ public void setFather(Human3 father) {
+ this.father = father;
+ }
- public Human3 getMother() {
- return mother;
- }
+ public Human3 getMother() {
+ return mother;
+ }
- public void setMother(Human3 mother) {
- this.mother = mother;
- }
+ public void setMother(Human3 mother) {
+ this.mother = mother;
+ }
- public Human3 getPartner() {
- return partner;
- }
+ public Human3 getPartner() {
+ return partner;
+ }
- public void setPartner(Human3 partner) {
- this.partner = partner;
- }
+ public void setPartner(Human3 partner) {
+ this.partner = partner;
+ }
- public Human3 getBankAccountOwner() {
- return bankAccountOwner;
- }
+ public Human3 getBankAccountOwner() {
+ return bankAccountOwner;
+ }
- public void setBankAccountOwner(Human3 bankAccountOwner) {
- this.bankAccountOwner = bankAccountOwner;
- }
+ public void setBankAccountOwner(Human3 bankAccountOwner) {
+ this.bankAccountOwner = bankAccountOwner;
+ }
- public List<Human3> getChildren() {
- return children;
- }
+ public List<Human3> getChildren() {
+ return children;
+ }
- public void setChildren(List<Human3> children) {
- this.children = children;
- }
+ public void setChildren(List<Human3> children) {
+ this.children = children;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/recursive/HumanTest.java b/src/test/java/org/yaml/snakeyaml/recursive/HumanTest.java
index eab247e1..5cd70c24 100644
--- a/src/test/java/org/yaml/snakeyaml/recursive/HumanTest.java
+++ b/src/test/java/org/yaml/snakeyaml/recursive/HumanTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.recursive;
@@ -24,635 +22,640 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.FlowStyle;
+import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.TypeDescription;
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.Constructor;
+import org.yaml.snakeyaml.representer.Representer;
public class HumanTest extends TestCase {
- public void testNoChildren() {
- Human father = new Human();
- father.setName("Father");
- father.setBirthday(new Date(1000000000));
- father.setBirthPlace("Leningrad");
- father.setBankAccountOwner(father);
- Human mother = new Human();
- mother.setName("Mother");
- mother.setBirthday(new Date(100000000000L));
- mother.setBirthPlace("Saint-Petersburg");
- father.setPartner(mother);
- mother.setPartner(father);
- mother.setBankAccountOwner(father);
- Yaml yaml = new Yaml();
- String output = yaml.dump(father);
- String etalon = Util.getLocalResource("recursive/no-children-1.yaml");
- assertEquals(etalon, output);
- //
- Human father2 = (Human) yaml.load(output);
- assertNotNull(father2);
- assertEquals("Father", father2.getName());
- assertEquals("Mother", father2.getPartner().getName());
- assertEquals("Father", father2.getBankAccountOwner().getName());
- assertSame(father2, father2.getBankAccountOwner());
+ public void testNoChildren() {
+ Human father = new Human();
+ father.setName("Father");
+ father.setBirthday(new Date(1000000000));
+ father.setBirthPlace("Leningrad");
+ father.setBankAccountOwner(father);
+ Human mother = new Human();
+ mother.setName("Mother");
+ mother.setBirthday(new Date(100000000000L));
+ mother.setBirthPlace("Saint-Petersburg");
+ father.setPartner(mother);
+ mother.setPartner(father);
+ mother.setBankAccountOwner(father);
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(father);
+ String etalon = Util.getLocalResource("recursive/no-children-1.yaml");
+ assertEquals(etalon, output);
+ //
+ Human father2 = yaml.load(output);
+ assertNotNull(father2);
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", father2.getPartner().getName());
+ assertEquals("Father", father2.getBankAccountOwner().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ }
+
+ public void testNoChildrenPretty() {
+ Human father = new Human();
+ father.setName("Father");
+ father.setBirthday(new Date(1000000000));
+ father.setBirthPlace("Leningrad");
+ father.setBankAccountOwner(father);
+ Human mother = new Human();
+ mother.setName("Mother");
+ mother.setBirthday(new Date(100000000000L));
+ mother.setBirthPlace("Saint-Petersburg");
+ father.setPartner(mother);
+ mother.setPartner(father);
+ mother.setBankAccountOwner(father);
+ DumperOptions options = new DumperOptions();
+ options.setPrettyFlow(true);
+ options.setDefaultFlowStyle(FlowStyle.FLOW);
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(father);
+ String etalon = Util.getLocalResource("recursive/no-children-1-pretty.yaml");
+ assertEquals(etalon, output);
+ //
+ Human father2 = yaml.load(output);
+ assertNotNull(father2);
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", father2.getPartner().getName());
+ assertEquals("Father", father2.getBankAccountOwner().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ }
+
+ public void testChildren() {
+ Human father = new Human();
+ father.setName("Father");
+ father.setBirthday(new Date(1000000000));
+ father.setBirthPlace("Leningrad");
+ father.setBankAccountOwner(father);
+ //
+ Human mother = new Human();
+ mother.setName("Mother");
+ mother.setBirthday(new Date(100000000000L));
+ mother.setBirthPlace("Saint-Petersburg");
+ father.setPartner(mother);
+ mother.setPartner(father);
+ mother.setBankAccountOwner(father);
+ //
+ Human son = new Human();
+ son.setName("Son");
+ son.setBirthday(new Date(310000000000L));
+ son.setBirthPlace("Munich");
+ son.setBankAccountOwner(father);
+ son.setFather(father);
+ son.setMother(mother);
+ //
+ Human daughter = new Human();
+ daughter.setName("Daughter");
+ daughter.setBirthday(new Date(420000000000L));
+ daughter.setBirthPlace("New York");
+ daughter.setBankAccountOwner(father);
+ daughter.setFather(father);
+ daughter.setMother(mother);
+ //
+ Set<Human> children = new LinkedHashSet<Human>(2);
+ children.add(son);
+ children.add(daughter);
+ father.setChildren(children);
+ mother.setChildren(children);
+ //
+ Yaml beanDumper = new Yaml();
+ String output = beanDumper.dumpAsMap(son);
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("recursive/with-children.yaml");
+ assertEquals(etalon, output);
+ TypeDescription humanDescription = new TypeDescription(Human.class);
+ humanDescription.putMapPropertyType("children", Human.class, Object.class);
+
+ LoaderOptions loaderOptions = new LoaderOptions();
+ loaderOptions.setAllowRecursiveKeys(true);
+ Yaml beanLoader = new Yaml(new Constructor(humanDescription, loaderOptions));
+ //
+ Human son2 = beanLoader.loadAs(output, Human.class);
+ assertNotNull(son2);
+ assertEquals("Son", son.getName());
+
+ Human father2 = son2.getFather();
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", son2.getMother().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ assertSame(father2.getPartner(), son2.getMother());
+ assertSame(father2, son2.getMother().getPartner());
+
+ Set<Human> children2 = father2.getChildren();
+ assertEquals(2, children2.size());
+ assertSame(father2.getPartner().getChildren(), children2);
+
+ for (Object child : children2) {
+ // check if type descriptor was correct
+ assertSame(Human.class, child.getClass());
}
- public void testNoChildrenPretty() {
- Human father = new Human();
- father.setName("Father");
- father.setBirthday(new Date(1000000000));
- father.setBirthPlace("Leningrad");
- father.setBankAccountOwner(father);
- Human mother = new Human();
- mother.setName("Mother");
- mother.setBirthday(new Date(100000000000L));
- mother.setBirthPlace("Saint-Petersburg");
- father.setPartner(mother);
- mother.setPartner(father);
- mother.setBankAccountOwner(father);
- DumperOptions options = new DumperOptions();
- options.setPrettyFlow(true);
- options.setDefaultFlowStyle(FlowStyle.FLOW);
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(father);
- String etalon = Util.getLocalResource("recursive/no-children-1-pretty.yaml");
- assertEquals(etalon, output);
- //
- Human father2 = (Human) yaml.load(output);
- assertNotNull(father2);
- assertEquals("Father", father2.getName());
- assertEquals("Mother", father2.getPartner().getName());
- assertEquals("Father", father2.getBankAccountOwner().getName());
- assertSame(father2, father2.getBankAccountOwner());
+ // check if hashCode is correct
+ validateSet(children2);
+ }
+
+ public void testChildrenPretty() {
+ Human father = new Human();
+ father.setName("Father");
+ father.setBirthday(new Date(1000000000));
+ father.setBirthPlace("Leningrad");
+ father.setBankAccountOwner(father);
+ //
+ Human mother = new Human();
+ mother.setName("Mother");
+ mother.setBirthday(new Date(100000000000L));
+ mother.setBirthPlace("Saint-Petersburg");
+ father.setPartner(mother);
+ mother.setPartner(father);
+ mother.setBankAccountOwner(father);
+ //
+ Human son = new Human();
+ son.setName("Son");
+ son.setBirthday(new Date(310000000000L));
+ son.setBirthPlace("Munich");
+ son.setBankAccountOwner(father);
+ son.setFather(father);
+ son.setMother(mother);
+ //
+ Human daughter = new Human();
+ daughter.setName("Daughter");
+ daughter.setBirthday(new Date(420000000000L));
+ daughter.setBirthPlace("New York");
+ daughter.setBankAccountOwner(father);
+ daughter.setFather(father);
+ daughter.setMother(mother);
+ //
+ Set<Human> children = new LinkedHashSet<Human>(2);
+ children.add(son);
+ children.add(daughter);
+ father.setChildren(children);
+ mother.setChildren(children);
+ //
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(FlowStyle.FLOW);
+ options.setPrettyFlow(true);
+ Yaml beanDumper = new Yaml(options);
+ String output = beanDumper.dump(son);
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("recursive/with-children-pretty.yaml");
+ assertEquals(etalon, output);
+ TypeDescription humanDescription = new TypeDescription(Human.class);
+ humanDescription.putMapPropertyType("children", Human.class, Object.class);
+
+ LoaderOptions loaderOptions = new LoaderOptions();
+ loaderOptions.setAllowRecursiveKeys(true);
+ Yaml beanLoader = new Yaml(new Constructor(humanDescription, loaderOptions));
+ //
+ Human son2 = beanLoader.loadAs(output, Human.class);
+ assertNotNull(son2);
+ assertEquals("Son", son.getName());
+
+ Human father2 = son2.getFather();
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", son2.getMother().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ assertSame(father2.getPartner(), son2.getMother());
+ assertSame(father2, son2.getMother().getPartner());
+
+ Set<Human> children2 = father2.getChildren();
+ assertEquals(2, children2.size());
+ assertSame(father2.getPartner().getChildren(), children2);
+
+ for (Object child : children2) {
+ // check if type descriptor was correct
+ assertSame(Human.class, child.getClass());
}
- public void testChildren() {
- Human father = new Human();
- father.setName("Father");
- father.setBirthday(new Date(1000000000));
- father.setBirthPlace("Leningrad");
- father.setBankAccountOwner(father);
- //
- Human mother = new Human();
- mother.setName("Mother");
- mother.setBirthday(new Date(100000000000L));
- mother.setBirthPlace("Saint-Petersburg");
- father.setPartner(mother);
- mother.setPartner(father);
- mother.setBankAccountOwner(father);
- //
- Human son = new Human();
- son.setName("Son");
- son.setBirthday(new Date(310000000000L));
- son.setBirthPlace("Munich");
- son.setBankAccountOwner(father);
- son.setFather(father);
- son.setMother(mother);
- //
- Human daughter = new Human();
- daughter.setName("Daughter");
- daughter.setBirthday(new Date(420000000000L));
- daughter.setBirthPlace("New York");
- daughter.setBankAccountOwner(father);
- daughter.setFather(father);
- daughter.setMother(mother);
- //
- Set<Human> children = new LinkedHashSet<Human>(2);
- children.add(son);
- children.add(daughter);
- father.setChildren(children);
- mother.setChildren(children);
- //
- Yaml beanDumper = new Yaml();
- String output = beanDumper.dumpAsMap(son);
- // System.out.println(output);
- String etalon = Util.getLocalResource("recursive/with-children.yaml");
- assertEquals(etalon, output);
- TypeDescription humanDescription = new TypeDescription(Human.class);
- humanDescription.putMapPropertyType("children", Human.class, Object.class);
- Yaml beanLoader = new Yaml(new Constructor(humanDescription));
- //
- Human son2 = beanLoader.loadAs(output, Human.class);
- assertNotNull(son2);
- assertEquals("Son", son.getName());
-
- Human father2 = son2.getFather();
- assertEquals("Father", father2.getName());
- assertEquals("Mother", son2.getMother().getName());
- assertSame(father2, father2.getBankAccountOwner());
- assertSame(father2.getPartner(), son2.getMother());
- assertSame(father2, son2.getMother().getPartner());
-
- Set<Human> children2 = father2.getChildren();
- assertEquals(2, children2.size());
- assertSame(father2.getPartner().getChildren(), children2);
-
- for (Object child : children2) {
- // check if type descriptor was correct
- assertSame(Human.class, child.getClass());
- }
-
- // check if hashCode is correct
- validateSet(children2);
+ // check if hashCode is correct
+ validateSet(children2);
+ }
+
+ public void testChildren2() {
+ Human2 father = new Human2();
+ father.setName("Father");
+ father.setBirthday(new Date(1000000000));
+ father.setBirthPlace("Leningrad");
+ father.setBankAccountOwner(father);
+ //
+ Human2 mother = new Human2();
+ mother.setName("Mother");
+ mother.setBirthday(new Date(100000000000L));
+ mother.setBirthPlace("Saint-Petersburg");
+ father.setPartner(mother);
+ mother.setPartner(father);
+ mother.setBankAccountOwner(father);
+ //
+ Human2 son = new Human2();
+ son.setName("Son");
+ son.setBirthday(new Date(310000000000L));
+ son.setBirthPlace("Munich");
+ son.setBankAccountOwner(father);
+ son.setFather(father);
+ son.setMother(mother);
+ //
+ Human2 daughter = new Human2();
+ daughter.setName("Daughter");
+ daughter.setBirthday(new Date(420000000000L));
+ daughter.setBirthPlace("New York");
+ daughter.setBankAccountOwner(father);
+ daughter.setFather(father);
+ daughter.setMother(mother);
+ //
+ HashMap<Human2, String> children = new LinkedHashMap<Human2, String>(2);
+ children.put(son, "son");
+ children.put(daughter, "daughter");
+ father.setChildren(children);
+ mother.setChildren(children);
+ //
+
+ LoaderOptions options = new LoaderOptions();
+ options.setAllowRecursiveKeys(true);
+ Constructor constructor = new Constructor(Human2.class, options);
+ TypeDescription humanDescription = new TypeDescription(Human2.class);
+ humanDescription.putMapPropertyType("children", Human2.class, String.class);
+ constructor.addTypeDescription(humanDescription);
+
+ Yaml yaml = new Yaml(constructor, new Representer(), new DumperOptions(), options);
+ String output = yaml.dump(son);
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("recursive/with-children-2.yaml");
+ assertEquals(etalon, output);
+ //
+ Human2 son2 = yaml.load(output);
+ assertNotNull(son2);
+ assertEquals("Son", son.getName());
+
+ Human2 father2 = son2.getFather();
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", son2.getMother().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ assertSame(father2.getPartner(), son2.getMother());
+ assertSame(father2, son2.getMother().getPartner());
+
+ Map<Human2, String> children2 = father2.getChildren();
+ assertEquals(2, children2.size());
+ assertSame(father2.getPartner().getChildren(), children2);
+
+ validateMapKeys(children2);
+ }
+
+ public void testChildren3() {
+ Human3 father = new Human3();
+ father.setName("Father");
+ father.setBirthday(new Date(1000000000));
+ father.setBirthPlace("Leningrad");
+ father.setBankAccountOwner(father);
+ //
+ Human3 mother = new Human3();
+ mother.setName("Mother");
+ mother.setBirthday(new Date(100000000000L));
+ mother.setBirthPlace("Saint-Petersburg");
+ father.setPartner(mother);
+ mother.setPartner(father);
+ mother.setBankAccountOwner(father);
+ //
+ Human3 son = new Human3();
+ son.setName("Son");
+ son.setBirthday(new Date(310000000000L));
+ son.setBirthPlace("Munich");
+ son.setBankAccountOwner(father);
+ son.setFather(father);
+ son.setMother(mother);
+ //
+ Human3 daughter = new Human3();
+ daughter.setName("Daughter");
+ daughter.setBirthday(new Date(420000000000L));
+ daughter.setBirthPlace("New York");
+ daughter.setBankAccountOwner(father);
+ daughter.setFather(father);
+ daughter.setMother(mother);
+ //
+ ArrayList<Human3> children = new ArrayList<Human3>();
+ children.add(son);
+ children.add(daughter);
+ father.setChildren(children);
+ mother.setChildren(children);
+ //
+
+ Constructor constructor = new Constructor(Human3.class);
+ TypeDescription Human3Description = new TypeDescription(Human3.class);
+ Human3Description.putListPropertyType("children", Human3.class);
+ constructor.addTypeDescription(Human3Description);
+
+ Yaml yaml = new Yaml(constructor);
+ String output = yaml.dump(son);
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("recursive/with-children-3.yaml");
+ assertEquals(etalon, output);
+ //
+ Human3 son2 = yaml.load(output);
+ assertNotNull(son2);
+ assertEquals("Son", son.getName());
+
+ Human3 father2 = son2.getFather();
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", son2.getMother().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ assertSame(father2.getPartner(), son2.getMother());
+ assertSame(father2, son2.getMother().getPartner());
+
+ List<Human3> children2 = father2.getChildren();
+ assertEquals(2, children2.size());
+ assertSame(father2.getPartner().getChildren(), children2);
+
+ for (Object child : children2) {
+ // check if type descriptor was correct
+ assertSame(Human3.class, child.getClass());
}
-
- public void testChildrenPretty() {
- Human father = new Human();
- father.setName("Father");
- father.setBirthday(new Date(1000000000));
- father.setBirthPlace("Leningrad");
- father.setBankAccountOwner(father);
- //
- Human mother = new Human();
- mother.setName("Mother");
- mother.setBirthday(new Date(100000000000L));
- mother.setBirthPlace("Saint-Petersburg");
- father.setPartner(mother);
- mother.setPartner(father);
- mother.setBankAccountOwner(father);
- //
- Human son = new Human();
- son.setName("Son");
- son.setBirthday(new Date(310000000000L));
- son.setBirthPlace("Munich");
- son.setBankAccountOwner(father);
- son.setFather(father);
- son.setMother(mother);
- //
- Human daughter = new Human();
- daughter.setName("Daughter");
- daughter.setBirthday(new Date(420000000000L));
- daughter.setBirthPlace("New York");
- daughter.setBankAccountOwner(father);
- daughter.setFather(father);
- daughter.setMother(mother);
- //
- Set<Human> children = new LinkedHashSet<Human>(2);
- children.add(son);
- children.add(daughter);
- father.setChildren(children);
- mother.setChildren(children);
- //
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(FlowStyle.FLOW);
- options.setPrettyFlow(true);
- Yaml beanDumper = new Yaml(options);
- String output = beanDumper.dump(son);
- // System.out.println(output);
- String etalon = Util.getLocalResource("recursive/with-children-pretty.yaml");
- assertEquals(etalon, output);
- TypeDescription humanDescription = new TypeDescription(Human.class);
- humanDescription.putMapPropertyType("children", Human.class, Object.class);
- Yaml beanLoader = new Yaml(new Constructor(humanDescription));
- //
- Human son2 = beanLoader.loadAs(output, Human.class);
- assertNotNull(son2);
- assertEquals("Son", son.getName());
-
- Human father2 = son2.getFather();
- assertEquals("Father", father2.getName());
- assertEquals("Mother", son2.getMother().getName());
- assertSame(father2, father2.getBankAccountOwner());
- assertSame(father2.getPartner(), son2.getMother());
- assertSame(father2, son2.getMother().getPartner());
-
- Set<Human> children2 = father2.getChildren();
- assertEquals(2, children2.size());
- assertSame(father2.getPartner().getChildren(), children2);
-
- for (Object child : children2) {
- // check if type descriptor was correct
- assertSame(Human.class, child.getClass());
- }
-
- // check if hashCode is correct
- validateSet(children2);
+ }
+
+ /*
+ * Loads same structure as created in testChildren. But root object is set of children
+ */
+ @SuppressWarnings("unchecked")
+ public void testChildrenSetAsRoot() {
+ String etalon = Util.getLocalResource("recursive/with-children-as-set.yaml");
+
+ Constructor constructor = new Constructor();
+ TypeDescription humanDescription = new TypeDescription(Human.class);
+ humanDescription.putMapPropertyType("children", Human.class, Object.class);
+ constructor.addTypeDescription(humanDescription);
+
+ Yaml yaml = new Yaml(constructor);
+ Set<Human> children2 = yaml.load(etalon);
+ assertNotNull(children2);
+ assertEquals(2, children2.size());
+
+ Human firstChild = children2.iterator().next();
+
+ Human father2 = firstChild.getFather();
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", firstChild.getMother().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ assertSame(father2.getPartner(), firstChild.getMother());
+ assertSame(father2, firstChild.getMother().getPartner());
+
+ assertSame(father2.getPartner().getChildren(), children2);
+
+ for (Object child : children2) {
+ // check if type descriptor was correct
+ assertSame(Human.class, child.getClass());
}
- public void testChildren2() {
- Human2 father = new Human2();
- father.setName("Father");
- father.setBirthday(new Date(1000000000));
- father.setBirthPlace("Leningrad");
- father.setBankAccountOwner(father);
- //
- Human2 mother = new Human2();
- mother.setName("Mother");
- mother.setBirthday(new Date(100000000000L));
- mother.setBirthPlace("Saint-Petersburg");
- father.setPartner(mother);
- mother.setPartner(father);
- mother.setBankAccountOwner(father);
- //
- Human2 son = new Human2();
- son.setName("Son");
- son.setBirthday(new Date(310000000000L));
- son.setBirthPlace("Munich");
- son.setBankAccountOwner(father);
- son.setFather(father);
- son.setMother(mother);
- //
- Human2 daughter = new Human2();
- daughter.setName("Daughter");
- daughter.setBirthday(new Date(420000000000L));
- daughter.setBirthPlace("New York");
- daughter.setBankAccountOwner(father);
- daughter.setFather(father);
- daughter.setMother(mother);
- //
- HashMap<Human2, String> children = new LinkedHashMap<Human2, String>(2);
- children.put(son, "son");
- children.put(daughter, "daughter");
- father.setChildren(children);
- mother.setChildren(children);
- //
-
- Constructor constructor = new Constructor(Human2.class);
- TypeDescription humanDescription = new TypeDescription(Human2.class);
- humanDescription.putMapPropertyType("children", Human2.class, String.class);
- constructor.addTypeDescription(humanDescription);
-
- Yaml yaml = new Yaml(constructor);
- String output = yaml.dump(son);
- // System.out.println(output);
- String etalon = Util.getLocalResource("recursive/with-children-2.yaml");
- assertEquals(etalon, output);
- //
- Human2 son2 = (Human2) yaml.load(output);
- assertNotNull(son2);
- assertEquals("Son", son.getName());
-
- Human2 father2 = son2.getFather();
- assertEquals("Father", father2.getName());
- assertEquals("Mother", son2.getMother().getName());
- assertSame(father2, father2.getBankAccountOwner());
- assertSame(father2.getPartner(), son2.getMother());
- assertSame(father2, son2.getMother().getPartner());
-
- Map<Human2, String> children2 = father2.getChildren();
- assertEquals(2, children2.size());
- assertSame(father2.getPartner().getChildren(), children2);
-
- validateMapKeys(children2);
+ validateSet(children2);
+ }
+
+ /*
+ * Loads same structure as created in testChildren. But root object is map of children
+ */
+ @SuppressWarnings("unchecked")
+ public void testChildrenMapAsRoot() {
+ String etalon = Util.getLocalResource("recursive/with-children-as-map.yaml");
+
+ Constructor constructor = new Constructor();
+ TypeDescription Human2Description = new TypeDescription(Human2.class);
+ Human2Description.putMapPropertyType("children", Human2.class, String.class);
+ constructor.addTypeDescription(Human2Description);
+
+ Yaml yaml = new Yaml(constructor);
+ Map<Human2, String> children2 = yaml.load(etalon);
+ assertNotNull(children2);
+ assertEquals(2, children2.size());
+
+ Entry<Human2, String> firstEntry = children2.entrySet().iterator().next();
+ Human2 firstChild = firstEntry.getKey();
+
+ Human2 father2 = firstChild.getFather();
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", firstChild.getMother().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ assertSame(father2.getPartner(), firstChild.getMother());
+ assertSame(father2, firstChild.getMother().getPartner());
+
+ assertSame(father2.getPartner().getChildren(), children2);
+
+ validateMapKeys(children2);
+ }
+
+ /*
+ * Loads same structure as created in testChildren. But root object is list of children
+ */
+ @SuppressWarnings("unchecked")
+ public void testChildrenListRoot() {
+ Human3 father = new Human3();
+ father.setName("Father");
+ father.setBirthday(new Date(1000000000));
+ father.setBirthPlace("Leningrad");
+ father.setBankAccountOwner(father);
+ //
+ Human3 mother = new Human3();
+ mother.setName("Mother");
+ mother.setBirthday(new Date(100000000000L));
+ mother.setBirthPlace("Saint-Petersburg");
+ father.setPartner(mother);
+ mother.setPartner(father);
+ mother.setBankAccountOwner(father);
+ //
+ Human3 son = new Human3();
+ son.setName("Son");
+ son.setBirthday(new Date(310000000000L));
+ son.setBirthPlace("Munich");
+ son.setBankAccountOwner(father);
+ son.setFather(father);
+ son.setMother(mother);
+ //
+ Human3 daughter = new Human3();
+ daughter.setName("Daughter");
+ daughter.setBirthday(new Date(420000000000L));
+ daughter.setBirthPlace("New York");
+ daughter.setBankAccountOwner(father);
+ daughter.setFather(father);
+ daughter.setMother(mother);
+ //
+ ArrayList<Human3> children = new ArrayList<Human3>();
+ children.add(son);
+ children.add(daughter);
+ father.setChildren(children);
+ mother.setChildren(children);
+ //
+
+ Constructor constructor = new Constructor();
+ TypeDescription Human3Description = new TypeDescription(Human3.class);
+ Human3Description.putListPropertyType("children", Human3.class);
+ constructor.addTypeDescription(Human3Description);
+
+ Yaml yaml = new Yaml(constructor);
+ String output = yaml.dump(father.getChildren());
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("recursive/with-children-as-list.yaml");
+ assertEquals(etalon, output);
+ //
+ List<Human3> children2 = yaml.load(output);
+ assertNotNull(children2);
+ Human3 son2 = children2.iterator().next();
+ assertEquals(2, children2.size());
+
+ Human3 father2 = son2.getFather();
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", son2.getMother().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ assertSame(father2.getPartner(), son2.getMother());
+ assertSame(father2, son2.getMother().getPartner());
+
+ assertSame(father2.getPartner().getChildren(), children2);
+
+ for (Object child : children2) {
+ // check if type descriptor was correct
+ assertSame(Human3.class, child.getClass());
}
-
- public void testChildren3() {
- Human3 father = new Human3();
- father.setName("Father");
- father.setBirthday(new Date(1000000000));
- father.setBirthPlace("Leningrad");
- father.setBankAccountOwner(father);
- //
- Human3 mother = new Human3();
- mother.setName("Mother");
- mother.setBirthday(new Date(100000000000L));
- mother.setBirthPlace("Saint-Petersburg");
- father.setPartner(mother);
- mother.setPartner(father);
- mother.setBankAccountOwner(father);
- //
- Human3 son = new Human3();
- son.setName("Son");
- son.setBirthday(new Date(310000000000L));
- son.setBirthPlace("Munich");
- son.setBankAccountOwner(father);
- son.setFather(father);
- son.setMother(mother);
- //
- Human3 daughter = new Human3();
- daughter.setName("Daughter");
- daughter.setBirthday(new Date(420000000000L));
- daughter.setBirthPlace("New York");
- daughter.setBankAccountOwner(father);
- daughter.setFather(father);
- daughter.setMother(mother);
- //
- ArrayList<Human3> children = new ArrayList<Human3>();
- children.add(son);
- children.add(daughter);
- father.setChildren(children);
- mother.setChildren(children);
- //
-
- Constructor constructor = new Constructor(Human3.class);
- TypeDescription Human3Description = new TypeDescription(Human3.class);
- Human3Description.putListPropertyType("children", Human3.class);
- constructor.addTypeDescription(Human3Description);
-
- Yaml yaml = new Yaml(constructor);
- String output = yaml.dump(son);
- // System.out.println(output);
- String etalon = Util.getLocalResource("recursive/with-children-3.yaml");
- assertEquals(etalon, output);
- //
- Human3 son2 = (Human3) yaml.load(output);
- assertNotNull(son2);
- assertEquals("Son", son.getName());
-
- Human3 father2 = son2.getFather();
- assertEquals("Father", father2.getName());
- assertEquals("Mother", son2.getMother().getName());
- assertSame(father2, father2.getBankAccountOwner());
- assertSame(father2.getPartner(), son2.getMother());
- assertSame(father2, son2.getMother().getPartner());
-
- List<Human3> children2 = father2.getChildren();
- assertEquals(2, children2.size());
- assertSame(father2.getPartner().getChildren(), children2);
-
- for (Object child : children2) {
- // check if type descriptor was correct
- assertSame(Human3.class, child.getClass());
- }
+ }
+
+ public void testBeanRing() {
+ Human man1 = new Human();
+ man1.setName("Man 1");
+ Human man2 = new Human();
+ man2.setName("Man 2");
+ Human man3 = new Human();
+ man3.setName("Man 3");
+ man1.setBankAccountOwner(man2);
+ man2.setBankAccountOwner(man3);
+ man3.setBankAccountOwner(man1);
+ //
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(man1);
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("recursive/beanring-3.yaml");
+ assertEquals(etalon, output);
+ //
+ Human loadedMan1 = yaml.load(output);
+ assertNotNull(loadedMan1);
+ assertEquals("Man 1", loadedMan1.getName());
+ Human loadedMan2 = loadedMan1.getBankAccountOwner();
+ Human loadedMan3 = loadedMan2.getBankAccountOwner();
+ assertSame(loadedMan1, loadedMan3.getBankAccountOwner());
+ }
+
+ public void qtestCollectionRing() {
+ // Set<Object> set = new HashSet<Object>();
+ // List<Object> list = new ArrayList<Object>();
+ // Map<Object, Object> map = new HashMap<Object, Object>();
+ // set.add(list);
+ // list.add(map);
+ // map.put("1", set);
+ // //
+ // try {
+ // Yaml yaml = new Yaml();
+ // String output = yaml.dump(set);
+ // // String etalon = Util.getLocalResource("recursive/???.yaml");
+ // // assertEquals(etalon, output);
+ // //
+ // // Set<Object> loadedSet = (Set<Object>) yaml.load(output);
+ // } catch (StackOverflowError e) {
+ // fail("Cannot dump recursive collections.");
+ // }
+ }
+
+ /**
+ * Checks if object was put into the set after full construction. So the hashCode was calculated
+ * correctly (if it depends on internal object's state).
+ *
+ * @param set
+ */
+ private void validateSet(Set<?> set) {
+ for (Object object : set) {
+ assertTrue(set.contains(object));
}
-
- /*
- * Loads same structure as created in testChildren. But root object is set
- * of children
- */
- @SuppressWarnings("unchecked")
- public void testChildrenSetAsRoot() {
- String etalon = Util.getLocalResource("recursive/with-children-as-set.yaml");
-
- Constructor constructor = new Constructor();
- TypeDescription humanDescription = new TypeDescription(Human.class);
- humanDescription.putMapPropertyType("children", Human.class, Object.class);
- constructor.addTypeDescription(humanDescription);
-
- Yaml yaml = new Yaml(constructor);
- Set<Human> children2 = (Set<Human>) yaml.load(etalon);
- assertNotNull(children2);
- assertEquals(2, children2.size());
-
- Human firstChild = children2.iterator().next();
-
- Human father2 = firstChild.getFather();
- assertEquals("Father", father2.getName());
- assertEquals("Mother", firstChild.getMother().getName());
- assertSame(father2, father2.getBankAccountOwner());
- assertSame(father2.getPartner(), firstChild.getMother());
- assertSame(father2, firstChild.getMother().getPartner());
-
- assertSame(father2.getPartner().getChildren(), children2);
-
- for (Object child : children2) {
- // check if type descriptor was correct
- assertSame(Human.class, child.getClass());
- }
-
- validateSet(children2);
+ }
+
+ /**
+ * Checks if object was put into the map as key after full construction. So the hashCode was
+ * calculated correctly (if it depends on internal object's state).
+ *
+ * @param map
+ */
+ private void validateMapKeys(Map<?, ?> map) {
+ for (Map.Entry<?, ?> entry : map.entrySet()) {
+ assertTrue(map.containsKey(entry.getKey()));
}
-
- /*
- * Loads same structure as created in testChildren. But root object is map
- * of children
- */
- @SuppressWarnings("unchecked")
- public void testChildrenMapAsRoot() {
- String etalon = Util.getLocalResource("recursive/with-children-as-map.yaml");
-
- Constructor constructor = new Constructor();
- TypeDescription Human2Description = new TypeDescription(Human2.class);
- Human2Description.putMapPropertyType("children", Human2.class, String.class);
- constructor.addTypeDescription(Human2Description);
-
- Yaml yaml = new Yaml(constructor);
- Map<Human2, String> children2 = (Map<Human2, String>) yaml.load(etalon);
- assertNotNull(children2);
- assertEquals(2, children2.size());
-
- Entry<Human2, String> firstEntry = children2.entrySet().iterator().next();
- Human2 firstChild = firstEntry.getKey();
-
- Human2 father2 = firstChild.getFather();
- assertEquals("Father", father2.getName());
- assertEquals("Mother", firstChild.getMother().getName());
- assertSame(father2, father2.getBankAccountOwner());
- assertSame(father2.getPartner(), firstChild.getMother());
- assertSame(father2, firstChild.getMother().getPartner());
-
- assertSame(father2.getPartner().getChildren(), children2);
-
- validateMapKeys(children2);
- }
-
- /*
- * Loads same structure as created in testChildren. But root object is list
- * of children
- */
- @SuppressWarnings("unchecked")
- public void testChildrenListRoot() {
- Human3 father = new Human3();
- father.setName("Father");
- father.setBirthday(new Date(1000000000));
- father.setBirthPlace("Leningrad");
- father.setBankAccountOwner(father);
- //
- Human3 mother = new Human3();
- mother.setName("Mother");
- mother.setBirthday(new Date(100000000000L));
- mother.setBirthPlace("Saint-Petersburg");
- father.setPartner(mother);
- mother.setPartner(father);
- mother.setBankAccountOwner(father);
- //
- Human3 son = new Human3();
- son.setName("Son");
- son.setBirthday(new Date(310000000000L));
- son.setBirthPlace("Munich");
- son.setBankAccountOwner(father);
- son.setFather(father);
- son.setMother(mother);
- //
- Human3 daughter = new Human3();
- daughter.setName("Daughter");
- daughter.setBirthday(new Date(420000000000L));
- daughter.setBirthPlace("New York");
- daughter.setBankAccountOwner(father);
- daughter.setFather(father);
- daughter.setMother(mother);
- //
- ArrayList<Human3> children = new ArrayList<Human3>();
- children.add(son);
- children.add(daughter);
- father.setChildren(children);
- mother.setChildren(children);
- //
-
- Constructor constructor = new Constructor();
- TypeDescription Human3Description = new TypeDescription(Human3.class);
- Human3Description.putListPropertyType("children", Human3.class);
- constructor.addTypeDescription(Human3Description);
-
- Yaml yaml = new Yaml(constructor);
- String output = yaml.dump(father.getChildren());
- // System.out.println(output);
- String etalon = Util.getLocalResource("recursive/with-children-as-list.yaml");
- assertEquals(etalon, output);
- //
- List<Human3> children2 = (List<Human3>) yaml.load(output);
- assertNotNull(children2);
- Human3 son2 = children2.iterator().next();
- assertEquals(2, children2.size());
-
- Human3 father2 = son2.getFather();
- assertEquals("Father", father2.getName());
- assertEquals("Mother", son2.getMother().getName());
- assertSame(father2, father2.getBankAccountOwner());
- assertSame(father2.getPartner(), son2.getMother());
- assertSame(father2, son2.getMother().getPartner());
-
- assertSame(father2.getPartner().getChildren(), children2);
-
- for (Object child : children2) {
- // check if type descriptor was correct
- assertSame(Human3.class, child.getClass());
- }
+ }
+
+ public void testChildrenWithoutRootTag() {
+ Human father = new Human();
+ father.setName("Father");
+ father.setBirthday(new Date(1000000000));
+ father.setBirthPlace("Leningrad");
+ father.setBankAccountOwner(father);
+ //
+ Human mother = new Human();
+ mother.setName("Mother");
+ mother.setBirthday(new Date(100000000000L));
+ mother.setBirthPlace("Saint-Petersburg");
+ father.setPartner(mother);
+ mother.setPartner(father);
+ mother.setBankAccountOwner(father);
+ //
+ Human son = new Human();
+ son.setName("Son");
+ son.setBirthday(new Date(310000000000L));
+ son.setBirthPlace("Munich");
+ son.setBankAccountOwner(father);
+ son.setFather(father);
+ son.setMother(mother);
+ //
+ Human daughter = new Human();
+ daughter.setName("Daughter");
+ daughter.setBirthday(new Date(420000000000L));
+ daughter.setBirthPlace("New York");
+ daughter.setBankAccountOwner(father);
+ daughter.setFather(father);
+ daughter.setMother(mother);
+ //
+ Set<Human> children = new LinkedHashSet<Human>(2);
+ children.add(son);
+ children.add(daughter);
+ father.setChildren(children);
+ mother.setChildren(children);
+ //
+ Yaml beanDumper = new Yaml();
+ String output = beanDumper.dumpAsMap(son);
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("recursive/with-children-no-root-tag.yaml");
+ assertEquals(etalon, output);
+ TypeDescription humanDescription = new TypeDescription(Human.class);
+ humanDescription.putMapPropertyType("children", Human.class, Object.class);
+ LoaderOptions options = new LoaderOptions();
+ options.setAllowRecursiveKeys(true);
+ Yaml beanLoader = new Yaml(new Constructor(humanDescription, options));
+ //
+ Human son2 = beanLoader.loadAs(output, Human.class);
+ assertNotNull(son2);
+ assertEquals("Son", son.getName());
+
+ Human father2 = son2.getFather();
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", son2.getMother().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ assertSame(father2.getPartner(), son2.getMother());
+ assertSame(father2, son2.getMother().getPartner());
+
+ Set<Human> children2 = father2.getChildren();
+ assertEquals(2, children2.size());
+ assertSame(father2.getPartner().getChildren(), children2);
+
+ for (Object child : children2) {
+ // check if type descriptor was correct
+ assertSame(Human.class, child.getClass());
}
- public void testBeanRing() {
- Human man1 = new Human();
- man1.setName("Man 1");
- Human man2 = new Human();
- man2.setName("Man 2");
- Human man3 = new Human();
- man3.setName("Man 3");
- man1.setBankAccountOwner(man2);
- man2.setBankAccountOwner(man3);
- man3.setBankAccountOwner(man1);
- //
- Yaml yaml = new Yaml();
- String output = yaml.dump(man1);
- // System.out.println(output);
- String etalon = Util.getLocalResource("recursive/beanring-3.yaml");
- assertEquals(etalon, output);
- //
- Human loadedMan1 = (Human) yaml.load(output);
- assertNotNull(loadedMan1);
- assertEquals("Man 1", loadedMan1.getName());
- Human loadedMan2 = loadedMan1.getBankAccountOwner();
- Human loadedMan3 = loadedMan2.getBankAccountOwner();
- assertSame(loadedMan1, loadedMan3.getBankAccountOwner());
- }
-
- public void qtestCollectionRing() {
- // Set<Object> set = new HashSet<Object>();
- // List<Object> list = new ArrayList<Object>();
- // Map<Object, Object> map = new HashMap<Object, Object>();
- // set.add(list);
- // list.add(map);
- // map.put("1", set);
- // //
- // try {
- // Yaml yaml = new Yaml();
- // String output = yaml.dump(set);
- // // String etalon = Util.getLocalResource("recursive/???.yaml");
- // // assertEquals(etalon, output);
- // //
- // // Set<Object> loadedSet = (Set<Object>) yaml.load(output);
- // } catch (StackOverflowError e) {
- // fail("Cannot dump recursive collections.");
- // }
- }
-
- /**
- * Checks if object was put into the set after full construction. So the
- * hashCode was calculated correctly (if it depends on internal object's
- * state).
- *
- * @param set
- */
- private void validateSet(Set<?> set) {
- for (Object object : set) {
- assertTrue(set.contains(object));
- }
- }
-
- /**
- * Checks if object was put into the map as key after full construction. So
- * the hashCode was calculated correctly (if it depends on internal object's
- * state).
- *
- * @param map
- */
- private void validateMapKeys(Map<?, ?> map) {
- for (Map.Entry<?, ?> entry : map.entrySet()) {
- assertTrue(map.containsKey(entry.getKey()));
- }
- }
-
- public void testChildrenWithoutRootTag() {
- Human father = new Human();
- father.setName("Father");
- father.setBirthday(new Date(1000000000));
- father.setBirthPlace("Leningrad");
- father.setBankAccountOwner(father);
- //
- Human mother = new Human();
- mother.setName("Mother");
- mother.setBirthday(new Date(100000000000L));
- mother.setBirthPlace("Saint-Petersburg");
- father.setPartner(mother);
- mother.setPartner(father);
- mother.setBankAccountOwner(father);
- //
- Human son = new Human();
- son.setName("Son");
- son.setBirthday(new Date(310000000000L));
- son.setBirthPlace("Munich");
- son.setBankAccountOwner(father);
- son.setFather(father);
- son.setMother(mother);
- //
- Human daughter = new Human();
- daughter.setName("Daughter");
- daughter.setBirthday(new Date(420000000000L));
- daughter.setBirthPlace("New York");
- daughter.setBankAccountOwner(father);
- daughter.setFather(father);
- daughter.setMother(mother);
- //
- Set<Human> children = new LinkedHashSet<Human>(2);
- children.add(son);
- children.add(daughter);
- father.setChildren(children);
- mother.setChildren(children);
- //
- Yaml beanDumper = new Yaml();
- String output = beanDumper.dumpAsMap(son);
- // System.out.println(output);
- String etalon = Util.getLocalResource("recursive/with-children-no-root-tag.yaml");
- assertEquals(etalon, output);
- TypeDescription humanDescription = new TypeDescription(Human.class);
- humanDescription.putMapPropertyType("children", Human.class, Object.class);
- Yaml beanLoader = new Yaml(new Constructor(humanDescription));
- //
- Human son2 = beanLoader.loadAs(output, Human.class);
- assertNotNull(son2);
- assertEquals("Son", son.getName());
-
- Human father2 = son2.getFather();
- assertEquals("Father", father2.getName());
- assertEquals("Mother", son2.getMother().getName());
- assertSame(father2, father2.getBankAccountOwner());
- assertSame(father2.getPartner(), son2.getMother());
- assertSame(father2, son2.getMother().getPartner());
-
- Set<Human> children2 = father2.getChildren();
- assertEquals(2, children2.size());
- assertSame(father2.getPartner().getChildren(), children2);
-
- for (Object child : children2) {
- // check if type descriptor was correct
- assertSame(Human.class, child.getClass());
- }
-
- // check if hashCode is correct
- validateSet(children2);
- }
+ // check if hashCode is correct
+ validateSet(children2);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/recursive/Human_WithArrayOfChildrenTest.java b/src/test/java/org/yaml/snakeyaml/recursive/Human_WithArrayOfChildrenTest.java
index b0d013c3..71db4d3e 100644
--- a/src/test/java/org/yaml/snakeyaml/recursive/Human_WithArrayOfChildrenTest.java
+++ b/src/test/java/org/yaml/snakeyaml/recursive/Human_WithArrayOfChildrenTest.java
@@ -1,24 +1,20 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.recursive;
import java.util.Date;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.TypeDescription;
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
@@ -26,158 +22,158 @@ import org.yaml.snakeyaml.constructor.Constructor;
public class Human_WithArrayOfChildrenTest extends TestCase {
- public static class Human_WithArrayOfChildren extends AbstractHuman {
-
- private Human_WithArrayOfChildren father;
- private Human_WithArrayOfChildren mother;
- private Human_WithArrayOfChildren partner;
- private Human_WithArrayOfChildren bankAccountOwner;
- protected Human_WithArrayOfChildren[] children;
-
- public Human_WithArrayOfChildren() {
- children = new Human_WithArrayOfChildren[0];
- }
-
- public Human_WithArrayOfChildren getFather() {
- return father;
- }
-
- public void setFather(Human_WithArrayOfChildren father) {
- this.father = father;
- }
-
- public Human_WithArrayOfChildren getMother() {
- return mother;
- }
+ public static class Human_WithArrayOfChildren extends AbstractHuman {
- public void setMother(Human_WithArrayOfChildren mother) {
- this.mother = mother;
- }
+ private Human_WithArrayOfChildren father;
+ private Human_WithArrayOfChildren mother;
+ private Human_WithArrayOfChildren partner;
+ private Human_WithArrayOfChildren bankAccountOwner;
+ protected Human_WithArrayOfChildren[] children;
- public Human_WithArrayOfChildren getPartner() {
- return partner;
- }
+ public Human_WithArrayOfChildren() {
+ children = new Human_WithArrayOfChildren[0];
+ }
- public void setPartner(Human_WithArrayOfChildren partner) {
- this.partner = partner;
- }
+ public Human_WithArrayOfChildren getFather() {
+ return father;
+ }
- public Human_WithArrayOfChildren getBankAccountOwner() {
- return bankAccountOwner;
- }
+ public void setFather(Human_WithArrayOfChildren father) {
+ this.father = father;
+ }
- public void setBankAccountOwner(Human_WithArrayOfChildren bankAccountOwner) {
- this.bankAccountOwner = bankAccountOwner;
- }
+ public Human_WithArrayOfChildren getMother() {
+ return mother;
+ }
- public Human_WithArrayOfChildren[] getChildren() {
- return children;
- }
+ public void setMother(Human_WithArrayOfChildren mother) {
+ this.mother = mother;
+ }
- public void setChildren(Human_WithArrayOfChildren[] children) {
- this.children = children;
- }
+ public Human_WithArrayOfChildren getPartner() {
+ return partner;
+ }
+ public void setPartner(Human_WithArrayOfChildren partner) {
+ this.partner = partner;
}
- private Human_WithArrayOfChildren createSon() {
- Human_WithArrayOfChildren father = new Human_WithArrayOfChildren();
- father.setName("Father");
- father.setBirthday(new Date(1000000000));
- father.setBirthPlace("Leningrad");
- father.setBankAccountOwner(father);
- //
- Human_WithArrayOfChildren mother = new Human_WithArrayOfChildren();
- mother.setName("Mother");
- mother.setBirthday(new Date(100000000000L));
- mother.setBirthPlace("Saint-Petersburg");
- father.setPartner(mother);
- mother.setPartner(father);
- mother.setBankAccountOwner(father);
- //
- Human_WithArrayOfChildren son = new Human_WithArrayOfChildren();
- son.setName("Son");
- son.setBirthday(new Date(310000000000L));
- son.setBirthPlace("Munich");
- son.setBankAccountOwner(father);
- son.setFather(father);
- son.setMother(mother);
- //
- Human_WithArrayOfChildren daughter = new Human_WithArrayOfChildren();
- daughter.setName("Daughter");
- daughter.setBirthday(new Date(420000000000L));
- daughter.setBirthPlace("New York");
- daughter.setBankAccountOwner(father);
- daughter.setFather(father);
- daughter.setMother(mother);
- //
- Human_WithArrayOfChildren[] children = new Human_WithArrayOfChildren[] { son, daughter };
- father.setChildren(children);
- mother.setChildren(children);
- //
- return son;
+ public Human_WithArrayOfChildren getBankAccountOwner() {
+ return bankAccountOwner;
}
- private void checkSon(Human_WithArrayOfChildren son) {
- assertNotNull(son);
- assertEquals("Son", son.getName());
-
- Human_WithArrayOfChildren father2 = son.getFather();
- assertEquals("Father", father2.getName());
- assertEquals("Mother", son.getMother().getName());
- assertSame(father2, father2.getBankAccountOwner());
- assertSame(father2.getPartner(), son.getMother());
- assertSame(father2, son.getMother().getPartner());
-
- Human_WithArrayOfChildren[] fathersChildren = father2.getChildren();
- assertEquals(2, fathersChildren.length);
- Human_WithArrayOfChildren[] mothersChildren = father2.getPartner().getChildren();
- assertEquals(2, mothersChildren.length);
- assertSame(mothersChildren, fathersChildren);
-
- for (Object child : fathersChildren) {
- // check if type descriptor was correct
- assertSame(Human_WithArrayOfChildren.class, child.getClass());
- }
+ public void setBankAccountOwner(Human_WithArrayOfChildren bankAccountOwner) {
+ this.bankAccountOwner = bankAccountOwner;
}
- public void testChildrenArray() {
- Constructor constructor = new Constructor(Human_WithArrayOfChildren.class);
- TypeDescription HumanWithChildrenArrayDescription = new TypeDescription(
- Human_WithArrayOfChildren.class);
- HumanWithChildrenArrayDescription.putListPropertyType("children",
- Human_WithArrayOfChildren.class);
- constructor.addTypeDescription(HumanWithChildrenArrayDescription);
- Human_WithArrayOfChildren son = createSon();
- Yaml yaml = new Yaml(constructor);
- String output = yaml.dump(son);
- // System.out.println(output);
- String etalon = Util.getLocalResource("recursive/with-childrenArray.yaml");
- assertEquals(etalon, output);
- //
- Human_WithArrayOfChildren son2 = (Human_WithArrayOfChildren) yaml.load(output);
- checkSon(son2);
+ public Human_WithArrayOfChildren[] getChildren() {
+ return children;
}
- public void testDumpChildrenArrayWithoutRootTag() {
- Yaml yaml = new Yaml();
- Human_WithArrayOfChildren son = createSon();
- String output = yaml.dumpAsMap(son);
- // System.out.println(output);
- String etalon = Util.getLocalResource("recursive/with-childrenArray-no-root-tag.yaml");
- assertEquals(etalon, output);
+ public void setChildren(Human_WithArrayOfChildren[] children) {
+ this.children = children;
}
- public void testParseChildrenArrayWithoutRootTag() {
- Constructor constructor = new Constructor(Human_WithArrayOfChildren.class);
- TypeDescription HumanWithChildrenArrayDescription = new TypeDescription(
- Human_WithArrayOfChildren.class);
- HumanWithChildrenArrayDescription.putListPropertyType("children",
- Human_WithArrayOfChildren.class);
- constructor.addTypeDescription(HumanWithChildrenArrayDescription);
- Yaml yaml = new Yaml(constructor);
- String doc = Util.getLocalResource("recursive/with-childrenArray-no-root-tag.yaml");
- Human_WithArrayOfChildren son2 = (Human_WithArrayOfChildren) yaml.load(doc);
- checkSon(son2);
+ }
+
+ private Human_WithArrayOfChildren createSon() {
+ Human_WithArrayOfChildren father = new Human_WithArrayOfChildren();
+ father.setName("Father");
+ father.setBirthday(new Date(1000000000));
+ father.setBirthPlace("Leningrad");
+ father.setBankAccountOwner(father);
+ //
+ Human_WithArrayOfChildren mother = new Human_WithArrayOfChildren();
+ mother.setName("Mother");
+ mother.setBirthday(new Date(100000000000L));
+ mother.setBirthPlace("Saint-Petersburg");
+ father.setPartner(mother);
+ mother.setPartner(father);
+ mother.setBankAccountOwner(father);
+ //
+ Human_WithArrayOfChildren son = new Human_WithArrayOfChildren();
+ son.setName("Son");
+ son.setBirthday(new Date(310000000000L));
+ son.setBirthPlace("Munich");
+ son.setBankAccountOwner(father);
+ son.setFather(father);
+ son.setMother(mother);
+ //
+ Human_WithArrayOfChildren daughter = new Human_WithArrayOfChildren();
+ daughter.setName("Daughter");
+ daughter.setBirthday(new Date(420000000000L));
+ daughter.setBirthPlace("New York");
+ daughter.setBankAccountOwner(father);
+ daughter.setFather(father);
+ daughter.setMother(mother);
+ //
+ Human_WithArrayOfChildren[] children = new Human_WithArrayOfChildren[] {son, daughter};
+ father.setChildren(children);
+ mother.setChildren(children);
+ //
+ return son;
+ }
+
+ private void checkSon(Human_WithArrayOfChildren son) {
+ assertNotNull(son);
+ assertEquals("Son", son.getName());
+
+ Human_WithArrayOfChildren father2 = son.getFather();
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", son.getMother().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ assertSame(father2.getPartner(), son.getMother());
+ assertSame(father2, son.getMother().getPartner());
+
+ Human_WithArrayOfChildren[] fathersChildren = father2.getChildren();
+ assertEquals(2, fathersChildren.length);
+ Human_WithArrayOfChildren[] mothersChildren = father2.getPartner().getChildren();
+ assertEquals(2, mothersChildren.length);
+ assertSame(mothersChildren, fathersChildren);
+
+ for (Object child : fathersChildren) {
+ // check if type descriptor was correct
+ assertSame(Human_WithArrayOfChildren.class, child.getClass());
}
+ }
+
+ public void testChildrenArray() {
+ Constructor constructor = new Constructor(Human_WithArrayOfChildren.class);
+ TypeDescription HumanWithChildrenArrayDescription =
+ new TypeDescription(Human_WithArrayOfChildren.class);
+ HumanWithChildrenArrayDescription.putListPropertyType("children",
+ Human_WithArrayOfChildren.class);
+ constructor.addTypeDescription(HumanWithChildrenArrayDescription);
+ Human_WithArrayOfChildren son = createSon();
+ Yaml yaml = new Yaml(constructor);
+ String output = yaml.dump(son);
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("recursive/with-childrenArray.yaml");
+ assertEquals(etalon, output);
+ //
+ Human_WithArrayOfChildren son2 = yaml.load(output);
+ checkSon(son2);
+ }
+
+ public void testDumpChildrenArrayWithoutRootTag() {
+ Yaml yaml = new Yaml();
+ Human_WithArrayOfChildren son = createSon();
+ String output = yaml.dumpAsMap(son);
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("recursive/with-childrenArray-no-root-tag.yaml");
+ assertEquals(etalon, output);
+ }
+
+ public void testParseChildrenArrayWithoutRootTag() {
+ Constructor constructor = new Constructor(Human_WithArrayOfChildren.class);
+ TypeDescription HumanWithChildrenArrayDescription =
+ new TypeDescription(Human_WithArrayOfChildren.class);
+ HumanWithChildrenArrayDescription.putListPropertyType("children",
+ Human_WithArrayOfChildren.class);
+ constructor.addTypeDescription(HumanWithChildrenArrayDescription);
+ Yaml yaml = new Yaml(constructor);
+ String doc = Util.getLocalResource("recursive/with-childrenArray-no-root-tag.yaml");
+ Human_WithArrayOfChildren son2 = yaml.load(doc);
+ checkSon(son2);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/recursive/generics/AbstractHumanGen.java b/src/test/java/org/yaml/snakeyaml/recursive/generics/AbstractHumanGen.java
index 8a6a01bc..3265a382 100644
--- a/src/test/java/org/yaml/snakeyaml/recursive/generics/AbstractHumanGen.java
+++ b/src/test/java/org/yaml/snakeyaml/recursive/generics/AbstractHumanGen.java
@@ -1,94 +1,93 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.recursive.generics;
import java.util.Date;
public abstract class AbstractHumanGen<T, K extends AbstractHumanGen<T, ?>> {
- private String name;
- private Date birthday;
- private String birthPlace;
- private K father;
- private K mother;
- private K partner;
- private K bankAccountOwner;
- protected T children;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public Date getBirthday() {
- return birthday;
- }
-
- public void setBirthday(Date birthday) {
- this.birthday = birthday;
- }
-
- public String getBirthPlace() {
- return birthPlace;
- }
-
- public K getFather() {
- return father;
- }
-
- public void setFather(K father) {
- this.father = father;
- }
-
- public K getMother() {
- return mother;
- }
-
- public void setMother(K mother) {
- this.mother = mother;
- }
-
- public void setBirthPlace(String birthPlace) {
- this.birthPlace = birthPlace;
- }
-
- public T getChildren() {
- return children;
- }
-
- public void setChildren(T children) {
- this.children = children;
- }
-
- public K getPartner() {
- return partner;
- }
-
- public void setPartner(K partner) {
- this.partner = partner;
- }
-
- public K getBankAccountOwner() {
- return bankAccountOwner;
- }
-
- public void setBankAccountOwner(K bankAccountOwner) {
- this.bankAccountOwner = bankAccountOwner;
- }
+
+ private String name;
+ private Date birthday;
+ private String birthPlace;
+ private K father;
+ private K mother;
+ private K partner;
+ private K bankAccountOwner;
+ protected T children;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Date getBirthday() {
+ return birthday;
+ }
+
+ public void setBirthday(Date birthday) {
+ this.birthday = birthday;
+ }
+
+ public String getBirthPlace() {
+ return birthPlace;
+ }
+
+ public K getFather() {
+ return father;
+ }
+
+ public void setFather(K father) {
+ this.father = father;
+ }
+
+ public K getMother() {
+ return mother;
+ }
+
+ public void setMother(K mother) {
+ this.mother = mother;
+ }
+
+ public void setBirthPlace(String birthPlace) {
+ this.birthPlace = birthPlace;
+ }
+
+ public T getChildren() {
+ return children;
+ }
+
+ public void setChildren(T children) {
+ this.children = children;
+ }
+
+ public K getPartner() {
+ return partner;
+ }
+
+ public void setPartner(K partner) {
+ this.partner = partner;
+ }
+
+ public K getBankAccountOwner() {
+ return bankAccountOwner;
+ }
+
+ public void setBankAccountOwner(K bankAccountOwner) {
+ this.bankAccountOwner = bankAccountOwner;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGen.java b/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGen.java
index bf14d47a..3c745aa7 100644
--- a/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGen.java
+++ b/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGen.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.recursive.generics;
@@ -19,7 +17,8 @@ import java.util.LinkedHashSet;
import java.util.Set;
public class HumanGen extends AbstractHumanGen<Set<HumanGen>, HumanGen> {
- public HumanGen() {
- children = new LinkedHashSet<HumanGen>();
- }
+
+ public HumanGen() {
+ children = new LinkedHashSet<HumanGen>();
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGen2.java b/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGen2.java
index 0045680b..f6857e75 100644
--- a/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGen2.java
+++ b/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGen2.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.recursive.generics;
@@ -20,7 +18,7 @@ import java.util.Map;
public class HumanGen2 extends AbstractHumanGen<Map<HumanGen2, String>, HumanGen2> {
- public HumanGen2() {
- children = new HashMap<HumanGen2, String>();
- }
+ public HumanGen2() {
+ children = new HashMap<HumanGen2, String>();
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGen3.java b/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGen3.java
index b05d1367..8c3529de 100644
--- a/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGen3.java
+++ b/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGen3.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.recursive.generics;
@@ -20,7 +18,7 @@ import java.util.List;
public class HumanGen3 extends AbstractHumanGen<List<HumanGen3>, HumanGen3> {
- public HumanGen3() {
- children = new ArrayList<HumanGen3>();
- }
+ public HumanGen3() {
+ children = new ArrayList<HumanGen3>();
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGenericsTest.java b/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGenericsTest.java
index 5bc1a0e6..eac51023 100644
--- a/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGenericsTest.java
+++ b/src/test/java/org/yaml/snakeyaml/recursive/generics/HumanGenericsTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.recursive.generics;
@@ -26,474 +24,447 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-
import junit.framework.TestCase;
-
+import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.TypeDescription;
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.Constructor;
-import org.yaml.snakeyaml.generics.GenericsBugDetector;
import org.yaml.snakeyaml.nodes.Tag;
import org.yaml.snakeyaml.representer.Representer;
public class HumanGenericsTest extends TestCase {
- public void testNoChildren() throws IOException, IntrospectionException {
- if (!GenericsBugDetector.isProperIntrospection()) {
- return;
- }
- HumanGen father = new HumanGen();
- father.setName("Father");
- father.setBirthday(new Date(1000000000));
- father.setBirthPlace("Leningrad");
- father.setBankAccountOwner(father);
- HumanGen mother = new HumanGen();
- mother.setName("Mother");
- mother.setBirthday(new Date(100000000000L));
- mother.setBirthPlace("Saint-Petersburg");
- father.setPartner(mother);
- mother.setPartner(father);
- mother.setBankAccountOwner(father);
- Yaml yaml = new Yaml();
- String output = yaml.dump(father);
- String etalon = Util.getLocalResource("recursive/generics/no-children-1.yaml");
- assertEquals(etalon, output);
- //
- HumanGen father2 = (HumanGen) yaml.load(output);
- assertNotNull(father2);
- assertEquals("Father", father2.getName());
- assertEquals("Mother", father2.getPartner().getName());
- assertEquals("Father", father2.getBankAccountOwner().getName());
- assertSame(father2, father2.getBankAccountOwner());
- }
-
- /**
- * the YAML document should contain no global tags
- *
- * @throws IntrospectionException
- */
- public void testNoChildren2() throws IOException, IntrospectionException {
- if (!GenericsBugDetector.isProperIntrospection()) {
- return;
- }
- HumanGen father = new HumanGen();
- father.setName("Father");
- father.setBirthday(new Date(1000000000));
- father.setBirthPlace("Leningrad");
- father.setBankAccountOwner(father);
- HumanGen mother = new HumanGen();
- mother.setName("Mother");
- mother.setBirthday(new Date(100000000000L));
- mother.setBirthPlace("Saint-Petersburg");
- father.setPartner(mother);
- mother.setPartner(father);
- mother.setBankAccountOwner(father);
- Yaml yaml = new Yaml();
- String output = yaml.dumpAsMap(father);
- String etalon = Util.getLocalResource("recursive/generics/no-children-2.yaml");
- assertEquals(etalon, output);
- //
- Yaml loader = new Yaml();
- HumanGen father2 = (HumanGen) loader.loadAs(etalon, HumanGen.class);
- assertNotNull(father2);
- assertEquals("Father", father2.getName());
- assertEquals("Mother", father2.getPartner().getName());
- assertEquals("Father", father2.getBankAccountOwner().getName());
- assertSame(father2, father2.getBankAccountOwner());
- }
-
- public void testChildren() throws IOException, IntrospectionException {
- if (!GenericsBugDetector.isProperIntrospection()) {
- return;
- }
- HumanGen father = new HumanGen();
- father.setName("Father");
- father.setBirthday(new Date(1000000000));
- father.setBirthPlace("Leningrad");
- father.setBankAccountOwner(father);
- //
- HumanGen mother = new HumanGen();
- mother.setName("Mother");
- mother.setBirthday(new Date(100000000000L));
- mother.setBirthPlace("Saint-Petersburg");
- father.setPartner(mother);
- mother.setPartner(father);
- mother.setBankAccountOwner(father);
- //
- HumanGen son = new HumanGen();
- son.setName("Son");
- son.setBirthday(new Date(310000000000L));
- son.setBirthPlace("Munich");
- son.setBankAccountOwner(father);
- son.setFather(father);
- son.setMother(mother);
- //
- HumanGen daughter = new HumanGen();
- daughter.setName("Daughter");
- daughter.setBirthday(new Date(420000000000L));
- daughter.setBirthPlace("New York");
- daughter.setBankAccountOwner(father);
- daughter.setFather(father);
- daughter.setMother(mother);
- //
- Set<HumanGen> children = new LinkedHashSet<HumanGen>(2);
- children.add(son);
- children.add(daughter);
- father.setChildren(children);
- mother.setChildren(children);
- //
-
- Constructor constructor = new Constructor();
- TypeDescription humanDescription = new TypeDescription(HumanGen.class);
- humanDescription.putMapPropertyType("children", HumanGen.class, Object.class);
- constructor.addTypeDescription(humanDescription);
-
- Yaml yaml = new Yaml(constructor);
- String output = yaml.dump(son);
- // System.out.println(output);
- String etalon = Util.getLocalResource("recursive/generics/with-children.yaml");
- assertEquals(etalon, output);
- //
- HumanGen son2 = (HumanGen) yaml.load(output);
- assertNotNull(son2);
- assertEquals("Son", son.getName());
-
- HumanGen father2 = son2.getFather();
- assertEquals("Father", father2.getName());
- assertEquals("Mother", son2.getMother().getName());
- assertSame(father2, father2.getBankAccountOwner());
- assertSame(father2.getPartner(), son2.getMother());
- assertSame(father2, son2.getMother().getPartner());
-
- Set<HumanGen> children2 = father2.getChildren();
- assertEquals(2, children2.size());
- assertSame(father2.getPartner().getChildren(), children2);
-
- for (Object child : children2) {
- assertSame(HumanGen.class, child.getClass()); // check if type
- // descriptor was correct
- }
- }
-
- public void testChildren2() throws IOException, IntrospectionException {
- if (!GenericsBugDetector.isProperIntrospection()) {
- return;
- }
- HumanGen2 father = new HumanGen2();
- father.setName("Father");
- father.setBirthday(new Date(1000000000));
- father.setBirthPlace("Leningrad");
- father.setBankAccountOwner(father);
- //
- HumanGen2 mother = new HumanGen2();
- mother.setName("Mother");
- mother.setBirthday(new Date(100000000000L));
- mother.setBirthPlace("Saint-Petersburg");
- father.setPartner(mother);
- mother.setPartner(father);
- mother.setBankAccountOwner(father);
- //
- HumanGen2 son = new HumanGen2();
- son.setName("Son");
- son.setBirthday(new Date(310000000000L));
- son.setBirthPlace("Munich");
- son.setBankAccountOwner(father);
- son.setFather(father);
- son.setMother(mother);
- //
- HumanGen2 daughter = new HumanGen2();
- daughter.setName("Daughter");
- daughter.setBirthday(new Date(420000000000L));
- daughter.setBirthPlace("New York");
- daughter.setBankAccountOwner(father);
- daughter.setFather(father);
- daughter.setMother(mother);
- //
- HashMap<HumanGen2, String> children = new LinkedHashMap<HumanGen2, String>(2);
- children.put(son, "son");
- children.put(daughter, "daughter");
- father.setChildren(children);
- mother.setChildren(children);
- //
- Representer representer = new Representer();
- representer.addClassTag(HumanGen2.class, Tag.MAP);
- Yaml yaml = new Yaml(representer);
- String output = yaml.dump(son);
- // System.out.println(output);
- String etalon = Util.getLocalResource("recursive/generics/with-children-2.yaml");
- assertEquals(etalon, output);
- // load
- TypeDescription humanDescription = new TypeDescription(HumanGen2.class);
- humanDescription.putMapPropertyType("children", HumanGen2.class, String.class);
- Yaml beanLoader = new Yaml(new Constructor(humanDescription));
- //
- HumanGen2 son2 = beanLoader.loadAs(output, HumanGen2.class);
- assertNotNull(son2);
- assertEquals("Son", son.getName());
-
- HumanGen2 father2 = son2.getFather();
- assertEquals("Father", father2.getName());
- assertEquals("Mother", son2.getMother().getName());
- assertSame(father2, father2.getBankAccountOwner());
- assertSame(father2.getPartner(), son2.getMother());
- assertSame(father2, son2.getMother().getPartner());
-
- Map<HumanGen2, String> children2 = father2.getChildren();
- assertEquals(2, children2.size());
- assertSame(father2.getPartner().getChildren(), children2);
-
- }
-
- public void testChildren3() throws IOException, IntrospectionException {
- if (!GenericsBugDetector.isProperIntrospection()) {
- return;
- }
- HumanGen3 father = new HumanGen3();
- father.setName("Father");
- father.setBirthday(new Date(1000000000));
- father.setBirthPlace("Leningrad");
- father.setBankAccountOwner(father);
- //
- HumanGen3 mother = new HumanGen3();
- mother.setName("Mother");
- mother.setBirthday(new Date(100000000000L));
- mother.setBirthPlace("Saint-Petersburg");
- father.setPartner(mother);
- mother.setPartner(father);
- mother.setBankAccountOwner(father);
- //
- HumanGen3 son = new HumanGen3();
- son.setName("Son");
- son.setBirthday(new Date(310000000000L));
- son.setBirthPlace("Munich");
- son.setBankAccountOwner(father);
- son.setFather(father);
- son.setMother(mother);
- //
- HumanGen3 daughter = new HumanGen3();
- daughter.setName("Daughter");
- daughter.setBirthday(new Date(420000000000L));
- daughter.setBirthPlace("New York");
- daughter.setBankAccountOwner(father);
- daughter.setFather(father);
- daughter.setMother(mother);
- //
- ArrayList<HumanGen3> children = new ArrayList<HumanGen3>();
- children.add(son);
- children.add(daughter);
- father.setChildren(children);
- mother.setChildren(children);
- //
-
- Constructor constructor = new Constructor();
- TypeDescription Human3Description = new TypeDescription(HumanGen3.class);
- Human3Description.putListPropertyType("children", HumanGen3.class);
- constructor.addTypeDescription(Human3Description);
-
- Yaml yaml = new Yaml(constructor);
- String output = yaml.dump(son);
- // System.out.println(output);
- String etalon = Util.getLocalResource("recursive/generics/with-children-3.yaml");
- assertEquals(etalon, output);
- //
- HumanGen3 son2 = (HumanGen3) yaml.load(output);
- assertNotNull(son2);
- assertEquals("Son", son.getName());
-
- HumanGen3 father2 = son2.getFather();
- assertEquals("Father", father2.getName());
- assertEquals("Mother", son2.getMother().getName());
- assertSame(father2, father2.getBankAccountOwner());
- assertSame(father2.getPartner(), son2.getMother());
- assertSame(father2, son2.getMother().getPartner());
-
- List<HumanGen3> children2 = father2.getChildren();
- assertEquals(2, children2.size());
- assertSame(father2.getPartner().getChildren(), children2);
-
- for (Object child : children2) {
- assertSame(HumanGen3.class, child.getClass()); // check if type
- // descriptor was
- // correct
- }
- }
-
- /*
- * Loads same structure as created in testChildren. But root object is set
- * of children
- */
- @SuppressWarnings("unchecked")
- public void testChildrenSetAsRoot() throws IOException, IntrospectionException {
- if (!GenericsBugDetector.isProperIntrospection()) {
- return;
- }
- String etalon = Util.getLocalResource("recursive/generics/with-children-as-set.yaml");
-
- Constructor constructor = new Constructor();
- TypeDescription humanDescription = new TypeDescription(HumanGen.class);
- humanDescription.putMapPropertyType("children", HumanGen.class, Object.class);
- constructor.addTypeDescription(humanDescription);
-
- Yaml yaml = new Yaml(constructor);
- Set<HumanGen> children2 = (Set<HumanGen>) yaml.load(etalon);
- assertNotNull(children2);
- assertEquals(2, children2.size());
-
- HumanGen firstChild = children2.iterator().next();
-
- HumanGen father2 = firstChild.getFather();
- assertEquals("Father", father2.getName());
- assertEquals("Mother", firstChild.getMother().getName());
- assertSame(father2, father2.getBankAccountOwner());
- assertSame(father2.getPartner(), firstChild.getMother());
- assertSame(father2, firstChild.getMother().getPartner());
-
- assertSame(father2.getPartner().getChildren(), children2);
-
- for (Object child : children2) {
- assertSame(HumanGen.class, child.getClass()); // check if type
- // descriptor was correct
- }
+ public void testNoChildren() throws IOException, IntrospectionException {
+ HumanGen father = new HumanGen();
+ father.setName("Father");
+ father.setBirthday(new Date(1000000000));
+ father.setBirthPlace("Leningrad");
+ father.setBankAccountOwner(father);
+ HumanGen mother = new HumanGen();
+ mother.setName("Mother");
+ mother.setBirthday(new Date(100000000000L));
+ mother.setBirthPlace("Saint-Petersburg");
+ father.setPartner(mother);
+ mother.setPartner(father);
+ mother.setBankAccountOwner(father);
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(father);
+ String etalon = Util.getLocalResource("recursive/generics/no-children-1.yaml");
+ assertEquals(etalon, output);
+ //
+ HumanGen father2 = yaml.load(output);
+ assertNotNull(father2);
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", father2.getPartner().getName());
+ assertEquals("Father", father2.getBankAccountOwner().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ }
+
+ /**
+ * the YAML document should contain no global tags
+ *
+ * @throws IntrospectionException
+ */
+ public void testNoChildren2() throws IOException, IntrospectionException {
+ HumanGen father = new HumanGen();
+ father.setName("Father");
+ father.setBirthday(new Date(1000000000));
+ father.setBirthPlace("Leningrad");
+ father.setBankAccountOwner(father);
+ HumanGen mother = new HumanGen();
+ mother.setName("Mother");
+ mother.setBirthday(new Date(100000000000L));
+ mother.setBirthPlace("Saint-Petersburg");
+ father.setPartner(mother);
+ mother.setPartner(father);
+ mother.setBankAccountOwner(father);
+ Yaml yaml = new Yaml();
+ String output = yaml.dumpAsMap(father);
+ String etalon = Util.getLocalResource("recursive/generics/no-children-2.yaml");
+ assertEquals(etalon, output);
+ //
+ Yaml loader = new Yaml();
+ HumanGen father2 = loader.loadAs(etalon, HumanGen.class);
+ assertNotNull(father2);
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", father2.getPartner().getName());
+ assertEquals("Father", father2.getBankAccountOwner().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ }
+
+ public void testChildren() throws IOException, IntrospectionException {
+ HumanGen father = new HumanGen();
+ father.setName("Father");
+ father.setBirthday(new Date(1000000000));
+ father.setBirthPlace("Leningrad");
+ father.setBankAccountOwner(father);
+ //
+ HumanGen mother = new HumanGen();
+ mother.setName("Mother");
+ mother.setBirthday(new Date(100000000000L));
+ mother.setBirthPlace("Saint-Petersburg");
+ father.setPartner(mother);
+ mother.setPartner(father);
+ mother.setBankAccountOwner(father);
+ //
+ HumanGen son = new HumanGen();
+ son.setName("Son");
+ son.setBirthday(new Date(310000000000L));
+ son.setBirthPlace("Munich");
+ son.setBankAccountOwner(father);
+ son.setFather(father);
+ son.setMother(mother);
+ //
+ HumanGen daughter = new HumanGen();
+ daughter.setName("Daughter");
+ daughter.setBirthday(new Date(420000000000L));
+ daughter.setBirthPlace("New York");
+ daughter.setBankAccountOwner(father);
+ daughter.setFather(father);
+ daughter.setMother(mother);
+ //
+ Set<HumanGen> children = new LinkedHashSet<HumanGen>(2);
+ children.add(son);
+ children.add(daughter);
+ father.setChildren(children);
+ mother.setChildren(children);
+ //
+
+ LoaderOptions options = new LoaderOptions();
+ options.setAllowRecursiveKeys(true);
+ Constructor constructor = new Constructor(options);
+ TypeDescription humanDescription = new TypeDescription(HumanGen.class);
+ humanDescription.putMapPropertyType("children", HumanGen.class, Object.class);
+ constructor.addTypeDescription(humanDescription);
+
+ Yaml yaml = new Yaml(constructor);
+ String output = yaml.dump(son);
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("recursive/generics/with-children.yaml");
+ assertEquals(etalon, output);
+ //
+ HumanGen son2 = yaml.load(output);
+ assertNotNull(son2);
+ assertEquals("Son", son.getName());
+
+ HumanGen father2 = son2.getFather();
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", son2.getMother().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ assertSame(father2.getPartner(), son2.getMother());
+ assertSame(father2, son2.getMother().getPartner());
+
+ Set<HumanGen> children2 = father2.getChildren();
+ assertEquals(2, children2.size());
+ assertSame(father2.getPartner().getChildren(), children2);
+
+ for (Object child : children2) {
+ assertSame(HumanGen.class, child.getClass()); // check if type
+ // descriptor was correct
}
-
- /*
- * Loads same structure as created in testChildren. But root object is map
- * of children
- */
- @SuppressWarnings("unchecked")
- public void testChildrenMapAsRoot() throws IOException, IntrospectionException {
- if (!GenericsBugDetector.isProperIntrospection()) {
- return;
- }
- String etalon = Util.getLocalResource("recursive/generics/with-children-as-map.yaml");
-
- Constructor constructor = new Constructor();
- TypeDescription Human2Description = new TypeDescription(HumanGen2.class);
- Human2Description.putMapPropertyType("children", HumanGen2.class, String.class);
- constructor.addTypeDescription(Human2Description);
-
- Yaml yaml = new Yaml(constructor);
- Map<HumanGen2, String> children2 = (Map<HumanGen2, String>) yaml.load(etalon);
- assertNotNull(children2);
- assertEquals(2, children2.size());
-
- Entry<HumanGen2, String> firstEntry = children2.entrySet().iterator().next();
- HumanGen2 firstChild = firstEntry.getKey();
-
- HumanGen2 father2 = firstChild.getFather();
- assertEquals("Father", father2.getName());
- assertEquals("Mother", firstChild.getMother().getName());
- assertSame(father2, father2.getBankAccountOwner());
- assertSame(father2.getPartner(), firstChild.getMother());
- assertSame(father2, firstChild.getMother().getPartner());
-
- assertSame(father2.getPartner().getChildren(), children2);
+ }
+
+ public void testChildren2() throws IOException, IntrospectionException {
+ HumanGen2 father = new HumanGen2();
+ father.setName("Father");
+ father.setBirthday(new Date(1000000000));
+ father.setBirthPlace("Leningrad");
+ father.setBankAccountOwner(father);
+ //
+ HumanGen2 mother = new HumanGen2();
+ mother.setName("Mother");
+ mother.setBirthday(new Date(100000000000L));
+ mother.setBirthPlace("Saint-Petersburg");
+ father.setPartner(mother);
+ mother.setPartner(father);
+ mother.setBankAccountOwner(father);
+ //
+ HumanGen2 son = new HumanGen2();
+ son.setName("Son");
+ son.setBirthday(new Date(310000000000L));
+ son.setBirthPlace("Munich");
+ son.setBankAccountOwner(father);
+ son.setFather(father);
+ son.setMother(mother);
+ //
+ HumanGen2 daughter = new HumanGen2();
+ daughter.setName("Daughter");
+ daughter.setBirthday(new Date(420000000000L));
+ daughter.setBirthPlace("New York");
+ daughter.setBankAccountOwner(father);
+ daughter.setFather(father);
+ daughter.setMother(mother);
+ //
+ HashMap<HumanGen2, String> children = new LinkedHashMap<HumanGen2, String>(2);
+ children.put(son, "son");
+ children.put(daughter, "daughter");
+ father.setChildren(children);
+ mother.setChildren(children);
+ //
+ Representer representer = new Representer();
+ representer.addClassTag(HumanGen2.class, Tag.MAP);
+ Yaml yaml = new Yaml(representer);
+ String output = yaml.dump(son);
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("recursive/generics/with-children-2.yaml");
+ assertEquals(etalon, output);
+ // load
+ TypeDescription humanDescription = new TypeDescription(HumanGen2.class);
+ humanDescription.putMapPropertyType("children", HumanGen2.class, String.class);
+
+ LoaderOptions options = new LoaderOptions();
+ options.setAllowRecursiveKeys(true);
+ Yaml beanLoader = new Yaml(new Constructor(humanDescription, options));
+ //
+ HumanGen2 son2 = beanLoader.loadAs(output, HumanGen2.class);
+ assertNotNull(son2);
+ assertEquals("Son", son.getName());
+
+ HumanGen2 father2 = son2.getFather();
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", son2.getMother().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ assertSame(father2.getPartner(), son2.getMother());
+ assertSame(father2, son2.getMother().getPartner());
+
+ Map<HumanGen2, String> children2 = father2.getChildren();
+ assertEquals(2, children2.size());
+ assertSame(father2.getPartner().getChildren(), children2);
+
+ }
+
+ public void testChildren3() throws IOException, IntrospectionException {
+ HumanGen3 father = new HumanGen3();
+ father.setName("Father");
+ father.setBirthday(new Date(1000000000));
+ father.setBirthPlace("Leningrad");
+ father.setBankAccountOwner(father);
+ //
+ HumanGen3 mother = new HumanGen3();
+ mother.setName("Mother");
+ mother.setBirthday(new Date(100000000000L));
+ mother.setBirthPlace("Saint-Petersburg");
+ father.setPartner(mother);
+ mother.setPartner(father);
+ mother.setBankAccountOwner(father);
+ //
+ HumanGen3 son = new HumanGen3();
+ son.setName("Son");
+ son.setBirthday(new Date(310000000000L));
+ son.setBirthPlace("Munich");
+ son.setBankAccountOwner(father);
+ son.setFather(father);
+ son.setMother(mother);
+ //
+ HumanGen3 daughter = new HumanGen3();
+ daughter.setName("Daughter");
+ daughter.setBirthday(new Date(420000000000L));
+ daughter.setBirthPlace("New York");
+ daughter.setBankAccountOwner(father);
+ daughter.setFather(father);
+ daughter.setMother(mother);
+ //
+ ArrayList<HumanGen3> children = new ArrayList<HumanGen3>();
+ children.add(son);
+ children.add(daughter);
+ father.setChildren(children);
+ mother.setChildren(children);
+ //
+
+ Constructor constructor = new Constructor();
+ TypeDescription Human3Description = new TypeDescription(HumanGen3.class);
+ Human3Description.putListPropertyType("children", HumanGen3.class);
+ constructor.addTypeDescription(Human3Description);
+
+ Yaml yaml = new Yaml(constructor);
+ String output = yaml.dump(son);
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("recursive/generics/with-children-3.yaml");
+ assertEquals(etalon, output);
+ //
+ HumanGen3 son2 = yaml.load(output);
+ assertNotNull(son2);
+ assertEquals("Son", son.getName());
+
+ HumanGen3 father2 = son2.getFather();
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", son2.getMother().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ assertSame(father2.getPartner(), son2.getMother());
+ assertSame(father2, son2.getMother().getPartner());
+
+ List<HumanGen3> children2 = father2.getChildren();
+ assertEquals(2, children2.size());
+ assertSame(father2.getPartner().getChildren(), children2);
+
+ for (Object child : children2) {
+ assertSame(HumanGen3.class, child.getClass()); // check if type
+ // descriptor was
+ // correct
}
-
- /*
- * Loads same structure as created in testChildren. But root object is list
- * of children
- */
- @SuppressWarnings("unchecked")
- public void testChildrenListRoot() throws IOException, IntrospectionException {
- if (!GenericsBugDetector.isProperIntrospection()) {
- return;
- }
- HumanGen3 father = new HumanGen3();
- father.setName("Father");
- father.setBirthday(new Date(1000000000));
- father.setBirthPlace("Leningrad");
- father.setBankAccountOwner(father);
- //
- HumanGen3 mother = new HumanGen3();
- mother.setName("Mother");
- mother.setBirthday(new Date(100000000000L));
- mother.setBirthPlace("Saint-Petersburg");
- father.setPartner(mother);
- mother.setPartner(father);
- mother.setBankAccountOwner(father);
- //
- HumanGen3 son = new HumanGen3();
- son.setName("Son");
- son.setBirthday(new Date(310000000000L));
- son.setBirthPlace("Munich");
- son.setBankAccountOwner(father);
- son.setFather(father);
- son.setMother(mother);
- //
- HumanGen3 daughter = new HumanGen3();
- daughter.setName("Daughter");
- daughter.setBirthday(new Date(420000000000L));
- daughter.setBirthPlace("New York");
- daughter.setBankAccountOwner(father);
- daughter.setFather(father);
- daughter.setMother(mother);
- //
- ArrayList<HumanGen3> children = new ArrayList<HumanGen3>();
- children.add(son);
- children.add(daughter);
- father.setChildren(children);
- mother.setChildren(children);
- //
-
- Constructor constructor = new Constructor();
- TypeDescription Human3Description = new TypeDescription(HumanGen3.class);
- Human3Description.putListPropertyType("children", HumanGen3.class);
- constructor.addTypeDescription(Human3Description);
-
- Yaml yaml = new Yaml(constructor);
- String output = yaml.dump(father.getChildren());
- // System.out.println(output);
- String etalon = Util.getLocalResource("recursive/generics/with-children-as-list.yaml");
- assertEquals(etalon, output);
- //
- List<HumanGen3> children2 = (List<HumanGen3>) yaml.load(output);
- assertNotNull(children2);
- HumanGen3 son2 = children2.iterator().next();
- assertEquals(2, children2.size());
-
- HumanGen3 father2 = son2.getFather();
- assertEquals("Father", father2.getName());
- assertEquals("Mother", son2.getMother().getName());
- assertSame(father2, father2.getBankAccountOwner());
- assertSame(father2.getPartner(), son2.getMother());
- assertSame(father2, son2.getMother().getPartner());
-
- assertSame(father2.getPartner().getChildren(), children2);
-
- for (Object child : children2) {
- assertSame(HumanGen3.class, child.getClass()); // check if type
- // descriptor was
- // correct
- }
+ }
+
+ /*
+ * Loads same structure as created in testChildren. But root object is set of children
+ */
+ @SuppressWarnings("unchecked")
+ public void testChildrenSetAsRoot() throws IOException, IntrospectionException {
+ String etalon = Util.getLocalResource("recursive/generics/with-children-as-set.yaml");
+
+ Constructor constructor = new Constructor();
+ TypeDescription humanDescription = new TypeDescription(HumanGen.class);
+ humanDescription.putMapPropertyType("children", HumanGen.class, Object.class);
+ constructor.addTypeDescription(humanDescription);
+
+ Yaml yaml = new Yaml(constructor);
+ Set<HumanGen> children2 = yaml.load(etalon);
+ assertNotNull(children2);
+ assertEquals(2, children2.size());
+
+ HumanGen firstChild = children2.iterator().next();
+
+ HumanGen father2 = firstChild.getFather();
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", firstChild.getMother().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ assertSame(father2.getPartner(), firstChild.getMother());
+ assertSame(father2, firstChild.getMother().getPartner());
+
+ assertSame(father2.getPartner().getChildren(), children2);
+
+ for (Object child : children2) {
+ assertSame(HumanGen.class, child.getClass()); // check if type
+ // descriptor was correct
}
-
- public void testBeanRing() throws IOException, IntrospectionException {
- if (!GenericsBugDetector.isProperIntrospection()) {
- return;
- }
- HumanGen man1 = new HumanGen();
- man1.setName("Man 1");
- HumanGen man2 = new HumanGen();
- man2.setName("Man 2");
- HumanGen man3 = new HumanGen();
- man3.setName("Man 3");
- man1.setBankAccountOwner(man2);
- man2.setBankAccountOwner(man3);
- man3.setBankAccountOwner(man1);
- //
- Yaml yaml = new Yaml();
- String output = yaml.dump(man1);
- // System.out.println(output);
- String etalon = Util.getLocalResource("recursive/generics/beanring-3.yaml");
- assertEquals(etalon, output);
- //
- HumanGen loadedMan1 = (HumanGen) yaml.load(output);
- assertNotNull(loadedMan1);
- assertEquals("Man 1", loadedMan1.getName());
- HumanGen loadedMan2 = loadedMan1.getBankAccountOwner();
- HumanGen loadedMan3 = loadedMan2.getBankAccountOwner();
- assertSame(loadedMan1, loadedMan3.getBankAccountOwner());
+ }
+
+ /*
+ * Loads same structure as created in testChildren. But root object is map of children
+ */
+ @SuppressWarnings("unchecked")
+ public void testChildrenMapAsRoot() throws IOException, IntrospectionException {
+ String etalon = Util.getLocalResource("recursive/generics/with-children-as-map.yaml");
+
+ Constructor constructor = new Constructor();
+ TypeDescription Human2Description = new TypeDescription(HumanGen2.class);
+ Human2Description.putMapPropertyType("children", HumanGen2.class, String.class);
+ constructor.addTypeDescription(Human2Description);
+
+ Yaml yaml = new Yaml(constructor);
+ Map<HumanGen2, String> children2 = yaml.load(etalon);
+ assertNotNull(children2);
+ assertEquals(2, children2.size());
+
+ Entry<HumanGen2, String> firstEntry = children2.entrySet().iterator().next();
+ HumanGen2 firstChild = firstEntry.getKey();
+
+ HumanGen2 father2 = firstChild.getFather();
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", firstChild.getMother().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ assertSame(father2.getPartner(), firstChild.getMother());
+ assertSame(father2, firstChild.getMother().getPartner());
+
+ assertSame(father2.getPartner().getChildren(), children2);
+ }
+
+ /*
+ * Loads same structure as created in testChildren. But root object is list of children
+ */
+ @SuppressWarnings("unchecked")
+ public void testChildrenListRoot() throws IOException, IntrospectionException {
+ HumanGen3 father = new HumanGen3();
+ father.setName("Father");
+ father.setBirthday(new Date(1000000000));
+ father.setBirthPlace("Leningrad");
+ father.setBankAccountOwner(father);
+ //
+ HumanGen3 mother = new HumanGen3();
+ mother.setName("Mother");
+ mother.setBirthday(new Date(100000000000L));
+ mother.setBirthPlace("Saint-Petersburg");
+ father.setPartner(mother);
+ mother.setPartner(father);
+ mother.setBankAccountOwner(father);
+ //
+ HumanGen3 son = new HumanGen3();
+ son.setName("Son");
+ son.setBirthday(new Date(310000000000L));
+ son.setBirthPlace("Munich");
+ son.setBankAccountOwner(father);
+ son.setFather(father);
+ son.setMother(mother);
+ //
+ HumanGen3 daughter = new HumanGen3();
+ daughter.setName("Daughter");
+ daughter.setBirthday(new Date(420000000000L));
+ daughter.setBirthPlace("New York");
+ daughter.setBankAccountOwner(father);
+ daughter.setFather(father);
+ daughter.setMother(mother);
+ //
+ ArrayList<HumanGen3> children = new ArrayList<HumanGen3>();
+ children.add(son);
+ children.add(daughter);
+ father.setChildren(children);
+ mother.setChildren(children);
+ //
+
+ Constructor constructor = new Constructor();
+ TypeDescription Human3Description = new TypeDescription(HumanGen3.class);
+ Human3Description.putListPropertyType("children", HumanGen3.class);
+ constructor.addTypeDescription(Human3Description);
+
+ Yaml yaml = new Yaml(constructor);
+ String output = yaml.dump(father.getChildren());
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("recursive/generics/with-children-as-list.yaml");
+ assertEquals(etalon, output);
+ //
+ List<HumanGen3> children2 = yaml.load(output);
+ assertNotNull(children2);
+ HumanGen3 son2 = children2.iterator().next();
+ assertEquals(2, children2.size());
+
+ HumanGen3 father2 = son2.getFather();
+ assertEquals("Father", father2.getName());
+ assertEquals("Mother", son2.getMother().getName());
+ assertSame(father2, father2.getBankAccountOwner());
+ assertSame(father2.getPartner(), son2.getMother());
+ assertSame(father2, son2.getMother().getPartner());
+
+ assertSame(father2.getPartner().getChildren(), children2);
+
+ for (Object child : children2) {
+ assertSame(HumanGen3.class, child.getClass()); // check if type
+ // descriptor was
+ // correct
}
+ }
+
+ public void testBeanRing() throws IOException, IntrospectionException {
+ HumanGen man1 = new HumanGen();
+ man1.setName("Man 1");
+ HumanGen man2 = new HumanGen();
+ man2.setName("Man 2");
+ HumanGen man3 = new HumanGen();
+ man3.setName("Man 3");
+ man1.setBankAccountOwner(man2);
+ man2.setBankAccountOwner(man3);
+ man3.setBankAccountOwner(man1);
+ //
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(man1);
+ // System.out.println(output);
+ String etalon = Util.getLocalResource("recursive/generics/beanring-3.yaml");
+ assertEquals(etalon, output);
+ //
+ HumanGen loadedMan1 = yaml.load(output);
+ assertNotNull(loadedMan1);
+ assertEquals("Man 1", loadedMan1.getName());
+ HumanGen loadedMan2 = loadedMan1.getBankAccountOwner();
+ HumanGen loadedMan3 = loadedMan2.getBankAccountOwner();
+ assertSame(loadedMan1, loadedMan3.getBankAccountOwner());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/representer/DumpStackTraceTest.java b/src/test/java/org/yaml/snakeyaml/representer/DumpStackTraceTest.java
index 38a52567..c5e35825 100644
--- a/src/test/java/org/yaml/snakeyaml/representer/DumpStackTraceTest.java
+++ b/src/test/java/org/yaml/snakeyaml/representer/DumpStackTraceTest.java
@@ -1,65 +1,62 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.representer;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
public class DumpStackTraceTest extends TestCase {
- public void testJavaStackTrace() {
- Yaml yaml = new Yaml();
- String input = Util.getLocalResource("representer/stacktrace1.txt");
- String result = yaml.dump(input);
- // System.out.println(result);
- assertEquals(result, yaml.dump(yaml.load(result)));
- }
+ public void testJavaStackTrace() {
+ Yaml yaml = new Yaml();
+ String input = Util.getLocalResource("representer/stacktrace1.txt");
+ String result = yaml.dump(input);
+ // System.out.println(result);
+ assertEquals(result, yaml.dump(yaml.load(result)));
+ }
- public void testJavaStackTraceWithNoSpecialCharacters() {
- DumperOptions options = new DumperOptions();
- options.setWidth(50);
- Yaml yaml = new Yaml(options);
- String input = Util.getLocalResource("representer/stacktrace2.txt");
- assertEquals(-1, input.indexOf(':'));
- assertEquals(-1, input.indexOf('\t'));
- String result = yaml.dump(input);
- // System.out.println(result);
- assertEquals(result, yaml.dump(yaml.load(result)));
- }
+ public void testJavaStackTraceWithNoSpecialCharacters() {
+ DumperOptions options = new DumperOptions();
+ options.setWidth(50);
+ Yaml yaml = new Yaml(options);
+ String input = Util.getLocalResource("representer/stacktrace2.txt");
+ assertEquals(-1, input.indexOf(':'));
+ assertEquals(-1, input.indexOf('\t'));
+ String result = yaml.dump(input);
+ // System.out.println(result);
+ assertEquals(result, yaml.dump(yaml.load(result)));
+ }
- public void testJavaStackTraceWithTabs() {
- Yaml yaml = new Yaml();
- String input = Util.getLocalResource("representer/stacktrace3.txt");
- assertEquals(-1, input.indexOf(':'));
- assertTrue("Tabs must be used.", input.indexOf('\t') > 0);
- String result = yaml.dump(input);
- // System.out.println(result);
- assertEquals(result, yaml.dump(yaml.load(result)));
- }
+ public void testJavaStackTraceWithTabs() {
+ Yaml yaml = new Yaml();
+ String input = Util.getLocalResource("representer/stacktrace3.txt");
+ assertEquals(-1, input.indexOf(':'));
+ assertTrue("Tabs must be used.", input.indexOf('\t') > 0);
+ String result = yaml.dump(input);
+ // System.out.println(result);
+ assertEquals(result, yaml.dump(yaml.load(result)));
+ }
- public void testJavaStackTraceWithoutTabs() {
- Yaml yaml = new Yaml();
- String input = Util.getLocalResource("representer/stacktrace1.txt");
- String result = (String) yaml.dump(input);
- // System.out.println(result);
- String etalon = Util.getLocalResource("representer/stacktrace1.yaml");
- // http://code.google.com/p/snakeyaml/issues/detail?id=66
- assertEquals(etalon, result);
- }
+ public void testJavaStackTraceWithoutTabs() {
+ Yaml yaml = new Yaml();
+ String input = Util.getLocalResource("representer/stacktrace1.txt");
+ String result = yaml.dump(input);
+ // System.out.println(result);
+ String etalon = Util.getLocalResource("representer/stacktrace1.yaml");
+ // http://code.google.com/p/snakeyaml/issues/detail?id=66
+ assertEquals(etalon, result);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/representer/FilterPropertyToDumpTest.java b/src/test/java/org/yaml/snakeyaml/representer/FilterPropertyToDumpTest.java
index 41c6bf23..c72c386b 100644
--- a/src/test/java/org/yaml/snakeyaml/representer/FilterPropertyToDumpTest.java
+++ b/src/test/java/org/yaml/snakeyaml/representer/FilterPropertyToDumpTest.java
@@ -1,107 +1,135 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.representer;
-import java.beans.IntrospectionException;
import java.util.Set;
import java.util.TreeSet;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
+import org.yaml.snakeyaml.TypeDescription;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.introspector.Property;
public class FilterPropertyToDumpTest extends TestCase {
- public void testFilterPropertyInJavaBeanDumper() {
- BeanToRemoveProperty bean = new BeanToRemoveProperty();
- bean.setNumber(24);
- bean.setId("ID124");
- Yaml d = new Yaml();
- String dump = d.dumpAsMap(bean);
- // System.out.println(dump);
- assertEquals("id: ID124\nnumber: 24\n", dump);
- }
+ public void testFilterPropertyInJavaBeanDumper() {
+ BeanToRemoveProperty bean = new BeanToRemoveProperty();
+ bean.setNumber(24);
+ bean.setId("ID124");
+ Yaml d = new Yaml();
+ String dump = d.dumpAsMap(bean);
+ // System.out.println(dump);
+ assertEquals("id: ID124\nnumber: 24\n", dump);
+ }
- public void testFilterPropertyInYaml() {
- BeanToRemoveProperty bean = new BeanToRemoveProperty();
- bean.setNumber(25);
- bean.setId("ID125");
- Yaml yaml = new Yaml(new MyRepresenter());
- String dump = yaml.dumpAsMap(bean);
- // System.out.println(dump);
- assertEquals("number: 25\n", dump);
- }
+ public void testFilterPropertyInYaml() {
+ BeanToRemoveProperty bean = new BeanToRemoveProperty();
+ bean.setNumber(25);
+ bean.setId("ID125");
+ Yaml yaml = new Yaml(new MyRepresenter());
+ String dump = yaml.dumpAsMap(bean);
+ // System.out.println(dump);
+ assertEquals("number: 25\n", dump);
+ }
- public void testDoNotFilterPropertyIncludeReadOnly() {
- BeanToRemoveProperty bean = new BeanToRemoveProperty();
- bean.setNumber(26);
- bean.setId("ID126");
- DumperOptions options = new DumperOptions();
- options.setAllowReadOnlyProperties(true);
- Yaml yaml = new Yaml(options);
- String dump = yaml.dump(bean);
- // System.out.println(dump);
- assertEquals(
- "!!org.yaml.snakeyaml.representer.FilterPropertyToDumpTest$BeanToRemoveProperty {id: ID126,\n number: 26, something: true}\n",
- dump);
- }
+ public void testDoNotFilterPropertyIncludeReadOnly() {
+ BeanToRemoveProperty bean = new BeanToRemoveProperty();
+ bean.setNumber(26);
+ bean.setId("ID126");
+ DumperOptions options = new DumperOptions();
+ options.setAllowReadOnlyProperties(true);
+ Yaml yaml = new Yaml(options);
+ String dump = yaml.dump(bean);
+ // System.out.println(dump);
+ assertEquals(
+ "!!org.yaml.snakeyaml.representer.FilterPropertyToDumpTest$BeanToRemoveProperty {id: ID126,\n number: 26, something: true}\n",
+ dump);
+ }
- public class BeanToRemoveProperty {
- private int number;
- private String id;
+ public void testFilterPropertyWithTypeDesciptionIncludes() {
+ BeanToRemoveProperty bean = new BeanToRemoveProperty();
+ bean.setNumber(27);
+ bean.setId("ID127");
+ Yaml yaml = new Yaml();
+ TypeDescription td = new TypeDescription(BeanToRemoveProperty.class);
+ td.setIncludes("number");
+ yaml.addTypeDescription(td);
+ String dump = yaml.dump(bean);
+ // System.out.println(dump);
+ assertEquals(
+ "!!org.yaml.snakeyaml.representer.FilterPropertyToDumpTest$BeanToRemoveProperty {number: 27}\n",
+ dump);
+ }
- public boolean isSomething() {
- return true;
- }
+ public void testFilterPropertyWithTypeDesciptionExcludes() {
+ BeanToRemoveProperty bean = new BeanToRemoveProperty();
+ bean.setNumber(28);
+ bean.setId("ID128");
+ Yaml yaml = new Yaml();
+ TypeDescription td = new TypeDescription(BeanToRemoveProperty.class);
+ td.setExcludes("id");
+ yaml.addTypeDescription(td);
+ String dump = yaml.dump(bean);
+ // System.out.println(dump);
+ assertEquals(
+ "!!org.yaml.snakeyaml.representer.FilterPropertyToDumpTest$BeanToRemoveProperty {number: 28}\n",
+ dump);
+ }
- public int getNumber() {
- return number;
- }
- public void setNumber(int number) {
- this.number = number;
- }
+ public class BeanToRemoveProperty {
- public void setId(String id) {
- this.id = id;
- }
+ private int number;
+ private String id;
- public String getId() {
- return id;
- }
+ public boolean isSomething() {
+ return true;
}
- private class MyRepresenter extends Representer {
- @Override
- protected Set<Property> getProperties(Class<? extends Object> type)
- throws IntrospectionException {
- Set<Property> set = super.getProperties(type);
- Set<Property> filtered = new TreeSet<Property>();
- if (type.equals(BeanToRemoveProperty.class)) {
- // filter properties
- for (Property prop : set) {
- String name = prop.getName();
- if (!name.equals("id")) {
- filtered.add(prop);
- }
- }
- }
- return filtered;
+ public int getNumber() {
+ return number;
+ }
+
+ public void setNumber(int number) {
+ this.number = number;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getId() {
+ return id;
+ }
+ }
+
+ private class MyRepresenter extends Representer {
+
+ @Override
+ protected Set<Property> getProperties(Class<? extends Object> type) {
+ Set<Property> set = super.getProperties(type);
+ Set<Property> filtered = new TreeSet<Property>();
+ if (type.equals(BeanToRemoveProperty.class)) {
+ // filter properties
+ for (Property prop : set) {
+ String name = prop.getName();
+ if (!name.equals("id")) {
+ filtered.add(prop);
+ }
}
+ }
+ return filtered;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/representer/RepresentFieldTest.java b/src/test/java/org/yaml/snakeyaml/representer/RepresentFieldTest.java
index feff49e1..9a934197 100644
--- a/src/test/java/org/yaml/snakeyaml/representer/RepresentFieldTest.java
+++ b/src/test/java/org/yaml/snakeyaml/representer/RepresentFieldTest.java
@@ -1,70 +1,66 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.representer;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public class RepresentFieldTest extends TestCase {
- public void testRepresent1() {
- Yaml yaml = new Yaml();
- WrongJavaBean bean = new WrongJavaBean();
- bean.packageField = "Value";// the field is present
- bean.publicField = "Michael Jackson";
- WrongJavaBean.staticField = "Another value";
- String output = yaml.dump(bean);
- assertEquals(
- "!!org.yaml.snakeyaml.representer.WrongJavaBean {publicField: Michael Jackson}\n",
- output);
- }
+ public void testRepresent1() {
+ Yaml yaml = new Yaml();
+ WrongJavaBean bean = new WrongJavaBean();
+ bean.packageField = "Value";// the field is present
+ bean.publicField = "Michael Jackson";
+ WrongJavaBean.staticField = "Another value";
+ String output = yaml.dump(bean);
+ assertEquals("!!org.yaml.snakeyaml.representer.WrongJavaBean {publicField: Michael Jackson}\n",
+ output);
+ }
- public void testWrongNotPublicField() {
- Yaml yaml = new Yaml();
- WrongJavaBean bean = new WrongJavaBean();
- bean.packageField = "Value";// the field is present
- try {
- yaml.load("!!org.yaml.snakeyaml.representer.WrongJavaBean {packageField: Gnome}\n");
- fail("Only public fields can be used.");
- } catch (Exception e) {
- // TODO improve the error message - the pointer should be at the
- // property name, not value
- assertTrue(e.getMessage().startsWith(
- "Cannot create property=packageField for JavaBean=WrongJavaBean"));
- assertEquals(
- "Unable to find property 'packageField' on class: org.yaml.snakeyaml.representer.WrongJavaBean",
- e.getCause().getMessage());
- }
+ public void testWrongNotPublicField() {
+ Yaml yaml = new Yaml();
+ WrongJavaBean bean = new WrongJavaBean();
+ bean.packageField = "Value";// the field is present
+ try {
+ yaml.load("!!org.yaml.snakeyaml.representer.WrongJavaBean {packageField: Gnome}\n");
+ fail("Only public fields can be used.");
+ } catch (Exception e) {
+ // TODO improve the error message - the pointer should be at the
+ // property name, not value
+ assertTrue(e.getMessage()
+ .startsWith("Cannot create property=packageField for JavaBean=WrongJavaBean"));
+ assertEquals(
+ "Unable to find property 'packageField' on class: org.yaml.snakeyaml.representer.WrongJavaBean",
+ e.getCause().getMessage());
}
+ }
- public void testStaticField() {
- Yaml yaml = new Yaml();
- WrongJavaBean.staticField = "Value";// the field is present
- try {
- yaml.load("!!org.yaml.snakeyaml.representer.WrongJavaBean {staticField: Gnome}\n");
- fail("Static fields cannot be used.");
- } catch (Exception e) {
- // TODO improve the error message - the pointer should be at the
- // property name, not value
- assertTrue(e.getMessage().startsWith(
- "Cannot create property=staticField for JavaBean=WrongJavaBean"));
- assertEquals(
- "Unable to find property 'staticField' on class: org.yaml.snakeyaml.representer.WrongJavaBean",
- e.getCause().getMessage());
- }
+ public void testStaticField() {
+ Yaml yaml = new Yaml();
+ WrongJavaBean.staticField = "Value";// the field is present
+ try {
+ yaml.load("!!org.yaml.snakeyaml.representer.WrongJavaBean {staticField: Gnome}\n");
+ fail("Static fields cannot be used.");
+ } catch (Exception e) {
+ // TODO improve the error message - the pointer should be at the
+ // property name, not value
+ assertTrue(e.getMessage()
+ .startsWith("Cannot create property=staticField for JavaBean=WrongJavaBean"));
+ assertEquals(
+ "Unable to find property 'staticField' on class: org.yaml.snakeyaml.representer.WrongJavaBean",
+ e.getCause().getMessage());
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/representer/RepresentIterableTest.java b/src/test/java/org/yaml/snakeyaml/representer/RepresentIterableTest.java
index 339e71de..b9492cb4 100644
--- a/src/test/java/org/yaml/snakeyaml/representer/RepresentIterableTest.java
+++ b/src/test/java/org/yaml/snakeyaml/representer/RepresentIterableTest.java
@@ -1,24 +1,20 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.representer;
import java.util.Iterator;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
/**
@@ -26,48 +22,50 @@ import org.yaml.snakeyaml.Yaml;
*/
public class RepresentIterableTest extends TestCase {
- public void testIterable() {
- Yaml yaml = new Yaml();
- try {
- yaml.dump(new CounterFactory());
- fail("Iterable should not be treated as sequence by default.");
- } catch (Exception e) {
- assertEquals(
- "No JavaBean properties found in org.yaml.snakeyaml.representer.RepresentIterableTest$CounterFactory",
- e.getMessage());
- }
+ public void testIterable() {
+ Yaml yaml = new Yaml();
+ try {
+ yaml.dump(new CounterFactory());
+ fail("Iterable should not be treated as sequence by default.");
+ } catch (Exception e) {
+ assertEquals(
+ "No JavaBean properties found in org.yaml.snakeyaml.representer.RepresentIterableTest$CounterFactory",
+ e.getMessage());
}
+ }
- public void testIterator() {
- Yaml yaml = new Yaml();
- String output = yaml.dump(new Counter(7));
- assertEquals("[0, 1, 2, 3, 4, 5, 6]\n", output);
- }
+ public void testIterator() {
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(new Counter(7));
+ assertEquals("[0, 1, 2, 3, 4, 5, 6]\n", output);
+ }
+
+ private class CounterFactory implements Iterable<Integer> {
- private class CounterFactory implements Iterable<Integer> {
- public Iterator<Integer> iterator() {
- return new Counter(10);
- }
+ public Iterator<Integer> iterator() {
+ return new Counter(10);
}
+ }
- private class Counter implements Iterator<Integer> {
- private int max = 0;
- private int counter = 0;
+ private class Counter implements Iterator<Integer> {
- public Counter(int max) {
- this.max = max;
- }
+ private int max = 0;
+ private int counter = 0;
- public boolean hasNext() {
- return counter < max;
- }
+ public Counter(int max) {
+ this.max = max;
+ }
+
+ public boolean hasNext() {
+ return counter < max;
+ }
- public Integer next() {
- return counter++;
- }
+ public Integer next() {
+ return counter++;
+ }
- public void remove() {
- throw new UnsupportedOperationException();
- }
+ public void remove() {
+ throw new UnsupportedOperationException();
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/representer/RepresentTest.java b/src/test/java/org/yaml/snakeyaml/representer/RepresentTest.java
index a68beaf7..3b87ea38 100644
--- a/src/test/java/org/yaml/snakeyaml/representer/RepresentTest.java
+++ b/src/test/java/org/yaml/snakeyaml/representer/RepresentTest.java
@@ -1,22 +1,19 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.representer;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.AbstractConstruct;
import org.yaml.snakeyaml.constructor.Constructor;
@@ -26,65 +23,70 @@ import org.yaml.snakeyaml.nodes.Tag;
public class RepresentTest extends TestCase {
- public void testCustomRepresenter() {
- Yaml yaml = new Yaml(new MyConstructor(), new MyRepresenter());
- CustomBean etalon = new CustomBean("A", 1);
- String output = yaml.dump(etalon);
- assertEquals("!!Dice 'Ad1'\n", output);
- CustomBean bean = (CustomBean) yaml.load(output);
- assertEquals("A", bean.getPrefix());
- assertEquals(1, bean.getSuffix());
- assertEquals(etalon, bean);
+ public void testCustomRepresenter() {
+ Yaml yaml = new Yaml(new MyConstructor(), new MyRepresenter());
+ CustomBean etalon = new CustomBean("A", 1);
+ String output = yaml.dump(etalon);
+ assertEquals("!!Dice 'Ad1'\n", output);
+ CustomBean bean = yaml.load(output);
+ assertEquals("A", bean.getPrefix());
+ assertEquals(1, bean.getSuffix());
+ assertEquals(etalon, bean);
+ }
+
+ class CustomBean {
+
+ private final String prefix;
+ private final int suffix;
+
+ public CustomBean(String prefix, int suffix) {
+ this.prefix = prefix;
+ this.suffix = suffix;
+ }
+
+ public String getPrefix() {
+ return prefix;
}
- class CustomBean {
- private String prefix;
- private int suffix;
+ public int getSuffix() {
+ return suffix;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ CustomBean bean = (CustomBean) obj;
+ return prefix.equals(bean.getPrefix()) && suffix == bean.getSuffix();
+ }
+ }
- public CustomBean(String prefix, int suffix) {
- this.prefix = prefix;
- this.suffix = suffix;
- }
+ class MyRepresenter extends Representer {
- public String getPrefix() {
- return prefix;
- }
+ public MyRepresenter() {
+ this.representers.put(CustomBean.class, new RepresentDice());
+ }
- public int getSuffix() {
- return suffix;
- }
+ private class RepresentDice implements Represent {
- @Override
- public boolean equals(Object obj) {
- CustomBean bean = (CustomBean) obj;
- return prefix.equals(bean.getPrefix()) && suffix == bean.getSuffix();
- }
+ public Node representData(Object data) {
+ CustomBean coin = (CustomBean) data;
+ String value = coin.getPrefix() + "d" + coin.getSuffix();
+ return representScalar(new Tag("!!Dice"), value);
+ }
}
+ }
+
+ class MyConstructor extends Constructor {
- class MyRepresenter extends Representer {
- public MyRepresenter() {
- this.representers.put(CustomBean.class, new RepresentDice());
- }
-
- private class RepresentDice implements Represent {
- public Node representData(Object data) {
- CustomBean coin = (CustomBean) data;
- String value = coin.getPrefix() + "d" + coin.getSuffix();
- return representScalar(new Tag("!!Dice"), value);
- }
- }
+ public MyConstructor() {
+ this.yamlConstructors.put(new Tag(Tag.PREFIX + "Dice"), new ConstructDice());
}
- class MyConstructor extends Constructor {
- public MyConstructor() {
- this.yamlConstructors.put(new Tag(Tag.PREFIX + "Dice"), new ConstructDice());
- }
-
- private class ConstructDice extends AbstractConstruct {
- public Object construct(Node node) {
- String val = (String) constructScalar((ScalarNode) node);
- return new CustomBean(val.substring(0, 1), new Integer(val.substring(2)));
- }
- }
+ private class ConstructDice extends AbstractConstruct {
+
+ public Object construct(Node node) {
+ String val = constructScalar((ScalarNode) node);
+ return new CustomBean(val.substring(0, 1), Integer.valueOf(val.substring(2)));
+ }
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/representer/RepresenterTest.java b/src/test/java/org/yaml/snakeyaml/representer/RepresenterTest.java
index db310629..0c944c6b 100644
--- a/src/test/java/org/yaml/snakeyaml/representer/RepresenterTest.java
+++ b/src/test/java/org/yaml/snakeyaml/representer/RepresenterTest.java
@@ -1,192 +1,191 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.representer;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
-import org.yaml.snakeyaml.nodes.Tag;
public class RepresenterTest extends TestCase {
- public void testRepresenter() {
- MyBean bean = new MyBean();
- bean.setName("Gnome");
- bean.setValid(true);
- bean.setPrimitive(true);
- Yaml yaml = new Yaml();
- assertEquals(
- "!!org.yaml.snakeyaml.representer.RepresenterTest$MyBean {name: Gnome, primitive: true}\n",
- yaml.dump(bean));
- }
-
- public static class MyBean {
- private String name;
- private Boolean valid;
- private boolean primitive;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public Boolean isValid() {
- return valid;
- }
-
- public void setValid(Boolean valid) {
- this.valid = valid;
- }
-
- public boolean isPrimitive() {
- return primitive;
- }
-
- public void setPrimitive(boolean primitive) {
- this.primitive = primitive;
- }
- }
-
- public void testRepresenterNoConstructorAvailable() {
- MyBean2 bean = new MyBean2("Gnome", true);
- DumperOptions options = new DumperOptions();
- options.setAllowReadOnlyProperties(true);
- Yaml yaml = new Yaml(options);
- assertEquals("!!org.yaml.snakeyaml.representer.RepresenterTest$MyBean2 {valid: true}\n",
- yaml.dump(bean));
- }
-
- public static class MyBean2 {
- private String name;
- private Boolean valid;
-
- public MyBean2(String name, Boolean valid) {
- this();
- this.name = name;
- this.valid = valid;
- }
-
- private MyBean2() {
- super();
- }
-
- private String getName() {
- return name;
- }
-
- public Boolean getValid() {
- return valid;
- }
-
- @Override
- public String toString() {
- return getName() + " " + getValid();
- }
- }
-
- public void testRepresenterGetterWithException() {
- MyBean3 bean = new MyBean3("Gnome", false);
- DumperOptions options = new DumperOptions();
- options.setAllowReadOnlyProperties(true);
- Yaml yaml = new Yaml(options);
- try {
- String str = yaml.dump(bean);
- fail("Exception must be reported: " + str);
- } catch (Exception e) {
- assertTrue(true);
- }
- // no exception
- MyBean3 bean2 = new MyBean3("Gnome", true);
- String str = yaml.dump(bean2);
- // isValid is no JavaBean property (it must be a primitive then)
- assertEquals(
- "isValid property must not be dumped.",
- "!!org.yaml.snakeyaml.representer.RepresenterTest$MyBean3 {boolProperty: true, name: Gnome}\n",
- str);
- }
-
- public static class MyBean3 {
- private String name;
- private Boolean valid;
- private boolean boolProperty;
-
- public MyBean3(String name, Boolean valid) {
- this.name = name;
- this.valid = valid;
- boolProperty = true;
- }
-
- public String getName() {
- if (valid) {
- return name;
- } else {
- throw new UnsupportedOperationException("Test.");
- }
- }
-
- public Boolean isValid() {
- return valid;
- }
-
- public boolean isBoolProperty() {
- return boolProperty;
- }
-
- @Override
- public String toString() {
- return "MyBean3<" + name + ", " + isValid() + ">";
- }
- }
-
- public void testRepresenterAddNull() {
- Representer representer = new Representer();
- try {
- representer.addClassTag(EmptyBean.class, (Tag) null);
- fail("Tag must be provided.");
- } catch (Exception e) {
- assertEquals("Tag must be provided.", e.getMessage());
- }
- }
-
- public void testRepresenterEmptyBean() {
- EmptyBean bean = new EmptyBean();
- Yaml yaml = new Yaml();
- try {
- yaml.dump(bean);
- fail("EmptyBean has empty representation.");
- } catch (Exception e) {
- assertEquals(
- "No JavaBean properties found in org.yaml.snakeyaml.representer.RepresenterTest$EmptyBean",
- e.getMessage());
- }
- }
-
- public static class EmptyBean {
- private int number;
-
- public void process() {
- number += 1;
- }
-
- public int obtain() {
- return number;
- }
+ public void testRepresenter() {
+ MyBean bean = new MyBean();
+ bean.setName("Gnome");
+ bean.setValid(true);
+ bean.setPrimitive(true);
+ Yaml yaml = new Yaml();
+ assertEquals(
+ "!!org.yaml.snakeyaml.representer.RepresenterTest$MyBean {name: Gnome, primitive: true}\n",
+ yaml.dump(bean));
+ }
+
+ public static class MyBean {
+
+ private String name;
+ private Boolean valid;
+ private boolean primitive;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Boolean isValid() {
+ return valid;
+ }
+
+ public void setValid(Boolean valid) {
+ this.valid = valid;
+ }
+
+ public boolean isPrimitive() {
+ return primitive;
+ }
+
+ public void setPrimitive(boolean primitive) {
+ this.primitive = primitive;
+ }
+ }
+
+ public void testRepresenterNoConstructorAvailable() {
+ MyBean2 bean = new MyBean2("Gnome", true);
+ DumperOptions options = new DumperOptions();
+ options.setAllowReadOnlyProperties(true);
+ Yaml yaml = new Yaml(options);
+ assertEquals("!!org.yaml.snakeyaml.representer.RepresenterTest$MyBean2 {valid: true}\n",
+ yaml.dump(bean));
+ }
+
+ public static class MyBean2 {
+
+ private String name;
+ private Boolean valid;
+
+ public MyBean2(String name, Boolean valid) {
+ this();
+ this.name = name;
+ this.valid = valid;
+ }
+
+ private MyBean2() {
+ super();
+ }
+
+ private String getName() {
+ return name;
+ }
+
+ public Boolean getValid() {
+ return valid;
+ }
+
+ @Override
+ public String toString() {
+ return getName() + " " + getValid();
+ }
+ }
+
+ public void testRepresenterGetterWithException() {
+ MyBean3 bean = new MyBean3("Gnome", false);
+ DumperOptions options = new DumperOptions();
+ options.setAllowReadOnlyProperties(true);
+ Yaml yaml = new Yaml(options);
+ try {
+ String str = yaml.dump(bean);
+ fail("Exception must be reported: " + str);
+ } catch (Exception e) {
+ assertTrue(true);
+ }
+ // no exception
+ MyBean3 bean2 = new MyBean3("Gnome", true);
+ String str = yaml.dump(bean2);
+ // isValid is no JavaBean property (it must be a primitive then)
+ assertEquals("isValid property must not be dumped.",
+ "!!org.yaml.snakeyaml.representer.RepresenterTest$MyBean3 {boolProperty: true, name: Gnome}\n",
+ str);
+ }
+
+ public static class MyBean3 {
+
+ private final String name;
+ private final Boolean valid;
+ private final boolean boolProperty;
+
+ public MyBean3(String name, Boolean valid) {
+ this.name = name;
+ this.valid = valid;
+ boolProperty = true;
+ }
+
+ public String getName() {
+ if (valid) {
+ return name;
+ } else {
+ throw new UnsupportedOperationException("Test.");
+ }
+ }
+
+ public Boolean isValid() {
+ return valid;
+ }
+
+ public boolean isBoolProperty() {
+ return boolProperty;
+ }
+
+ @Override
+ public String toString() {
+ return "MyBean3<" + name + ", " + isValid() + ">";
+ }
+ }
+
+ public void testRepresenterAddNull() {
+ Representer representer = new Representer();
+ try {
+ representer.addClassTag(EmptyBean.class, null);
+ fail("Tag must be provided.");
+ } catch (Exception e) {
+ assertEquals("Tag must be provided.", e.getMessage());
+ }
+ }
+
+ public void testRepresenterEmptyBean() {
+ EmptyBean bean = new EmptyBean();
+ Yaml yaml = new Yaml();
+ try {
+ yaml.dump(bean);
+ fail("EmptyBean has empty representation.");
+ } catch (Exception e) {
+ assertEquals(
+ "No JavaBean properties found in org.yaml.snakeyaml.representer.RepresenterTest$EmptyBean",
+ e.getMessage());
+ }
+ }
+
+ public static class EmptyBean {
+
+ private int number;
+
+ public void process() {
+ number += 1;
+ }
+
+ public int obtain() {
+ return number;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/representer/SafeRepresenterTest.java b/src/test/java/org/yaml/snakeyaml/representer/SafeRepresenterTest.java
index 719cf54d..e81c4e2d 100644
--- a/src/test/java/org/yaml/snakeyaml/representer/SafeRepresenterTest.java
+++ b/src/test/java/org/yaml/snakeyaml/representer/SafeRepresenterTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.representer;
@@ -22,116 +20,111 @@ import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.regex.Pattern;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.reader.StreamReader;
public class SafeRepresenterTest extends TestCase {
- public void testBinaryPattern() {
- Pattern pattern = StreamReader.NON_PRINTABLE;
- assertFalse(pattern.matcher("\tAndrey\r\n").find());
- assertTrue(pattern.matcher("\u0005Andrey").find());
- }
+ public void testBinaryPattern() {
+ assertTrue(StreamReader.isPrintable("\tAndrey\r\n"));
+ assertFalse(StreamReader.isPrintable("\u0005Andrey"));
+ }
- public void testFloat() {
- assertEquals("1.0E12", String.valueOf(new Double("1e12")));
- }
+ public void testFloat() {
+ assertEquals("1.0E12", String.valueOf(Double.valueOf("1e12")));
+ }
- public void testNumber() {
- List<Number> list = new ArrayList<Number>();
- list.add(new Byte((byte) 3));
- list.add(new Short((short) 4));
- list.add(new Integer(5));
- list.add(new BigInteger("6"));
- list.add(new Long(7L));
- list.add(Double.POSITIVE_INFINITY);
- list.add(Double.NEGATIVE_INFINITY);
- list.add(Double.NaN);
- Yaml yaml = new Yaml();
- String output = yaml.dump(list);
- assertEquals("[3, 4, 5, 6, 7, .inf, -.inf, .NaN]\n", output);
- }
+ public void testNumber() {
+ List<Number> list = new ArrayList<Number>();
+ list.add(Byte.valueOf((byte) 3));
+ list.add(Short.valueOf((short) 4));
+ list.add(Integer.valueOf(5));
+ list.add(new BigInteger("6"));
+ list.add(Long.valueOf(7L));
+ list.add(Double.POSITIVE_INFINITY);
+ list.add(Double.NEGATIVE_INFINITY);
+ list.add(Double.NaN);
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(list);
+ assertEquals("[3, 4, 5, 6, 7, .inf, -.inf, .NaN]\n", output);
+ }
- public void testDate() {
- List<Date> list = new ArrayList<Date>();
- list.add(new Date(1229684761159L));
- list.add(new Date(1229684761059L));
- list.add(new Date(1229684761009L));
- list.add(new Date(1229684761150L));
- list.add(new Date(1229684761100L));
- list.add(new Date(1229684761000L));
- list.add(new Date(1229684760000L));
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(list);
- assertEquals(
- "- 2008-12-19T11:06:01.159Z\n- 2008-12-19T11:06:01.059Z\n- 2008-12-19T11:06:01.009Z\n- 2008-12-19T11:06:01.150Z\n- 2008-12-19T11:06:01.100Z\n- 2008-12-19T11:06:01Z\n- 2008-12-19T11:06:00Z\n",
- output);
- }
+ public void testDate() {
+ List<Date> list = new ArrayList<Date>();
+ list.add(new Date(1229684761159L));
+ list.add(new Date(1229684761059L));
+ list.add(new Date(1229684761009L));
+ list.add(new Date(1229684761150L));
+ list.add(new Date(1229684761100L));
+ list.add(new Date(1229684761000L));
+ list.add(new Date(1229684760000L));
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(list);
+ assertEquals(
+ "- 2008-12-19T11:06:01.159Z\n- 2008-12-19T11:06:01.059Z\n- 2008-12-19T11:06:01.009Z\n- 2008-12-19T11:06:01.150Z\n- 2008-12-19T11:06:01.100Z\n- 2008-12-19T11:06:01Z\n- 2008-12-19T11:06:00Z\n",
+ output);
+ }
- public void testEmptyArray() {
- Yaml yaml = new Yaml();
- String output = yaml.dump(new String[0]);
- assertEquals("[]\n", output);
- }
+ public void testEmptyArray() {
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(new String[0]);
+ assertEquals("[]\n", output);
+ }
- public void testStyle() {
- List<Integer> list = new ArrayList<Integer>();
- list.add(new Integer(1));
- list.add(new Integer(1));
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("list", list);
- map.put("name", "Ubuntu");
- map.put("age", 5);
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(map);
- assertTrue(output.contains("\"age\": !!int \"5\""));
- assertTrue(output.contains("\"name\": \"Ubuntu\""));
- assertTrue(output.contains("- !!int \"1\""));
- }
+ public void testStyle() {
+ List<Integer> list = new ArrayList<Integer>();
+ list.add(Integer.valueOf(1));
+ list.add(Integer.valueOf(1));
+ Map<String, Object> map = new HashMap<String, Object>();
+ map.put("list", list);
+ map.put("name", "Ubuntu");
+ map.put("age", 5);
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(map);
+ assertTrue(output.contains("\"age\": !!int \"5\""));
+ assertTrue(output.contains("\"name\": \"Ubuntu\""));
+ assertTrue(output.contains("- !!int \"1\""));
+ }
- public void testStyle2() {
- List<Integer> list = new ArrayList<Integer>();
- list.add(new Integer(1));
- list.add(new Integer(1));
- Map<String, Object> map = new LinkedHashMap<String, Object>();
- map.put("age", 5);
- map.put("name", "Ubuntu");
- map.put("list", list);
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.SINGLE_QUOTED);
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(map);
- assertEquals("{'age': !!int '5', 'name': 'Ubuntu', 'list': [!!int '1', !!int '1']}\n",
- output);
- }
+ public void testStyle2() {
+ List<Integer> list = new ArrayList<Integer>();
+ list.add(Integer.valueOf(1));
+ list.add(Integer.valueOf(1));
+ Map<String, Object> map = new LinkedHashMap<String, Object>();
+ map.put("age", 5);
+ map.put("name", "Ubuntu");
+ map.put("list", list);
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.SINGLE_QUOTED);
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(map);
+ assertEquals("{'age': !!int '5', 'name': 'Ubuntu', 'list': [!!int '1', !!int '1']}\n", output);
+ }
- public void testStyle2Pretty() {
- List<Integer> list = new ArrayList<Integer>();
- list.add(new Integer(1));
- list.add(new Integer(1));
- Map<String, Object> map = new LinkedHashMap<String, Object>();
- map.put("age", 5);
- map.put("name", "Ubuntu");
- map.put("list", list);
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(DumperOptions.ScalarStyle.SINGLE_QUOTED);
- options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
- options.setPrettyFlow(true);
- Yaml yaml = new Yaml(options);
- String output = yaml.dump(map);
- assertEquals(
- "{\n 'age': !!int '5',\n 'name': 'Ubuntu',\n 'list': [\n !!int '1',\n !!int '1']\n \n}\n",
- output);
- }
+ public void testStyle2Pretty() {
+ List<Integer> list = new ArrayList<Integer>();
+ list.add(Integer.valueOf(1));
+ list.add(Integer.valueOf(1));
+ Map<String, Object> map = new LinkedHashMap<String, Object>();
+ map.put("age", 5);
+ map.put("name", "Ubuntu");
+ map.put("list", list);
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(DumperOptions.ScalarStyle.SINGLE_QUOTED);
+ options.setDefaultFlowStyle(DumperOptions.FlowStyle.FLOW);
+ options.setPrettyFlow(true);
+ Yaml yaml = new Yaml(options);
+ String output = yaml.dump(map);
+ assertEquals(
+ "{\n 'age': !!int '5',\n 'name': 'Ubuntu',\n 'list': [\n !!int '1',\n !!int '1'\n ]\n \n}\n",
+ output);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/representer/WrongJavaBean.java b/src/test/java/org/yaml/snakeyaml/representer/WrongJavaBean.java
index 729fc063..106b315f 100644
--- a/src/test/java/org/yaml/snakeyaml/representer/WrongJavaBean.java
+++ b/src/test/java/org/yaml/snakeyaml/representer/WrongJavaBean.java
@@ -1,37 +1,36 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.representer;
public class WrongJavaBean {
- String packageField;
- static String staticField;
- public transient String dynamo;
- public String publicField;
- private int privateValue;
- public WrongJavaBean() {
- method();
- }
+ String packageField;
+ static String staticField;
+ public transient String dynamo;
+ public String publicField;
+ private int privateValue;
- private void method() {
- privateValue++;
- }
+ public WrongJavaBean() {
+ method();
+ }
- @Override
- public String toString() {
- return "WrongJavaBean";
- }
+ private void method() {
+ privateValue++;
+ }
+
+ @Override
+ public String toString() {
+ return "WrongJavaBean";
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/resolver/ImplicitResolverTest.java b/src/test/java/org/yaml/snakeyaml/resolver/ImplicitResolverTest.java
index 10ff70ea..63373dac 100644
--- a/src/test/java/org/yaml/snakeyaml/resolver/ImplicitResolverTest.java
+++ b/src/test/java/org/yaml/snakeyaml/resolver/ImplicitResolverTest.java
@@ -1,26 +1,22 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.resolver;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.TypeDescription;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.AbstractConstruct;
@@ -31,65 +27,69 @@ import org.yaml.snakeyaml.nodes.ScalarNode;
import org.yaml.snakeyaml.nodes.Tag;
/**
- * Custom implicit resolver does not apply inside JavaBean declaration <a href=
- * "http://groups.google.com/group/snakeyaml-core/browse_frm/thread/c75c35a3d9cfcaba"
+ * Custom implicit resolver does not apply inside JavaBean declaration
+ * <a href= "http://groups.google.com/group/snakeyaml-core/browse_frm/thread/c75c35a3d9cfcaba"
* >mailing list</a> for more information
*/
public class ImplicitResolverTest extends TestCase {
- private static final Tag CFG = new Tag("!cfg");
- public static class ConfigurationConstructor extends Constructor {
- protected Map<String, String> config = null;
+ private static final Tag CFG = new Tag("!cfg");
- public ConfigurationConstructor(Map<String, String> config) {
- this.config = config;
- this.yamlConstructors.put(CFG, new ConfigObjectConstruct());
- }
+ public static class ConfigurationConstructor extends Constructor {
- private class ConfigObjectConstruct extends AbstractConstruct {
- public Object construct(Node node) {
- String val = (String) constructScalar((ScalarNode) node);
- val = val.substring(2, val.length() - 1);
- return config.get(val);
- }
- }
+ protected Map<String, String> config = null;
- protected Construct getConstructor(Node node) {
- if (CFG.equals(node.getTag())) {
- node.setUseClassConstructor(false);
- }
- return super.getConstructor(node);
- }
+ public ConfigurationConstructor(Map<String, String> config) {
+ this.config = config;
+ this.yamlConstructors.put(CFG, new ConfigObjectConstruct());
}
- public static class TestBean {
- String myval;
+ private class ConfigObjectConstruct extends AbstractConstruct {
- public String getMyval() {
- return myval;
- }
+ public Object construct(Node node) {
+ String val = constructScalar((ScalarNode) node);
+ val = val.substring(2, val.length() - 1);
+ return config.get(val);
+ }
+ }
+
+ protected Construct getConstructor(Node node) {
+ if (CFG.equals(node.getTag())) {
+ node.setUseClassConstructor(false);
+ }
+ return super.getConstructor(node);
+ }
+ }
- public void setMyval(String myval) {
- this.myval = myval;
- }
+ public static class TestBean {
- public String toString() {
- return "MyVal: " + myval;
- }
+ String myval;
+
+ public String getMyval() {
+ return myval;
+ }
+
+ public void setMyval(String myval) {
+ this.myval = myval;
}
- public void testMain() {
- Map<String, String> config = new HashMap<String, String>();
- config.put("user.home", "HOME");
- Constructor constructor = new ConfigurationConstructor(config);
- constructor.addTypeDescription(new TypeDescription(TestBean.class, "!testbean"));
- Yaml yaml = new Yaml(constructor);
- yaml.addImplicitResolver(CFG, Pattern.compile("\\$\\([a-zA-Z\\d\\u002E\\u005F]+\\)"), "$");
- TestBean bean = (TestBean) yaml.load("!testbean {myval: !cfg $(user.home)}");
- // System.out.println(bean.toString());
- assertEquals("Explicit tag must be respected", "HOME", bean.getMyval());
- bean = (TestBean) yaml.load("!testbean {myval: $(user.home)}");
- // System.out.println(bean.toString());
- assertEquals("Implicit tag must be respected", "HOME", bean.getMyval());
+ public String toString() {
+ return "MyVal: " + myval;
}
+ }
+
+ public void testMain() {
+ Map<String, String> config = new HashMap<String, String>();
+ config.put("user.home", "HOME");
+ Constructor constructor = new ConfigurationConstructor(config);
+ constructor.addTypeDescription(new TypeDescription(TestBean.class, "!testbean"));
+ Yaml yaml = new Yaml(constructor);
+ yaml.addImplicitResolver(CFG, Pattern.compile("\\$\\([a-zA-Z\\d\\u002E\\u005F]+\\)"), "$");
+ TestBean bean = yaml.load("!testbean {myval: !cfg $(user.home)}");
+ // System.out.println(bean.toString());
+ assertEquals("Explicit tag must be respected", "HOME", bean.getMyval());
+ bean = yaml.load("!testbean {myval: $(user.home)}");
+ // System.out.println(bean.toString());
+ assertEquals("Implicit tag must be respected", "HOME", bean.getMyval());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/resolver/ResolverTest.java b/src/test/java/org/yaml/snakeyaml/resolver/ResolverTest.java
index c9a252d8..befc082e 100644
--- a/src/test/java/org/yaml/snakeyaml/resolver/ResolverTest.java
+++ b/src/test/java/org/yaml/snakeyaml/resolver/ResolverTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.resolver;
@@ -21,10 +19,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
-
import junit.framework.TestCase;
-
-import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.AbstractConstruct;
import org.yaml.snakeyaml.constructor.Constructor;
@@ -36,115 +31,123 @@ import org.yaml.snakeyaml.representer.Representer;
public class ResolverTest extends TestCase {
- @SuppressWarnings("unchecked")
- public void testAddImplicitResolver() {
- Yaml yaml = new Yaml(new MyConstructor(), new MyRepresenter());
- Pattern regexp = Pattern.compile("\\d\\d-\\d\\d-\\d\\d\\d");
- yaml.addImplicitResolver(new Tag(Tag.PREFIX + "Phone"), regexp, "0123456789");
- Phone phone1 = new Phone("12-34-567");
- Phone phone2 = new Phone("11-22-333");
- Phone phone3 = new Phone("44-55-777");
- List<Phone> etalonList = new ArrayList<Phone>();
- etalonList.add(phone1);
- etalonList.add(phone2);
- etalonList.add(phone3);
- String output = yaml.dump(etalonList);
- assertEquals("[12-34-567, 11-22-333, 44-55-777]\n", output);
- List<Phone> parsedList = (List<Phone>) yaml.load(output);
- assertEquals(3, parsedList.size());
- assertEquals(phone1, parsedList.get(0));
- assertEquals(phone2, parsedList.get(1));
- assertEquals(phone3, parsedList.get(2));
- assertEquals(etalonList, parsedList);
+ @SuppressWarnings("unchecked")
+ public void testAddImplicitResolver() {
+ Yaml yaml = new Yaml(new MyConstructor(), new MyRepresenter());
+ Pattern regexp = Pattern.compile("\\d\\d-\\d\\d-\\d\\d\\d");
+ yaml.addImplicitResolver(new Tag(Tag.PREFIX + "Phone"), regexp, "0123456789");
+ Phone phone1 = new Phone("12-34-567");
+ Phone phone2 = new Phone("11-22-333");
+ Phone phone3 = new Phone("44-55-777");
+ List<Phone> etalonList = new ArrayList<Phone>();
+ etalonList.add(phone1);
+ etalonList.add(phone2);
+ etalonList.add(phone3);
+ String output = yaml.dump(etalonList);
+ assertEquals("[12-34-567, 11-22-333, 44-55-777]\n", output);
+ List<Phone> parsedList = yaml.load(output);
+ assertEquals(3, parsedList.size());
+ assertEquals(phone1, parsedList.get(0));
+ assertEquals(phone2, parsedList.get(1));
+ assertEquals(phone3, parsedList.get(2));
+ assertEquals(etalonList, parsedList);
+ }
+
+ public void testAddImplicitResolver2() {
+ Yaml yaml = new Yaml(new PointRepresenter());
+ Pattern regexp = Pattern.compile("\\d\\d-\\d\\d-\\d\\d\\d");
+ yaml.addImplicitResolver(new Tag(Tag.PREFIX + "Phone"), regexp, "\0");
+ Pattern regexp2 = Pattern.compile("x\\d_y\\d");
+ // try any scalar, and not only those which start with 'x'
+ yaml.addImplicitResolver(new Tag(Tag.PREFIX + "Point"), regexp2, null);
+ Map<String, Object> map = new LinkedHashMap<String, Object>();
+ map.put("a", new Phone("12-34-567"));
+ map.put("b", new Point(1, 5));
+ String output = yaml.dump(map);
+ assertEquals("{a: 12-34-567, b: x1_y5}\n", output);
+ }
+
+ class Phone {
+
+ private final String number;
+
+ public Phone(String n) {
+ this.number = n;
+ }
+
+ public String getNumber() {
+ return number;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof Phone)) {
+ return false;
+ }
+ return toString().equals(obj.toString());
}
- public void testAddImplicitResolver2() {
- Yaml yaml = new Yaml(new PointRepresenter());
- Pattern regexp = Pattern.compile("\\d\\d-\\d\\d-\\d\\d\\d");
- yaml.addImplicitResolver(new Tag(Tag.PREFIX + "Phone"), regexp, "\0");
- Pattern regexp2 = Pattern.compile("x\\d_y\\d");
- // try any scalar, and not only those which start with 'x'
- yaml.addImplicitResolver(new Tag(Tag.PREFIX + "Point"), regexp2, null);
- Map<String, Object> map = new LinkedHashMap<String, Object>();
- map.put("a", new Phone("12-34-567"));
- map.put("b", new Point(1, 5));
- String output = yaml.dump(map);
- assertEquals("{a: 12-34-567, b: x1_y5}\n", output);
+ @Override
+ public String toString() {
+ return "Phone: " + number;
}
+ }
+
+ class MyRepresenter extends Representer {
- class Phone {
- private String number;
-
- public Phone(String n) {
- this.number = n;
- }
-
- public String getNumber() {
- return number;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (!(obj instanceof Phone)) {
- return false;
- }
- return toString().equals(obj.toString());
- }
-
- @Override
- public String toString() {
- return "Phone: " + number;
- }
+ public MyRepresenter() {
+ this.representers.put(Phone.class, new RepresentPhone());
}
- class MyRepresenter extends Representer {
- public MyRepresenter() {
- this.representers.put(Phone.class, new RepresentPhone());
- }
-
- private class RepresentPhone implements Represent {
- public Node representData(Object data) {
- Phone phone = (Phone) data;
- String value = phone.getNumber();
- return representScalar(new Tag(Tag.PREFIX + "Phone"), value);
- }
- }
+ private class RepresentPhone implements Represent {
+
+ public Node representData(Object data) {
+ Phone phone = (Phone) data;
+ String value = phone.getNumber();
+ return representScalar(new Tag(Tag.PREFIX + "Phone"), value);
+ }
}
+ }
- class MyConstructor extends Constructor {
- public MyConstructor() {
- this.yamlConstructors.put(new Tag(Tag.PREFIX + "Phone"), new ConstructPhone());
- }
-
- private class ConstructPhone extends AbstractConstruct {
- public Object construct(Node node) {
- String val = (String) constructScalar((ScalarNode) node);
- return new Phone(val);
- }
- }
+ class MyConstructor extends Constructor {
+
+ public MyConstructor() {
+ this.yamlConstructors.put(new Tag(Tag.PREFIX + "Phone"), new ConstructPhone());
}
- class PointRepresenter extends Representer {
- public PointRepresenter() {
- this.representers.put(Point.class, new RepresentPoint());
- this.representers.put(Phone.class, new RepresentPhone());
- }
-
- private class RepresentPoint implements Represent {
- public Node representData(Object data) {
- Point phone = (Point) data;
- String value = "x" + (int) phone.getX() + "_y" + (int) phone.getY();
- return representScalar(new Tag(Tag.PREFIX + "Point"), value);
- }
- }
-
- private class RepresentPhone implements Represent {
- public Node representData(Object data) {
- Phone phone = (Phone) data;
- String value = phone.getNumber();
- return representScalar(new Tag(Tag.PREFIX + "Phone"), value);
- }
- }
+ private class ConstructPhone extends AbstractConstruct {
+
+ public Object construct(Node node) {
+ String val = constructScalar((ScalarNode) node);
+ return new Phone(val);
+ }
+ }
+ }
+
+ class PointRepresenter extends Representer {
+
+ public PointRepresenter() {
+ this.representers.put(Point.class, new RepresentPoint());
+ this.representers.put(Phone.class, new RepresentPhone());
+ }
+
+ private class RepresentPoint implements Represent {
+
+ public Node representData(Object data) {
+ Point phone = (Point) data;
+ String value = "x" + (int) phone.getX() + "_y" + (int) phone.getY();
+ return representScalar(new Tag(Tag.PREFIX + "Point"), value);
+ }
+ }
+
+ private class RepresentPhone implements Represent {
+
+ public Node representData(Object data) {
+ Phone phone = (Phone) data;
+ String value = phone.getNumber();
+ return representScalar(new Tag(Tag.PREFIX + "Phone"), value);
+ }
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/resolver/ResolverTupleTest.java b/src/test/java/org/yaml/snakeyaml/resolver/ResolverTupleTest.java
index 4cac651a..1bde3455 100644
--- a/src/test/java/org/yaml/snakeyaml/resolver/ResolverTupleTest.java
+++ b/src/test/java/org/yaml/snakeyaml/resolver/ResolverTupleTest.java
@@ -1,30 +1,26 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.resolver;
import java.util.regex.Pattern;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.nodes.Tag;
public class ResolverTupleTest extends TestCase {
- public void testToString() {
- ResolverTuple tuple = new ResolverTuple(new Tag("dice"), Pattern.compile("\\d+"));
- assertEquals("Tuple tag=dice regexp=\\d+", tuple.toString());
- }
+ public void testToString() {
+ ResolverTuple tuple = new ResolverTuple(new Tag("dice"), Pattern.compile("\\d+"), 5);
+ assertEquals("Tuple tag=dice regexp=\\d+ limit=5", tuple.toString());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/ruby/RubyTest.java b/src/test/java/org/yaml/snakeyaml/ruby/RubyTest.java
index 7eaae71b..a9ae5658 100644
--- a/src/test/java/org/yaml/snakeyaml/ruby/RubyTest.java
+++ b/src/test/java/org/yaml/snakeyaml/ruby/RubyTest.java
@@ -1,22 +1,19 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.ruby;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.TypeDescription;
import org.yaml.snakeyaml.Util;
@@ -27,87 +24,86 @@ import org.yaml.snakeyaml.representer.Representer;
public class RubyTest extends TestCase {
- public void testParse() {
- TestObject result = parseObject(Util.getLocalResource("ruby/ruby1.yaml"));
- assertNotNull(result);
- assertEquals(0, result.getSub1().getAtt2());
- assertEquals("MyString", result.getSub2().getAtt1());
- assertEquals(1, result.getSub2().getAtt2().size());
- assertEquals(12345, result.getSub2().getAtt3());
- }
+ public void testParse() {
+ TestObject result = parseObject(Util.getLocalResource("ruby/ruby1.yaml"));
+ assertNotNull(result);
+ assertEquals(0, result.getSub1().getAtt2());
+ assertEquals("MyString", result.getSub2().getAtt1());
+ assertEquals(1, result.getSub2().getAtt2().size());
+ assertEquals(12345, result.getSub2().getAtt3());
+ }
- public void testEmitNoTags() {
- TestObject result = parseObject(Util.getLocalResource("ruby/ruby1.yaml"));
- DumperOptions options = new DumperOptions();
- options.setExplicitStart(true);
- Yaml yaml2 = new Yaml(options);
- String output = yaml2.dumpAsMap(result);
- assertFalse("No tags expected.", output.contains("Sub1"));
- // System.out.println(output);
- // parse back. Without tags it shall still work
- Yaml beanLoader = new Yaml();
- TestObject result2 = beanLoader.loadAs(output, TestObject.class);
- assertEquals(0, result2.getSub1().getAtt2());
- assertEquals("MyString", result2.getSub2().getAtt1());
- assertEquals(1, result2.getSub2().getAtt2().size());
- assertEquals(12345, result2.getSub2().getAtt3());
- }
+ public void testEmitNoTags() {
+ TestObject result = parseObject(Util.getLocalResource("ruby/ruby1.yaml"));
+ DumperOptions options = new DumperOptions();
+ options.setExplicitStart(true);
+ Yaml yaml2 = new Yaml(options);
+ String output = yaml2.dumpAsMap(result);
+ assertFalse("No tags expected.", output.contains("Sub1"));
+ // System.out.println(output);
+ // parse back. Without tags it shall still work
+ Yaml beanLoader = new Yaml();
+ TestObject result2 = beanLoader.loadAs(output, TestObject.class);
+ assertEquals(0, result2.getSub1().getAtt2());
+ assertEquals("MyString", result2.getSub2().getAtt1());
+ assertEquals(1, result2.getSub2().getAtt2().size());
+ assertEquals(12345, result2.getSub2().getAtt3());
+ }
- public void testEmitWithTags() {
- TestObject result = parseObject(Util.getLocalResource("ruby/ruby1.yaml"));
- DumperOptions options = new DumperOptions();
- options.setExplicitStart(true);
- Representer repr = new Representer();
- repr.addClassTag(TestObject.class, new Tag("!ruby/object:Test::Module::Object"));
- repr.addClassTag(Sub1.class, new Tag("!ruby/object:Test::Module::Sub1"));
- repr.addClassTag(Sub2.class, new Tag("!ruby/object:Test::Module::Sub2"));
- Yaml yaml2 = new Yaml(repr, options);
- String output = yaml2.dump(result);
- // System.out.println(output);
- assertTrue("Tags must be present.",
- output.startsWith("--- !ruby/object:Test::Module::Object"));
- assertTrue("Tags must be present: " + output,
- output.contains("!ruby/object:Test::Module::Sub1"));
- assertTrue("Tags must be present.", output.contains("!ruby/object:Test::Module::Sub2"));
- // parse back.
- TestObject result2 = parseObject(output);
- assertEquals(0, result2.getSub1().getAtt2());
- assertEquals("MyString", result2.getSub2().getAtt1());
- assertEquals(1, result2.getSub2().getAtt2().size());
- assertEquals(12345, result2.getSub2().getAtt3());
- }
+ public void testEmitWithTags() {
+ TestObject result = parseObject(Util.getLocalResource("ruby/ruby1.yaml"));
+ DumperOptions options = new DumperOptions();
+ options.setExplicitStart(true);
+ Representer repr = new Representer();
+ repr.addClassTag(TestObject.class, new Tag("!ruby/object:Test::Module::Object"));
+ repr.addClassTag(Sub1.class, new Tag("!ruby/object:Test::Module::Sub1"));
+ repr.addClassTag(Sub2.class, new Tag("!ruby/object:Test::Module::Sub2"));
+ Yaml yaml2 = new Yaml(repr, options);
+ String output = yaml2.dump(result);
+ // System.out.println(output);
+ assertTrue("Tags must be present.", output.startsWith("--- !ruby/object:Test::Module::Object"));
+ assertTrue("Tags must be present: " + output,
+ output.contains("!ruby/object:Test::Module::Sub1"));
+ assertTrue("Tags must be present.", output.contains("!ruby/object:Test::Module::Sub2"));
+ // parse back.
+ TestObject result2 = parseObject(output);
+ assertEquals(0, result2.getSub1().getAtt2());
+ assertEquals("MyString", result2.getSub2().getAtt1());
+ assertEquals(1, result2.getSub2().getAtt2().size());
+ assertEquals(12345, result2.getSub2().getAtt3());
+ }
- public void testEmitWithTags2WithoutTagForParentJavabean() {
- TestObject result = parseObject(Util.getLocalResource("ruby/ruby1.yaml"));
- DumperOptions options = new DumperOptions();
- options.setExplicitStart(true);
- Representer repr = new Representer();
- repr.addClassTag(Sub1.class, new Tag("!ruby/object:Test::Module::Sub1"));
- repr.addClassTag(Sub2.class, new Tag("!ruby/object:Test::Module::Sub2"));
- Yaml yaml2 = new Yaml(repr, options);
- String output = yaml2.dump(result);
- // System.out.println(output);
- assertTrue("Tags must be present.",
- output.startsWith("--- !!org.yaml.snakeyaml.ruby.TestObject"));
- assertTrue("Tags must be present: " + output,
- output.contains("!ruby/object:Test::Module::Sub1"));
- assertTrue("Tags must be present.", output.contains("!ruby/object:Test::Module::Sub2"));
- // parse back.
- TestObject result2 = parseObject(output);
- assertEquals(0, result2.getSub1().getAtt2());
- assertEquals("MyString", result2.getSub2().getAtt1());
- assertEquals(1, result2.getSub2().getAtt2().size());
- assertEquals(12345, result2.getSub2().getAtt3());
- }
+ public void testEmitWithTags2WithoutTagForParentJavabean() {
+ TestObject result = parseObject(Util.getLocalResource("ruby/ruby1.yaml"));
+ DumperOptions options = new DumperOptions();
+ options.setExplicitStart(true);
+ Representer repr = new Representer();
+ repr.addClassTag(Sub1.class, new Tag("!ruby/object:Test::Module::Sub1"));
+ repr.addClassTag(Sub2.class, new Tag("!ruby/object:Test::Module::Sub2"));
+ Yaml yaml2 = new Yaml(repr, options);
+ String output = yaml2.dump(result);
+ // System.out.println(output);
+ assertTrue("Tags must be present.",
+ output.startsWith("--- !!org.yaml.snakeyaml.ruby.TestObject"));
+ assertTrue("Tags must be present: " + output,
+ output.contains("!ruby/object:Test::Module::Sub1"));
+ assertTrue("Tags must be present.", output.contains("!ruby/object:Test::Module::Sub2"));
+ // parse back.
+ TestObject result2 = parseObject(output);
+ assertEquals(0, result2.getSub1().getAtt2());
+ assertEquals("MyString", result2.getSub2().getAtt1());
+ assertEquals(1, result2.getSub2().getAtt2().size());
+ assertEquals(12345, result2.getSub2().getAtt3());
+ }
- private TestObject parseObject(String input) {
- Constructor con = new Constructor(TestObject.class);
- con.addTypeDescription(new TypeDescription(TestObject.class,
- "!ruby/object:Test::Module::Object"));
- con.addTypeDescription(new TypeDescription(Sub1.class, "!ruby/object:Test::Module::Sub1"));
- con.addTypeDescription(new TypeDescription(Sub2.class, "!ruby/object:Test::Module::Sub2"));
+ private TestObject parseObject(String input) {
+ Constructor con = new Constructor(TestObject.class);
+ con.addTypeDescription(
+ new TypeDescription(TestObject.class, "!ruby/object:Test::Module::Object"));
+ con.addTypeDescription(new TypeDescription(Sub1.class, "!ruby/object:Test::Module::Sub1"));
+ con.addTypeDescription(new TypeDescription(Sub2.class, "!ruby/object:Test::Module::Sub2"));
- Yaml yaml = new Yaml(con);
- return (TestObject) yaml.load(input);
- }
+ Yaml yaml = new Yaml(con);
+ return yaml.load(input);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/ruby/Sub1.java b/src/test/java/org/yaml/snakeyaml/ruby/Sub1.java
index 25618f4e..8ee1521d 100644
--- a/src/test/java/org/yaml/snakeyaml/ruby/Sub1.java
+++ b/src/test/java/org/yaml/snakeyaml/ruby/Sub1.java
@@ -1,48 +1,47 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.ruby;
import java.util.List;
public class Sub1 {
- private List<Integer> att1;
- private int att2;
- private List<Integer> att3;
- public List<Integer> getAtt1() {
- return att1;
- }
+ private List<Integer> att1;
+ private int att2;
+ private List<Integer> att3;
- public void setAtt1(List<Integer> att1) {
- this.att1 = att1;
- }
+ public List<Integer> getAtt1() {
+ return att1;
+ }
- public int getAtt2() {
- return att2;
- }
+ public void setAtt1(List<Integer> att1) {
+ this.att1 = att1;
+ }
- public void setAtt2(int att2) {
- this.att2 = att2;
- }
+ public int getAtt2() {
+ return att2;
+ }
- public List<Integer> getAtt3() {
- return att3;
- }
+ public void setAtt2(int att2) {
+ this.att2 = att2;
+ }
- public void setAtt3(List<Integer> att3) {
- this.att3 = att3;
- }
+ public List<Integer> getAtt3() {
+ return att3;
+ }
+
+ public void setAtt3(List<Integer> att3) {
+ this.att3 = att3;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/ruby/Sub2.java b/src/test/java/org/yaml/snakeyaml/ruby/Sub2.java
index d8548f65..cf711248 100644
--- a/src/test/java/org/yaml/snakeyaml/ruby/Sub2.java
+++ b/src/test/java/org/yaml/snakeyaml/ruby/Sub2.java
@@ -1,49 +1,48 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.ruby;
import java.util.List;
public class Sub2 {
- private String att1;
- private List<String> att2;
- private int att3;
- public String getAtt1() {
- return att1;
- }
+ private String att1;
+ private List<String> att2;
+ private int att3;
- public void setAtt1(String att1) {
- this.att1 = att1;
- }
+ public String getAtt1() {
+ return att1;
+ }
- public List<String> getAtt2() {
- return att2;
- }
+ public void setAtt1(String att1) {
+ this.att1 = att1;
+ }
- public void setAtt2(List<String> att2) {
- this.att2 = att2;
- }
+ public List<String> getAtt2() {
+ return att2;
+ }
- public int getAtt3() {
- return att3;
- }
+ public void setAtt2(List<String> att2) {
+ this.att2 = att2;
+ }
- public void setAtt3(int att3) {
- this.att3 = att3;
- }
+ public int getAtt3() {
+ return att3;
+ }
+
+ public void setAtt3(int att3) {
+ this.att3 = att3;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/ruby/TestObject.java b/src/test/java/org/yaml/snakeyaml/ruby/TestObject.java
index 2885d097..f677fc10 100644
--- a/src/test/java/org/yaml/snakeyaml/ruby/TestObject.java
+++ b/src/test/java/org/yaml/snakeyaml/ruby/TestObject.java
@@ -1,37 +1,36 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.ruby;
public class TestObject {
- private Sub1 sub1;
- private Sub2 sub2;
- public Sub1 getSub1() {
- return sub1;
- }
+ private Sub1 sub1;
+ private Sub2 sub2;
- public void setSub1(Sub1 sub1) {
- this.sub1 = sub1;
- }
+ public Sub1 getSub1() {
+ return sub1;
+ }
- public Sub2 getSub2() {
- return sub2;
- }
+ public void setSub1(Sub1 sub1) {
+ this.sub1 = sub1;
+ }
- public void setSub2(Sub2 sub2) {
- this.sub2 = sub2;
- }
+ public Sub2 getSub2() {
+ return sub2;
+ }
+
+ public void setSub2(Sub2 sub2) {
+ this.sub2 = sub2;
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/scanner/ConstantTest.java b/src/test/java/org/yaml/snakeyaml/scanner/ConstantTest.java
index 8a398578..52e6459a 100644
--- a/src/test/java/org/yaml/snakeyaml/scanner/ConstantTest.java
+++ b/src/test/java/org/yaml/snakeyaml/scanner/ConstantTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.scanner;
@@ -19,18 +17,18 @@ import junit.framework.TestCase;
public class ConstantTest extends TestCase {
- public void testHasChar() {
- assertTrue(Constant.LINEBR.has('\n'));
- assertTrue(Constant.LINEBR.has('\u0085'));
- assertFalse(Constant.LINEBR.has(' '));
- }
+ public void testHasChar() {
+ assertTrue(Constant.LINEBR.has('\n'));
+ assertTrue(Constant.LINEBR.has('\u0085'));
+ assertFalse(Constant.LINEBR.has(' '));
+ }
- public void testHasStringChar() {
- assertTrue(Constant.LINEBR.has(' ', " "));
- }
+ public void testHasStringChar() {
+ assertTrue(Constant.LINEBR.has(' ', " "));
+ }
- public void testHas0() {
- assertTrue(Constant.LINEBR.has((char) 0, "\0"));
- }
+ public void testHas0() {
+ assertTrue(Constant.LINEBR.has((char) 0, "\0"));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/scanner/ScannerImplTest.java b/src/test/java/org/yaml/snakeyaml/scanner/ScannerImplTest.java
index 4e194125..77e98d6a 100644
--- a/src/test/java/org/yaml/snakeyaml/scanner/ScannerImplTest.java
+++ b/src/test/java/org/yaml/snakeyaml/scanner/ScannerImplTest.java
@@ -1,24 +1,21 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.scanner;
import java.util.LinkedList;
-
import junit.framework.TestCase;
-
+import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.error.Mark;
import org.yaml.snakeyaml.reader.StreamReader;
@@ -33,38 +30,36 @@ import org.yaml.snakeyaml.tokens.ValueToken;
public class ScannerImplTest extends TestCase {
- public void testGetToken() {
- String data = "string: abcd";
- StreamReader reader = new StreamReader(data);
- Scanner scanner = new ScannerImpl(reader);
- Mark dummy = new Mark("dummy", 0, 0, 0, "", 0);
- LinkedList<Token> etalonTokens = new LinkedList<Token>();
- etalonTokens.add(new StreamStartToken(dummy, dummy));
- etalonTokens.add(new BlockMappingStartToken(dummy, dummy));
- etalonTokens.add(new KeyToken(dummy, dummy));
- etalonTokens.add(new ScalarToken("string", true, dummy, dummy, (char) 0));
- etalonTokens.add(new ValueToken(dummy, dummy));
- etalonTokens.add(new ScalarToken("abcd", true, dummy, dummy, (char) 0));
- etalonTokens.add(new BlockEndToken(dummy, dummy));
- etalonTokens.add(new StreamEndToken(dummy, dummy));
- while (!etalonTokens.isEmpty() && scanner.checkToken(etalonTokens.get(0).getTokenId())) {
- assertEquals(etalonTokens.removeFirst(), scanner.getToken());
- }
- assertFalse("Must contain no more tokens: " + scanner.getToken(),
- scanner.checkToken(new Token.ID[0]));
+ public void testGetToken() {
+ String data = "string: abcd";
+ StreamReader reader = new StreamReader(data);
+ Scanner scanner = new ScannerImpl(reader);
+ Mark dummy = new Mark("dummy", 0, 0, 0, "".toCharArray(), 0);
+ LinkedList<Token> etalonTokens = new LinkedList<Token>();
+ etalonTokens.add(new StreamStartToken(dummy, dummy));
+ etalonTokens.add(new BlockMappingStartToken(dummy, dummy));
+ etalonTokens.add(new KeyToken(dummy, dummy));
+ etalonTokens
+ .add(new ScalarToken("string", true, dummy, dummy, DumperOptions.ScalarStyle.PLAIN));
+ etalonTokens.add(new ValueToken(dummy, dummy));
+ etalonTokens.add(new ScalarToken("abcd", true, dummy, dummy, DumperOptions.ScalarStyle.PLAIN));
+ etalonTokens.add(new BlockEndToken(dummy, dummy));
+ etalonTokens.add(new StreamEndToken(dummy, dummy));
+ while (!etalonTokens.isEmpty() && scanner.checkToken(etalonTokens.get(0).getTokenId())) {
+ assertEquals(etalonTokens.removeFirst().getTokenId(), scanner.getToken().getTokenId());
}
+ assertFalse("Must contain no more tokens.", scanner.checkToken());
+ }
- public void testWrongTab() {
- Yaml yaml = new Yaml();
- try {
- yaml.load("\t data: 1");
- fail("TAB cannot start a token.");
- } catch (Exception e) {
- assertEquals(
- "while scanning for the next token\n"
- + "found character '\\t(TAB)' that cannot start any token. (Do not use \\t(TAB) for indentation)\n"
- + " in 'string', line 1, column 1:\n" + " \t data: 1\n" + " ^\n",
- e.getMessage());
- }
+ public void testWrongTab() {
+ Yaml yaml = new Yaml();
+ try {
+ yaml.load("\t data: 1");
+ fail("TAB cannot start a token.");
+ } catch (Exception e) {
+ assertEquals("while scanning for the next token\n"
+ + "found character '\\t(TAB)' that cannot start any token. (Do not use \\t(TAB) for indentation)\n"
+ + " in 'string', line 1, column 1:\n" + " \t data: 1\n" + " ^\n", e.getMessage());
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/scanner/SimpleKeyTest.java b/src/test/java/org/yaml/snakeyaml/scanner/SimpleKeyTest.java
index 8c577f3d..5d9c064a 100644
--- a/src/test/java/org/yaml/snakeyaml/scanner/SimpleKeyTest.java
+++ b/src/test/java/org/yaml/snakeyaml/scanner/SimpleKeyTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.scanner;
@@ -19,8 +17,8 @@ import junit.framework.TestCase;
public class SimpleKeyTest extends TestCase {
- public void testToString() {
- SimpleKey key = new SimpleKey(1, false, 5, 3, 2, null);
- assertTrue(key.toString().contains("SimpleKey"));
- }
+ public void testToString() {
+ SimpleKey key = new SimpleKey(1, false, 5, 3, 2, null);
+ assertTrue(key.toString().contains("SimpleKey"));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/serialization/TransientValuesTest.java b/src/test/java/org/yaml/snakeyaml/serialization/TransientValuesTest.java
new file mode 100644
index 00000000..2bd3e80b
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/serialization/TransientValuesTest.java
@@ -0,0 +1,83 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.serialization;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.beans.Transient;
+import org.junit.Test;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.constructor.Constructor;
+
+public class TransientValuesTest {
+
+ // This test expects that transient fields and properties do not get (de)serialized,
+ // while non-transient fields and properties do get (de)serialized.
+ @Test
+ public void testDumpTransientFieldsAndProperties() throws Exception {
+ ClassWithTransientFields entity = new ClassWithTransientFields();
+ entity.setNonTransientProperty("alpha");
+ entity.setTransientProperty("beta");
+ entity.transientField = "gamma";
+ entity.nonTransientField = "delta";
+
+ Yaml yaml = new Yaml();
+ String dumpedInstance = yaml.dump(entity);
+ yaml = new Yaml(new Constructor(ClassWithTransientFields.class.getName()));
+ ClassWithTransientFields deserializedEntity = yaml.load(dumpedInstance);
+
+ assertTrue(dumpedInstance.contains("alpha"));
+ assertTrue(dumpedInstance.contains("delta"));
+ assertFalse(dumpedInstance.contains("gamma"));
+ assertFalse(dumpedInstance.contains("beta"));
+
+ assertEquals("delta", deserializedEntity.nonTransientField);
+ assertEquals("alpha", deserializedEntity.getNonTransientProperty());
+ assertNull(deserializedEntity.transientField);
+ assertNull(deserializedEntity.getTransientProperty());
+
+ }
+
+ public static class ClassWithTransientFields {
+
+ public String nonTransientField;
+ public transient String transientField;
+
+ private String nonTransientProperty;
+ private String transientProperty;
+
+ public String getNonTransientProperty() {
+ return nonTransientProperty;
+ }
+
+ @Transient
+ public String getTransientProperty() {
+ return transientProperty;
+ }
+
+ public void setNonTransientProperty(String nonTransientProperty) {
+ this.nonTransientProperty = nonTransientProperty;
+ }
+
+ @Transient
+ public void setTransientProperty(String transientProperty) {
+ this.transientProperty = transientProperty;
+ }
+
+ }
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/serializer/AnchorGeneratorTest.java b/src/test/java/org/yaml/snakeyaml/serializer/AnchorGeneratorTest.java
index 82c04fba..59e0c631 100644
--- a/src/test/java/org/yaml/snakeyaml/serializer/AnchorGeneratorTest.java
+++ b/src/test/java/org/yaml/snakeyaml/serializer/AnchorGeneratorTest.java
@@ -1,68 +1,61 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.serializer;
+import java.util.ArrayList;
+import java.util.List;
import junit.framework.TestCase;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.nodes.Node;
import org.yaml.snakeyaml.nodes.Tag;
-import java.util.ArrayList;
-import java.util.List;
-
public class AnchorGeneratorTest extends TestCase {
- public void testNext() {
- AnchorGenerator generator = new NumberAnchorGenerator(0);
- assertEquals("id001", generator.nextAnchor(null));
- assertEquals("id002", generator.nextAnchor(null));
+ public void testNext() {
+ AnchorGenerator generator = new NumberAnchorGenerator(0);
+ assertEquals("id001", generator.nextAnchor(null));
+ assertEquals("id002", generator.nextAnchor(null));
+ }
+
+ public void testCustomGenerator() {
+ List<Object> list = new ArrayList<Object>();
+ list.add("data123");
+ list.add(list);
+ Yaml yaml1 = new Yaml();
+ String output = yaml1.dump(list);
+ assertEquals("&id001\n" + "- data123\n" + "- *id001\n", output);
+
+ DumperOptions options = new DumperOptions();
+ Yaml yaml2 = new Yaml(options);
+ options.setAnchorGenerator(new Gener(3));
+ String output2 = yaml2.dump(list);
+ assertEquals("&list-id004\n" + "- data123\n" + "- *list-id004\n", output2);
+ }
+
+ class Gener extends NumberAnchorGenerator {
+
+ public Gener(int lastAnchorId) {
+ super(lastAnchorId);
}
- public void testCustomGenerator() {
- List<Object> list = new ArrayList<Object>();
- list.add("data123");
- list.add(list);
- Yaml yaml1 = new Yaml();
- String output = yaml1.dump(list);
- assertEquals("&id001\n" +
- "- data123\n" +
- "- *id001\n", output);
-
-
- DumperOptions options = new DumperOptions();
- Yaml yaml2 = new Yaml(options);
- options.setAnchorGenerator(new Gener(3));
- String output2 = yaml2.dump(list);
- assertEquals("&list-id004\n" +
- "- data123\n" +
- "- *list-id004\n", output2);
- }
-
- class Gener extends NumberAnchorGenerator {
-
- public Gener(int lastAnchorId) {
- super(lastAnchorId);
- }
-
- public String nextAnchor(Node node) {
- if (node.getTag() == Tag.SEQ)
- return "list-" + super.nextAnchor(node);
- else
- return super.nextAnchor(node);
- }
+ public String nextAnchor(Node node) {
+ if (node.getTag() == Tag.SEQ) {
+ return "list-" + super.nextAnchor(node);
+ } else {
+ return super.nextAnchor(node);
+ }
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/serializer/SerializerTest.java b/src/test/java/org/yaml/snakeyaml/serializer/SerializerTest.java
index 69eaca49..a4008248 100644
--- a/src/test/java/org/yaml/snakeyaml/serializer/SerializerTest.java
+++ b/src/test/java/org/yaml/snakeyaml/serializer/SerializerTest.java
@@ -1,26 +1,22 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.serializer;
import java.io.IOException;
import java.io.StringWriter;
import java.text.NumberFormat;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.emitter.Emitter;
import org.yaml.snakeyaml.nodes.ScalarNode;
@@ -28,75 +24,78 @@ import org.yaml.snakeyaml.nodes.Tag;
import org.yaml.snakeyaml.resolver.Resolver;
public class SerializerTest extends TestCase {
- private Serializer serializer;
- @Override
- protected void setUp() {
- DumperOptions config = new DumperOptions();
- StringWriter writer = new StringWriter();
- serializer = new Serializer(new Emitter(writer, config), new Resolver(), config, null);
- }
+ private Serializer serializer;
- public void testSerializerIsAlreadyOpened() throws IOException {
- serializer.open();
- try {
- serializer.open();
- fail();
- } catch (RuntimeException e) {
- assertEquals("serializer is already opened", e.getMessage());
- }
- }
+ @Override
+ protected void setUp() {
+ DumperOptions config = new DumperOptions();
+ StringWriter writer = new StringWriter();
+ serializer = new Serializer(new Emitter(writer, config), new Resolver(), config, null);
+ }
- public void testSerializerIsClosed1() throws IOException {
- serializer.open();
- serializer.close();
- try {
- serializer.open();
- fail();
- } catch (RuntimeException e) {
- assertEquals("serializer is closed", e.getMessage());
- }
+ public void testSerializerIsAlreadyOpened() throws IOException {
+ serializer.open();
+ try {
+ serializer.open();
+ fail();
+ } catch (RuntimeException e) {
+ assertEquals("serializer is already opened", e.getMessage());
}
+ }
- public void testSerializerIsClosed2() throws IOException {
- serializer.open();
- serializer.close();
- try {
- serializer.serialize(new ScalarNode(new Tag("!foo"), "bar", null, null, (char) 0));
- fail();
- } catch (RuntimeException e) {
- assertEquals("serializer is closed", e.getMessage());
- }
+ public void testSerializerIsClosed1() throws IOException {
+ serializer.open();
+ serializer.close();
+ try {
+ serializer.open();
+ fail();
+ } catch (RuntimeException e) {
+ assertEquals("serializer is closed", e.getMessage());
}
+ }
- public void testSerializerIsClosed3() throws IOException {
- serializer.open();
- serializer.close();
- serializer.close();// no problem to close twice
+ public void testSerializerIsClosed2() throws IOException {
+ serializer.open();
+ serializer.close();
+ try {
+ serializer.serialize(
+ new ScalarNode(new Tag("!foo"), "bar", null, null, DumperOptions.ScalarStyle.PLAIN));
+ fail();
+ } catch (RuntimeException e) {
+ assertEquals("serializer is closed", e.getMessage());
}
+ }
- public void testSerializerIsNotOpened1() throws IOException {
- try {
- serializer.close();
- fail();
- } catch (RuntimeException e) {
- assertEquals("serializer is not opened", e.getMessage());
- }
- }
+ public void testSerializerIsClosed3() throws IOException {
+ serializer.open();
+ serializer.close();
+ serializer.close();// no problem to close twice
+ }
- public void testSerializerIsNotOpened2() throws IOException {
- try {
- serializer.serialize(new ScalarNode(new Tag("!foo"), "bar", null, null, (char) 0));
- fail();
- } catch (RuntimeException e) {
- assertEquals("serializer is not opened", e.getMessage());
- }
+ public void testSerializerIsNotOpened1() throws IOException {
+ try {
+ serializer.close();
+ fail();
+ } catch (RuntimeException e) {
+ assertEquals("serializer is not opened", e.getMessage());
}
+ }
- public void testGenerateAnchor() {
- NumberFormat format = NumberFormat.getNumberInstance();
- format.setMinimumIntegerDigits(3);
- String anchor = format.format(3L);
- assertEquals("003", anchor);
+ public void testSerializerIsNotOpened2() throws IOException {
+ try {
+ serializer.serialize(
+ new ScalarNode(new Tag("!foo"), "bar", null, null, DumperOptions.ScalarStyle.PLAIN));
+ fail();
+ } catch (RuntimeException e) {
+ assertEquals("serializer is not opened", e.getMessage());
}
+ }
+
+ public void testGenerateAnchor() {
+ NumberFormat format = NumberFormat.getNumberInstance();
+ format.setMinimumIntegerDigits(3);
+ String anchor = format.format(3L);
+ assertEquals("003", anchor);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/stress/ParallelTest.java b/src/test/java/org/yaml/snakeyaml/stress/ParallelTest.java
index 3bae53f0..e9fa4346 100644
--- a/src/test/java/org/yaml/snakeyaml/stress/ParallelTest.java
+++ b/src/test/java/org/yaml/snakeyaml/stress/ParallelTest.java
@@ -1,22 +1,19 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.stress;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Invoice;
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
@@ -25,47 +22,49 @@ import org.yaml.snakeyaml.Yaml;
* Test that Yaml instances are independent and can be used in multiple threads.
*/
public class ParallelTest extends TestCase {
- private int progress = 0;
- private int MAX = 5;
- public void testPerfomance() {
- String doc = Util.getLocalResource("specification/example2_27.yaml");
- for (int i = 0; i < MAX; i++) {
- Worker worker = new Worker(i, doc);
- Thread thread = new Thread(worker);
- thread.start();
- }
- while (progress < MAX - 1) {
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- fail(e.getMessage());
- }
- }
+ private int progress = 0;
+ private final int MAX = 5;
+
+ public void testPerfomance() {
+ String doc = Util.getLocalResource("specification/example2_27.yaml");
+ for (int i = 0; i < MAX; i++) {
+ Worker worker = new Worker(i, doc);
+ Thread thread = new Thread(worker);
+ thread.start();
+ }
+ while (progress < MAX - 1) {
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ fail(e.getMessage());
+ }
}
+ }
- private class Worker implements Runnable {
- private int id;
- private String doc;
+ private class Worker implements Runnable {
- public Worker(int id, String doc) {
- this.id = id;
- this.doc = doc;
- }
+ private final int id;
+ private final String doc;
+
+ public Worker(int id, String doc) {
+ this.id = id;
+ this.doc = doc;
+ }
- public void run() {
- System.out.println("Started: " + id);
- Yaml loader = new Yaml();
- long time1 = System.nanoTime();
- int cycles = 200;
- for (int i = 0; i < cycles; i++) {
- Invoice invoice = loader.loadAs(doc, Invoice.class);
- assertNotNull(invoice);
- }
- long time2 = System.nanoTime();
- float duration = ((time2 - time1) / 1000000) / (float) cycles;
- System.out.println("Duration of " + id + " was " + duration + " ms/load.");
- progress++;
- }
+ public void run() {
+ System.out.println("Started: " + id);
+ Yaml loader = new Yaml();
+ long time1 = System.nanoTime();
+ int cycles = 200;
+ for (int i = 0; i < cycles; i++) {
+ Invoice invoice = loader.loadAs(doc, Invoice.class);
+ assertNotNull(invoice);
+ }
+ long time2 = System.nanoTime();
+ float duration = ((time2 - time1) / 1000000) / (float) cycles;
+ System.out.println("Duration of " + id + " was " + duration + " ms/load.");
+ progress++;
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/stress/StressEmitterTest.java b/src/test/java/org/yaml/snakeyaml/stress/StressEmitterTest.java
index 5185e020..1699d7e1 100644
--- a/src/test/java/org/yaml/snakeyaml/stress/StressEmitterTest.java
+++ b/src/test/java/org/yaml/snakeyaml/stress/StressEmitterTest.java
@@ -1,80 +1,77 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.stress;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
-
import org.yaml.snakeyaml.Invoice;
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
public class StressEmitterTest extends TestCase {
- public static void main(String args[]) {
- junit.textui.TestRunner.run(suite());
- }
+ public static void main(String[] args) {
+ junit.textui.TestRunner.run(suite());
+ }
- public static Test suite() {
- return new TestSuite(StressEmitterTest.class);
- }
+ public static Test suite() {
+ return new TestSuite(StressEmitterTest.class);
+ }
- public void testPerformance() {
- Yaml loader = new Yaml();
- Invoice invoice = loader.loadAs(Util.getLocalResource("specification/example2_27.yaml"),
- Invoice.class);
- Yaml dumper = new Yaml();
- long time1 = System.nanoTime();
- dumper.dumpAsMap(invoice);
- long time2 = System.nanoTime();
- float duration = (time2 - time1) / 1000000;
- System.out.println("\nSingle dump was " + duration + " ms.");
+ public void testPerformance() {
+ Yaml loader = new Yaml();
+ Invoice invoice =
+ loader.loadAs(Util.getLocalResource("specification/example2_27.yaml"), Invoice.class);
+ Yaml dumper = new Yaml();
+ long time1 = System.nanoTime();
+ dumper.dumpAsMap(invoice);
+ long time2 = System.nanoTime();
+ float duration = (time2 - time1) / 1000000;
+ System.out.println("\nSingle dump was " + duration + " ms.");
- int[] range = new int[] { 1000, 2000 /* , 8000 */};
- System.out.println("\nOne instance.");
- for (int number : range) {
- time1 = System.nanoTime();
- for (int i = 0; i < number; i++) {
- dumper.dump(invoice);
- }
- time2 = System.nanoTime();
- duration = ((time2 - time1) / 1000000) / (float) number;
- System.out.println("Duration for r=" + number + " was " + duration + " ms/dump.");
- // cobertura may make it very slow
- if (duration > 3) {
- System.err.println("!!!!!! Too long. Expected <1 but was " + duration);
- }
- }
+ int[] range = new int[] {1000, 2000 /* , 8000 */};
+ System.out.println("\nOne instance.");
+ for (int number : range) {
+ time1 = System.nanoTime();
+ for (int i = 0; i < number; i++) {
+ dumper.dump(invoice);
+ }
+ time2 = System.nanoTime();
+ duration = ((time2 - time1) / 1000000) / (float) number;
+ System.out.println("Duration for r=" + number + " was " + duration + " ms/dump.");
+ // cobertura may make it very slow
+ if (duration > 3) {
+ System.err.println("!!!!!! Too long. Expected <1 but was " + duration);
+ }
+ }
- System.out.println("\nMany instances.");
- for (int number : range) {
- time1 = System.nanoTime();
- for (int i = 0; i < number; i++) {
- dumper = new Yaml();
- dumper.dumpAsMap(invoice);
- }
- time2 = System.nanoTime();
- duration = ((time2 - time1) / 1000000) / (float) number;
- System.out.println("Duration for r=" + number + " was " + duration + " ms/dump.");
- // cobertura may make it very slow
- if (duration > 3) {
- System.err.println("!!!!!! Too long. Expected <1 but was " + duration);
- }
- // assertTrue("duration=" + duration, duration < 3);
- }
+ System.out.println("\nMany instances.");
+ for (int number : range) {
+ time1 = System.nanoTime();
+ for (int i = 0; i < number; i++) {
+ dumper = new Yaml();
+ dumper.dumpAsMap(invoice);
+ }
+ time2 = System.nanoTime();
+ duration = ((time2 - time1) / 1000000) / (float) number;
+ System.out.println("Duration for r=" + number + " was " + duration + " ms/dump.");
+ // cobertura may make it very slow
+ if (duration > 3) {
+ System.err.println("!!!!!! Too long. Expected <1 but was " + duration);
+ }
+ // assertTrue("duration=" + duration, duration < 3);
}
-} \ No newline at end of file
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/stress/StressTest.java b/src/test/java/org/yaml/snakeyaml/stress/StressTest.java
index 299d1a39..23f6688b 100644
--- a/src/test/java/org/yaml/snakeyaml/stress/StressTest.java
+++ b/src/test/java/org/yaml/snakeyaml/stress/StressTest.java
@@ -1,91 +1,89 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.stress;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
-
import org.yaml.snakeyaml.Invoice;
import org.yaml.snakeyaml.Util;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.Constructor;
public class StressTest extends TestCase {
- String doc;
- public static void main(String args[]) {
- junit.textui.TestRunner.run(suite());
- }
+ String doc;
- public static Test suite() {
- return new TestSuite(StressTest.class);
- }
+ public static void main(String[] args) {
+ junit.textui.TestRunner.run(suite());
+ }
- public void setUp() {
- doc = Util.getLocalResource("specification/example2_27.yaml");
- }
+ public static Test suite() {
+ return new TestSuite(StressTest.class);
+ }
+
+ public void setUp() {
+ doc = Util.getLocalResource("specification/example2_27.yaml");
+ }
- public void testPerformance() {
- long time1 = System.nanoTime();
- new Yaml(new Constructor(Invoice.class));
- long time2 = System.nanoTime();
- float duration = (time2 - time1) / 1000000;
- System.out.println("Init was " + duration + " ms.");
+ public void testPerformance() {
+ long time1 = System.nanoTime();
+ new Yaml(new Constructor(Invoice.class));
+ long time2 = System.nanoTime();
+ float duration = (time2 - time1) / 1000000;
+ System.out.println("Init was " + duration + " ms.");
- Yaml loader = new Yaml();
- time1 = System.nanoTime();
+ Yaml loader = new Yaml();
+ time1 = System.nanoTime();
+ loader.loadAs(doc, Invoice.class);
+ time2 = System.nanoTime();
+ duration = (time2 - time1) / 1000000;
+ System.out.println("\nSingle load was " + duration + " ms.");
+
+ loader = new Yaml();
+ int[] range = new int[] {1000, 2000 /* , 4000, 8000 */};
+ System.out.println("\nOne instance.");
+ for (int number : range) {
+ time1 = System.nanoTime();
+ for (int i = 0; i < number; i++) {
loader.loadAs(doc, Invoice.class);
- time2 = System.nanoTime();
- duration = (time2 - time1) / 1000000;
- System.out.println("\nSingle load was " + duration + " ms.");
+ }
+ time2 = System.nanoTime();
+ duration = ((time2 - time1) / 1000000) / (float) number;
+ System.out.println("Duration for r=" + number + " was " + duration + " ms/load.");
+ // cobertura may make it very slow
+ if (duration > 3) {
+ System.err.println("!!!!!! Too long. Expected <1 but was " + duration);
+ }
+ // assertTrue("duration=" + duration, duration < 3);
+ }
+ System.out.println("\nMany instances.");
+ for (int number : range) {
+ time1 = System.nanoTime();
+ for (int i = 0; i < number; i++) {
loader = new Yaml();
- int[] range = new int[] { 1000, 2000 /* , 4000, 8000 */};
- System.out.println("\nOne instance.");
- for (int number : range) {
- time1 = System.nanoTime();
- for (int i = 0; i < number; i++) {
- loader.loadAs(doc, Invoice.class);
- }
- time2 = System.nanoTime();
- duration = ((time2 - time1) / 1000000) / (float) number;
- System.out.println("Duration for r=" + number + " was " + duration + " ms/load.");
- // cobertura may make it very slow
- if (duration > 3) {
- System.err.println("!!!!!! Too long. Expected <1 but was " + duration);
- }
- // assertTrue("duration=" + duration, duration < 3);
- }
-
- System.out.println("\nMany instances.");
- for (int number : range) {
- time1 = System.nanoTime();
- for (int i = 0; i < number; i++) {
- loader = new Yaml();
- loader.loadAs(doc, Invoice.class);
- }
- time2 = System.nanoTime();
- duration = ((time2 - time1) / 1000000) / (float) number;
- System.out.println("Duration for r=" + number + " was " + duration + " ms/load.");
- // cobertura may make it very slow
- if (duration > 3) {
- System.err.println("!!!!!! Too long. Expected <1 but was " + duration);
- }
- // assertTrue("duration=" + duration, duration < 3);
- }
+ loader.loadAs(doc, Invoice.class);
+ }
+ time2 = System.nanoTime();
+ duration = ((time2 - time1) / 1000000) / (float) number;
+ System.out.println("Duration for r=" + number + " was " + duration + " ms/load.");
+ // cobertura may make it very slow
+ if (duration > 3) {
+ System.err.println("!!!!!! Too long. Expected <1 but was " + duration);
+ }
+ // assertTrue("duration=" + duration, duration < 3);
}
-} \ No newline at end of file
+ }
+}
diff --git a/src/test/java/org/yaml/snakeyaml/tokens/AliasTokenTest.java b/src/test/java/org/yaml/snakeyaml/tokens/AliasTokenTest.java
index da0fd421..65f59993 100644
--- a/src/test/java/org/yaml/snakeyaml/tokens/AliasTokenTest.java
+++ b/src/test/java/org/yaml/snakeyaml/tokens/AliasTokenTest.java
@@ -1,42 +1,35 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.tokens;
-import junit.framework.TestCase;
+import static org.junit.Assert.assertNotEquals;
+import junit.framework.TestCase;
import org.yaml.snakeyaml.error.Mark;
import org.yaml.snakeyaml.tokens.Token.ID;
public class AliasTokenTest extends TestCase {
- public void testEquals() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- AliasToken token = new AliasToken("*id123", mark, mark);
- assertFalse(token.equals(mark));
- }
-
- public void testGetArguments() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- AliasToken token = new AliasToken("*id123", mark, mark);
- assertEquals("value=*id123", token.getArguments());
- }
+ public void testEquals() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ AliasToken token = new AliasToken("*id123", mark, mark);
+ assertNotEquals(token, mark);
+ }
- public void testGetTokenId() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- AliasToken token = new AliasToken("&id123", mark, mark);
- assertEquals(ID.Alias, token.getTokenId());
- }
+ public void testGetTokenId() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ AliasToken token = new AliasToken("&id123", mark, mark);
+ assertEquals(ID.Alias, token.getTokenId());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/tokens/AnchorTokenTest.java b/src/test/java/org/yaml/snakeyaml/tokens/AnchorTokenTest.java
index 472f7d23..357707cb 100644
--- a/src/test/java/org/yaml/snakeyaml/tokens/AnchorTokenTest.java
+++ b/src/test/java/org/yaml/snakeyaml/tokens/AnchorTokenTest.java
@@ -1,36 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.tokens;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.error.Mark;
import org.yaml.snakeyaml.tokens.Token.ID;
public class AnchorTokenTest extends TestCase {
- public void testGetArguments() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- AnchorToken token = new AnchorToken("&id123", mark, mark);
- assertEquals("value=&id123", token.getArguments());
- }
-
- public void testGetTokenId() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- AnchorToken token = new AnchorToken("&id123", mark, mark);
- assertEquals(ID.Anchor, token.getTokenId());
- }
+ public void testGetTokenId() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ AnchorToken token = new AnchorToken("&id123", mark, mark);
+ assertEquals(ID.Anchor, token.getTokenId());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/tokens/BlockEndTokenTest.java b/src/test/java/org/yaml/snakeyaml/tokens/BlockEndTokenTest.java
index 3c96859d..8030e92b 100644
--- a/src/test/java/org/yaml/snakeyaml/tokens/BlockEndTokenTest.java
+++ b/src/test/java/org/yaml/snakeyaml/tokens/BlockEndTokenTest.java
@@ -1,36 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.tokens;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.error.Mark;
import org.yaml.snakeyaml.tokens.Token.ID;
public class BlockEndTokenTest extends TestCase {
- public void testGetArguments() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- BlockEndToken token = new BlockEndToken(mark, mark);
- assertEquals("", token.getArguments());
- }
-
- public void testGetTokenId() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- BlockEndToken token = new BlockEndToken(mark, mark);
- assertEquals(ID.BlockEnd, token.getTokenId());
- }
+ public void testGetTokenId() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ BlockEndToken token = new BlockEndToken(mark, mark);
+ assertEquals(ID.BlockEnd, token.getTokenId());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/tokens/BlockEntryTokenTest.java b/src/test/java/org/yaml/snakeyaml/tokens/BlockEntryTokenTest.java
index 651a2309..a7a8485a 100644
--- a/src/test/java/org/yaml/snakeyaml/tokens/BlockEntryTokenTest.java
+++ b/src/test/java/org/yaml/snakeyaml/tokens/BlockEntryTokenTest.java
@@ -1,31 +1,28 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.tokens;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.error.Mark;
import org.yaml.snakeyaml.tokens.Token.ID;
public class BlockEntryTokenTest extends TestCase {
- public void testGetTokenId() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- BlockEntryToken token = new BlockEntryToken(mark, mark);
- assertEquals(ID.BlockEntry, token.getTokenId());
- }
+ public void testGetTokenId() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ BlockEntryToken token = new BlockEntryToken(mark, mark);
+ assertEquals(ID.BlockEntry, token.getTokenId());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/tokens/BlockSequenceStartTokenTest.java b/src/test/java/org/yaml/snakeyaml/tokens/BlockSequenceStartTokenTest.java
index 69203d0a..bdd0c667 100644
--- a/src/test/java/org/yaml/snakeyaml/tokens/BlockSequenceStartTokenTest.java
+++ b/src/test/java/org/yaml/snakeyaml/tokens/BlockSequenceStartTokenTest.java
@@ -1,30 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.tokens;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.error.Mark;
import org.yaml.snakeyaml.tokens.Token.ID;
public class BlockSequenceStartTokenTest extends TestCase {
- public void testGetTokenId() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- BlockSequenceStartToken token = new BlockSequenceStartToken(mark, mark);
- assertEquals(ID.BlockSequenceStart, token.getTokenId());
- }
+ public void testGetTokenId() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ BlockSequenceStartToken token = new BlockSequenceStartToken(mark, mark);
+ assertEquals(ID.BlockSequenceStart, token.getTokenId());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/tokens/DirectiveTokenTest.java b/src/test/java/org/yaml/snakeyaml/tokens/DirectiveTokenTest.java
index f1e8ff15..4029c66d 100644
--- a/src/test/java/org/yaml/snakeyaml/tokens/DirectiveTokenTest.java
+++ b/src/test/java/org/yaml/snakeyaml/tokens/DirectiveTokenTest.java
@@ -1,69 +1,41 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.tokens;
import java.util.ArrayList;
import java.util.List;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.error.Mark;
import org.yaml.snakeyaml.tokens.Token.ID;
public class DirectiveTokenTest extends TestCase {
- public void testGetArguments() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- DirectiveToken<Integer> token = new DirectiveToken<Integer>("YAML", null, mark, mark);
- assertEquals("name=YAML", token.getArguments());
+ public void testInvalidList() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ List<Integer> list = new ArrayList<Integer>();
+ list.add(Integer.valueOf(1));
+ try {
+ new DirectiveToken<Integer>("YAML", list, mark, mark);
+ fail("List must have 2 values.");
+ } catch (Exception e) {
+ assertEquals("Two strings must be provided instead of 1", e.getMessage());
}
+ }
- public void testInvalidList() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- List<Integer> list = new ArrayList<Integer>();
- list.add(new Integer(1));
- try {
- new DirectiveToken<Integer>("YAML", list, mark, mark);
- fail("List must have 2 values.");
- } catch (Exception e) {
- assertEquals("Two strings must be provided instead of 1", e.getMessage());
- }
- }
-
- public void testTag() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- List<String> list = new ArrayList<String>();
- list.add("!foo");
- list.add("!bar");
- DirectiveToken<String> token = new DirectiveToken<String>("TAG", list, mark, mark);
- assertEquals("name=TAG, value=[!foo, !bar]", token.getArguments());
- }
-
- public void testList() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- List<Integer> list = new ArrayList<Integer>();
- list.add(new Integer(1));
- list.add(new Integer(1));
- DirectiveToken<Integer> token = new DirectiveToken<Integer>("YAML", list, mark, mark);
- assertEquals("name=YAML, value=[1, 1]", token.getArguments());
- }
-
- public void testGetTokenId() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- DirectiveToken<Integer> token = new DirectiveToken<Integer>("YAML", null, mark, mark);
- assertEquals(ID.Directive, token.getTokenId());
- }
+ public void testGetTokenId() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ DirectiveToken<Integer> token = new DirectiveToken<Integer>("YAML", null, mark, mark);
+ assertEquals(ID.Directive, token.getTokenId());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/tokens/DocumentEndTokenTest.java b/src/test/java/org/yaml/snakeyaml/tokens/DocumentEndTokenTest.java
index a6955bac..1b97ff7e 100644
--- a/src/test/java/org/yaml/snakeyaml/tokens/DocumentEndTokenTest.java
+++ b/src/test/java/org/yaml/snakeyaml/tokens/DocumentEndTokenTest.java
@@ -1,30 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.tokens;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.error.Mark;
import org.yaml.snakeyaml.tokens.Token.ID;
public class DocumentEndTokenTest extends TestCase {
- public void testGetTokenId() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- DocumentEndToken token = new DocumentEndToken(mark, mark);
- assertEquals(ID.DocumentEnd, token.getTokenId());
- }
+ public void testGetTokenId() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ DocumentEndToken token = new DocumentEndToken(mark, mark);
+ assertEquals(ID.DocumentEnd, token.getTokenId());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/tokens/DocumentStartTokenTest.java b/src/test/java/org/yaml/snakeyaml/tokens/DocumentStartTokenTest.java
index f7fa01e8..c5d33e59 100644
--- a/src/test/java/org/yaml/snakeyaml/tokens/DocumentStartTokenTest.java
+++ b/src/test/java/org/yaml/snakeyaml/tokens/DocumentStartTokenTest.java
@@ -1,30 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.tokens;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.error.Mark;
import org.yaml.snakeyaml.tokens.Token.ID;
public class DocumentStartTokenTest extends TestCase {
- public void testGetTokenId() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- DocumentStartToken token = new DocumentStartToken(mark, mark);
- assertEquals(ID.DocumentStart, token.getTokenId());
- }
+ public void testGetTokenId() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ DocumentStartToken token = new DocumentStartToken(mark, mark);
+ assertEquals(ID.DocumentStart, token.getTokenId());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/tokens/FlowEntryTokenTest.java b/src/test/java/org/yaml/snakeyaml/tokens/FlowEntryTokenTest.java
index 3293919c..4e81201b 100644
--- a/src/test/java/org/yaml/snakeyaml/tokens/FlowEntryTokenTest.java
+++ b/src/test/java/org/yaml/snakeyaml/tokens/FlowEntryTokenTest.java
@@ -1,30 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.tokens;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.error.Mark;
import org.yaml.snakeyaml.tokens.Token.ID;
public class FlowEntryTokenTest extends TestCase {
- public void testGetTokenId() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- FlowEntryToken token = new FlowEntryToken(mark, mark);
- assertEquals(ID.FlowEntry, token.getTokenId());
- }
+ public void testGetTokenId() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ FlowEntryToken token = new FlowEntryToken(mark, mark);
+ assertEquals(ID.FlowEntry, token.getTokenId());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/tokens/FlowMappingStartTokenTest.java b/src/test/java/org/yaml/snakeyaml/tokens/FlowMappingStartTokenTest.java
index 4548552d..937ef3ba 100644
--- a/src/test/java/org/yaml/snakeyaml/tokens/FlowMappingStartTokenTest.java
+++ b/src/test/java/org/yaml/snakeyaml/tokens/FlowMappingStartTokenTest.java
@@ -1,30 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.tokens;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.error.Mark;
import org.yaml.snakeyaml.tokens.Token.ID;
public class FlowMappingStartTokenTest extends TestCase {
- public void testGetTokenId() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- FlowMappingStartToken token = new FlowMappingStartToken(mark, mark);
- assertEquals(ID.FlowMappingStart, token.getTokenId());
- }
+ public void testGetTokenId() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ FlowMappingStartToken token = new FlowMappingStartToken(mark, mark);
+ assertEquals(ID.FlowMappingStart, token.getTokenId());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/tokens/FlowSequenceStartTokenTest.java b/src/test/java/org/yaml/snakeyaml/tokens/FlowSequenceStartTokenTest.java
index b62e6a89..c2548f28 100644
--- a/src/test/java/org/yaml/snakeyaml/tokens/FlowSequenceStartTokenTest.java
+++ b/src/test/java/org/yaml/snakeyaml/tokens/FlowSequenceStartTokenTest.java
@@ -1,30 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.tokens;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.error.Mark;
import org.yaml.snakeyaml.tokens.Token.ID;
public class FlowSequenceStartTokenTest extends TestCase {
- public void testGetTokenId() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- FlowSequenceStartToken token = new FlowSequenceStartToken(mark, mark);
- assertEquals(ID.FlowSequenceStart, token.getTokenId());
- }
+ public void testGetTokenId() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ FlowSequenceStartToken token = new FlowSequenceStartToken(mark, mark);
+ assertEquals(ID.FlowSequenceStart, token.getTokenId());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/tokens/StreamStartTokenTest.java b/src/test/java/org/yaml/snakeyaml/tokens/StreamStartTokenTest.java
index 8ae19a42..1f02186d 100644
--- a/src/test/java/org/yaml/snakeyaml/tokens/StreamStartTokenTest.java
+++ b/src/test/java/org/yaml/snakeyaml/tokens/StreamStartTokenTest.java
@@ -1,30 +1,27 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.tokens;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.error.Mark;
import org.yaml.snakeyaml.tokens.Token.ID;
public class StreamStartTokenTest extends TestCase {
- public void testGetTokenId() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- StreamStartToken token = new StreamStartToken(mark, mark);
- assertEquals(ID.StreamStart, token.getTokenId());
- }
+ public void testGetTokenId() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ StreamStartToken token = new StreamStartToken(mark, mark);
+ assertEquals(ID.StreamStart, token.getTokenId());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/tokens/TagTokenTest.java b/src/test/java/org/yaml/snakeyaml/tokens/TagTokenTest.java
index 11940884..1c057f44 100644
--- a/src/test/java/org/yaml/snakeyaml/tokens/TagTokenTest.java
+++ b/src/test/java/org/yaml/snakeyaml/tokens/TagTokenTest.java
@@ -1,63 +1,54 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.tokens;
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.error.Mark;
import org.yaml.snakeyaml.error.YAMLException;
import org.yaml.snakeyaml.tokens.Token.ID;
public class TagTokenTest extends TestCase {
- public void testGetArguments() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- TagToken token = new TagToken(new TagTuple("!foo", "!bar"), mark, mark);
- assertEquals("value=[!foo, !bar]", token.getArguments());
+ public void testNoMarks() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ try {
+ new TagToken(new TagTuple("!foo", "!bar"), null, mark);
+ fail("Token without start mark should not be accepted.");
+ } catch (YAMLException e) {
+ assertEquals("Token requires marks.", e.getMessage());
}
-
- public void testNoMarks() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- try {
- new TagToken(new TagTuple("!foo", "!bar"), null, mark);
- fail("Token without start mark should not be accepted.");
- } catch (YAMLException e) {
- assertEquals("Token requires marks.", e.getMessage());
- }
- try {
- new TagToken(new TagTuple("!foo", "!bar"), mark, null);
- fail("Token without end mark should not be accepted.");
- } catch (YAMLException e) {
- assertEquals("Token requires marks.", e.getMessage());
- }
+ try {
+ new TagToken(new TagTuple("!foo", "!bar"), mark, null);
+ fail("Token without end mark should not be accepted.");
+ } catch (YAMLException e) {
+ assertEquals("Token requires marks.", e.getMessage());
}
+ }
- public void testNoTag() {
- try {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- new TagToken(new TagTuple("!foo", null), mark, mark);
- fail("Marks must be provided.");
- } catch (NullPointerException e) {
- assertEquals("Suffix must be provided.", e.getMessage());
- }
+ public void testNoTag() {
+ try {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ new TagToken(new TagTuple("!foo", null), mark, mark);
+ fail("Marks must be provided.");
+ } catch (NullPointerException e) {
+ assertEquals("Suffix must be provided.", e.getMessage());
}
+ }
- public void testGetTokenId() {
- Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.", 0);
- TagToken token = new TagToken(new TagTuple("!foo", "!bar"), mark, mark);
- assertEquals(ID.Tag, token.getTokenId());
- }
+ public void testGetTokenId() {
+ Mark mark = new Mark("test1", 0, 0, 0, "*The first line.\nThe last line.".toCharArray(), 0);
+ TagToken token = new TagToken(new TagTuple("!foo", "!bar"), mark, mark);
+ assertEquals(ID.Tag, token.getTokenId());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/tokens/TokenTest.java b/src/test/java/org/yaml/snakeyaml/tokens/TokenTest.java
new file mode 100644
index 00000000..fa7051bc
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/tokens/TokenTest.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.tokens;
+
+import junit.framework.TestCase;
+
+public class TokenTest extends TestCase {
+
+ public void testTokenID() {
+ assertEquals("<alias>", Token.ID.Alias.toString());
+ assertEquals("<anchor>", Token.ID.Anchor.toString());
+ assertEquals("<block end>", Token.ID.BlockEnd.toString());
+ assertEquals("-", Token.ID.BlockEntry.toString());
+ assertEquals("<block mapping start>", Token.ID.BlockMappingStart.toString());
+ assertEquals("<block sequence start>", Token.ID.BlockSequenceStart.toString());
+ assertEquals("<directive>", Token.ID.Directive.toString());
+ assertEquals("<document end>", Token.ID.DocumentEnd.toString());
+ assertEquals("<document start>", Token.ID.DocumentStart.toString());
+ assertEquals(",", Token.ID.FlowEntry.toString());
+ assertEquals("}", Token.ID.FlowMappingEnd.toString());
+ assertEquals("{", Token.ID.FlowMappingStart.toString());
+ assertEquals("]", Token.ID.FlowSequenceEnd.toString());
+ assertEquals("[", Token.ID.FlowSequenceStart.toString());
+ assertEquals("?", Token.ID.Key.toString());
+ assertEquals("<scalar>", Token.ID.Scalar.toString());
+ assertEquals("<stream end>", Token.ID.StreamEnd.toString());
+ assertEquals("<stream start>", Token.ID.StreamStart.toString());
+ assertEquals("<tag>", Token.ID.Tag.toString());
+ assertEquals(":", Token.ID.Value.toString());
+ assertEquals("<whitespace>", Token.ID.Whitespace.toString());
+ assertEquals("#", Token.ID.Comment.toString());
+ assertEquals("<error>", Token.ID.Error.toString());
+ }
+}
+
diff --git a/src/test/java/org/yaml/snakeyaml/types/AbstractTest.java b/src/test/java/org/yaml/snakeyaml/types/AbstractTest.java
index 91fd03c8..10e8c263 100644
--- a/src/test/java/org/yaml/snakeyaml/types/AbstractTest.java
+++ b/src/test/java/org/yaml/snakeyaml/types/AbstractTest.java
@@ -1,47 +1,44 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.types;
import java.util.Map;
-
import junit.framework.TestCase;
-
import org.yaml.snakeyaml.Yaml;
public abstract class AbstractTest extends TestCase {
- @SuppressWarnings("unchecked")
- protected Map<String, Object> getMap(String data) {
- Yaml yaml = new Yaml();
- Map<String, Object> nativeData = (Map<String, Object>) yaml.load(data);
- return nativeData;
- }
- protected Object load(String data) {
- Yaml yaml = new Yaml();
- Object obj = yaml.load(data);
- return obj;
- }
+ @SuppressWarnings("unchecked")
+ protected Map<String, Object> getMap(String data) {
+ Yaml yaml = new Yaml();
+ Map<String, Object> nativeData = yaml.load(data);
+ return nativeData;
+ }
+
+ protected Object load(String data) {
+ Yaml yaml = new Yaml();
+ Object obj = yaml.load(data);
+ return obj;
+ }
- protected String dump(Object data) {
- Yaml yaml = new Yaml();
- return yaml.dump(data);
- }
+ protected String dump(Object data) {
+ Yaml yaml = new Yaml();
+ return yaml.dump(data);
+ }
- protected Object getMapValue(String data, String key) {
- Map<String, Object> nativeData = getMap(data);
- return nativeData.get(key);
- }
+ protected Object getMapValue(String data, String key) {
+ Map<String, Object> nativeData = getMap(data);
+ return nativeData.get(key);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/types/BinaryTagTest.java b/src/test/java/org/yaml/snakeyaml/types/BinaryTagTest.java
index 82ff9477..803685f9 100644
--- a/src/test/java/org/yaml/snakeyaml/types/BinaryTagTest.java
+++ b/src/test/java/org/yaml/snakeyaml/types/BinaryTagTest.java
@@ -1,76 +1,76 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.types;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
/**
- * @see <a href="http://yaml.org/type/binary.html"></a>
+ * @see <a href="http://yaml.org/type/binary.html">binary</a>
*/
public class BinaryTagTest extends AbstractTest {
- String line1 = "R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5";
- String line2 = "OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+";
- String line3 = "+f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC";
- String line4 = "AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=";
- String content = line1 + line2 + line3 + line4;
- public void testBinary() {
- byte[] binary = (byte[]) getMapValue("canonical: !!binary " + content, "canonical");
- assertEquals((byte) 'G', binary[0]);
- assertEquals((byte) 'I', binary[1]);
- assertEquals((byte) 'F', binary[2]);
- assertEquals((byte) '8', binary[3]);
- assertEquals((byte) '9', binary[4]);
- }
+ String line1 = "R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5";
+ String line2 = "OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+";
+ String line3 = "+f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC";
+ String line4 = "AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs=";
+ String content = line1 + line2 + line3 + line4;
- public void testBinary2() {
- byte[] binary = (byte[]) load("!!binary \"MQ==\"");
- assertEquals(1, binary.length);
- assertEquals((byte) '1', binary[0]);
- }
+ public void testBinary() {
+ byte[] binary = (byte[]) getMapValue("canonical: !!binary " + content, "canonical");
+ assertEquals((byte) 'G', binary[0]);
+ assertEquals((byte) 'I', binary[1]);
+ assertEquals((byte) 'F', binary[2]);
+ assertEquals((byte) '8', binary[3]);
+ assertEquals((byte) '9', binary[4]);
+ }
- public void testBinaryTag() {
- byte[] binary = (byte[]) getMapValue("canonical: !<tag:yaml.org,2002:binary> " + content,
- "canonical");
- assertEquals((byte) 'G', binary[0]);
- assertEquals((byte) 'I', binary[1]);
- assertEquals((byte) 'F', binary[2]);
- assertEquals((byte) '8', binary[3]);
- assertEquals((byte) '9', binary[4]);
- }
+ public void testBinary2() {
+ byte[] binary = (byte[]) load("!!binary \"MQ==\"");
+ assertEquals(1, binary.length);
+ assertEquals((byte) '1', binary[0]);
+ }
- public void testBinaryOut() throws IOException {
- byte[] data = "GIF89\tbi\u0003\u0000nary\n\u001Fimage\n".getBytes("ISO-8859-1");
- Map<String, String> map = new HashMap<String, String>();
- String value = new String(data, "ISO-8859-1");
- map.put("canonical", value);
- String output = dump(map);
- assertEquals("canonical: !!binary |-\n R0lGODkJYmkDAG5hcnkKH2ltYWdlCg==\n", output);
- }
+ public void testBinaryTag() {
+ byte[] binary =
+ (byte[]) getMapValue("canonical: !<tag:yaml.org,2002:binary> " + content, "canonical");
+ assertEquals((byte) 'G', binary[0]);
+ assertEquals((byte) 'I', binary[1]);
+ assertEquals((byte) 'F', binary[2]);
+ assertEquals((byte) '8', binary[3]);
+ assertEquals((byte) '9', binary[4]);
+ }
+
+ public void testBinaryOut() throws IOException {
+ byte[] data = "GIF89\tbi\u0003\u0000nary\n\u001Fimage\n".getBytes(StandardCharsets.ISO_8859_1);
+ Map<String, String> map = new HashMap<String, String>();
+ String value = new String(data, StandardCharsets.ISO_8859_1);
+ map.put("canonical", value);
+ String output = dump(map);
+ assertEquals("canonical: !!binary |-\n R0lGODkJYmkDAG5hcnkKH2ltYWdlCg==\n", output);
+ }
- public void testByteArray() {
- byte[] data = { 8, 14, 15, 10, 126, 32, 65, 65, 65 };
- String output = dump(data);
- assertEquals("!!binary |-\n CA4PCn4gQUFB\n", output);
- byte[] parsed = (byte[]) load(output);
- assertEquals(data.length, parsed.length);
- for (int i = 0; i < data.length; i++) {
- assertEquals(data[i], parsed[i]);
- }
+ public void testByteArray() {
+ byte[] data = {8, 14, 15, 10, 126, 32, 65, 65, 65};
+ String output = dump(data);
+ assertEquals("!!binary |-\n CA4PCn4gQUFB\n", output);
+ byte[] parsed = (byte[]) load(output);
+ assertEquals(data.length, parsed.length);
+ for (int i = 0; i < data.length; i++) {
+ assertEquals(data[i], parsed[i]);
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/types/BoolTagTest.java b/src/test/java/org/yaml/snakeyaml/types/BoolTagTest.java
index 96b2b3a1..d048d488 100644
--- a/src/test/java/org/yaml/snakeyaml/types/BoolTagTest.java
+++ b/src/test/java/org/yaml/snakeyaml/types/BoolTagTest.java
@@ -1,23 +1,20 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.types;
import java.util.HashMap;
import java.util.Map;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.FlowStyle;
import org.yaml.snakeyaml.Yaml;
@@ -27,107 +24,109 @@ import org.yaml.snakeyaml.representer.Represent;
import org.yaml.snakeyaml.representer.Representer;
/**
- * @see <a href="http://yaml.org/type/bool.html"></a>
+ * @see <a href="http://yaml.org/type/bool.html">bool</a>
*/
public class BoolTagTest extends AbstractTest {
- public void testBool() {
- assertEquals(Boolean.TRUE, getMapValue("canonical: true", "canonical"));
- assertEquals(Boolean.FALSE, getMapValue("answer: NO", "answer"));
- assertEquals(Boolean.TRUE, getMapValue("logical: True", "logical"));
- assertEquals(Boolean.TRUE, getMapValue("option: on", "option"));
- }
- public void testBoolCanonical() {
- assertEquals(Boolean.TRUE, getMapValue("canonical: Yes", "canonical"));
- assertEquals(Boolean.TRUE, getMapValue("canonical: yes", "canonical"));
- assertEquals(Boolean.TRUE, getMapValue("canonical: YES", "canonical"));
- assertEquals("yES", getMapValue("canonical: yES", "canonical"));
- assertEquals(Boolean.FALSE, getMapValue("canonical: No", "canonical"));
- assertEquals(Boolean.FALSE, getMapValue("canonical: NO", "canonical"));
- assertEquals(Boolean.FALSE, getMapValue("canonical: no", "canonical"));
- assertEquals(Boolean.FALSE, getMapValue("canonical: off", "canonical"));
- assertEquals(Boolean.FALSE, getMapValue("canonical: Off", "canonical"));
- assertEquals(Boolean.FALSE, getMapValue("canonical: OFF", "canonical"));
- assertEquals(Boolean.TRUE, getMapValue("canonical: ON", "canonical"));
- assertEquals(Boolean.TRUE, getMapValue("canonical: On", "canonical"));
- assertEquals(Boolean.TRUE, getMapValue("canonical: on", "canonical"));
- // it looks like it is against the specification but it is like in
- // PyYAML
- assertEquals("n", getMapValue("canonical: n", "canonical"));
- assertEquals("N", getMapValue("canonical: N", "canonical"));
- assertEquals("y", getMapValue("canonical: y", "canonical"));
- assertEquals("Y", getMapValue("canonical: Y", "canonical"));
- }
+ public void testBool() {
+ assertEquals(Boolean.TRUE, getMapValue("canonical: true", "canonical"));
+ assertEquals(Boolean.FALSE, getMapValue("answer: NO", "answer"));
+ assertEquals(Boolean.TRUE, getMapValue("logical: True", "logical"));
+ assertEquals(Boolean.TRUE, getMapValue("option: on", "option"));
+ }
- public void testBoolShorthand() {
- assertEquals(Boolean.TRUE, getMapValue("boolean: !!bool true", "boolean"));
- }
+ public void testBoolCanonical() {
+ assertEquals(Boolean.TRUE, getMapValue("canonical: Yes", "canonical"));
+ assertEquals(Boolean.TRUE, getMapValue("canonical: yes", "canonical"));
+ assertEquals(Boolean.TRUE, getMapValue("canonical: YES", "canonical"));
+ assertEquals("yES", getMapValue("canonical: yES", "canonical"));
+ assertEquals(Boolean.FALSE, getMapValue("canonical: No", "canonical"));
+ assertEquals(Boolean.FALSE, getMapValue("canonical: NO", "canonical"));
+ assertEquals(Boolean.FALSE, getMapValue("canonical: no", "canonical"));
+ assertEquals(Boolean.FALSE, getMapValue("canonical: off", "canonical"));
+ assertEquals(Boolean.FALSE, getMapValue("canonical: Off", "canonical"));
+ assertEquals(Boolean.FALSE, getMapValue("canonical: OFF", "canonical"));
+ assertEquals(Boolean.TRUE, getMapValue("canonical: ON", "canonical"));
+ assertEquals(Boolean.TRUE, getMapValue("canonical: On", "canonical"));
+ assertEquals(Boolean.TRUE, getMapValue("canonical: on", "canonical"));
+ // it looks like it is against the specification but it is like in
+ // PyYAML
+ assertEquals("n", getMapValue("canonical: n", "canonical"));
+ assertEquals("N", getMapValue("canonical: N", "canonical"));
+ assertEquals("y", getMapValue("canonical: y", "canonical"));
+ assertEquals("Y", getMapValue("canonical: Y", "canonical"));
+ }
- public void testBoolTag() {
- assertEquals(Boolean.TRUE,
- getMapValue("boolean: !<tag:yaml.org,2002:bool> true", "boolean"));
- }
+ public void testBoolShorthand() {
+ assertEquals(Boolean.TRUE, getMapValue("boolean: !!bool true", "boolean"));
+ }
- public void testBoolOut() {
- Map<String, Boolean> map = new HashMap<String, Boolean>();
- map.put("boolean", Boolean.TRUE);
- String output = dump(map);
- assertTrue(output, output.contains("boolean: true"));
- }
+ public void testBoolTag() {
+ assertEquals(Boolean.TRUE, getMapValue("boolean: !<tag:yaml.org,2002:bool> true", "boolean"));
+ }
- public void testBoolOutAsYes() {
- Yaml yaml = new Yaml(new BoolRepresenter("YES"));
- String output = yaml.dump(true);
- assertEquals("YES\n", output);
- }
+ public void testBoolOut() {
+ Map<String, Boolean> map = new HashMap<String, Boolean>();
+ map.put("boolean", Boolean.TRUE);
+ String output = dump(map);
+ assertTrue(output, output.contains("boolean: true"));
+ }
- /**
- * test flow style
- */
- public void testBoolOutAsEmpty2() {
- Yaml yaml = new Yaml(new BoolRepresenter("on"));
- Map<String, Boolean> map = new HashMap<String, Boolean>();
- map.put("aaa", false);
- map.put("bbb", true);
- String output = yaml.dump(map);
- assertEquals("{aaa: false, bbb: on}\n", output);
- }
+ public void testBoolOutAsYes() {
+ Yaml yaml = new Yaml(new BoolRepresenter("YES"));
+ String output = yaml.dump(true);
+ assertEquals("YES\n", output);
+ }
- /**
- * test block style
- */
- public void testBoolOutAsEmpty3() {
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(FlowStyle.BLOCK);
- Yaml yaml = new Yaml(new BoolRepresenter("True"), options);
- Map<String, Boolean> map = new HashMap<String, Boolean>();
- map.put("aaa", false);
- map.put("bbb", true);
- String output = yaml.dump(map);
- assertEquals("aaa: false\nbbb: True\n", output);
- }
+ /**
+ * test flow style
+ */
+ public void testBoolOutAsEmpty2() {
+ Yaml yaml = new Yaml(new BoolRepresenter("on"));
+ Map<String, Boolean> map = new HashMap<String, Boolean>();
+ map.put("aaa", false);
+ map.put("bbb", true);
+ String output = yaml.dump(map);
+ assertEquals("{aaa: false, bbb: on}\n", output);
+ }
- private class BoolRepresenter extends Representer {
- private String value;
+ /**
+ * test block style
+ */
+ public void testBoolOutAsEmpty3() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(new BoolRepresenter("True"), options);
+ Map<String, Boolean> map = new HashMap<String, Boolean>();
+ map.put("aaa", false);
+ map.put("bbb", true);
+ String output = yaml.dump(map);
+ assertEquals("aaa: false\nbbb: True\n", output);
+ }
- public BoolRepresenter(String value) {
- super();
- this.value = value;
- this.representers.put(Boolean.class, new RepresentBool());
- }
+ private class BoolRepresenter extends Representer {
+
+ private final String value;
+
+ public BoolRepresenter(String value) {
+ super();
+ this.value = value;
+ this.representers.put(Boolean.class, new RepresentBool());
+ }
+
+ // possible values are here http://yaml.org/type/bool.html
+ // y, Y, n, N should not be used
+ private class RepresentBool implements Represent {
- // possible values are here http://yaml.org/type/bool.html
- // y, Y, n, N should not be used
- private class RepresentBool implements Represent {
- public Node representData(Object data) {
- String v;
- if (Boolean.TRUE.equals(data)) {
- v = value;
- } else {
- v = "false";
- }
- return representScalar(Tag.BOOL, v);
- }
+ public Node representData(Object data) {
+ String v;
+ if (Boolean.TRUE.equals(data)) {
+ v = value;
+ } else {
+ v = "false";
}
+ return representScalar(Tag.BOOL, v);
+ }
}
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/types/FloatTagTest.java b/src/test/java/org/yaml/snakeyaml/types/FloatTagTest.java
index c517f660..7369e5e7 100644
--- a/src/test/java/org/yaml/snakeyaml/types/FloatTagTest.java
+++ b/src/test/java/org/yaml/snakeyaml/types/FloatTagTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.types;
@@ -19,59 +17,59 @@ import java.util.HashMap;
import java.util.Map;
/**
- * @see <a href="http://yaml.org/type/float.html"></a>
+ * @see <a href="http://yaml.org/type/float.html">float</a>
*/
public class FloatTagTest extends AbstractTest {
- public void testFloat() {
- assertEquals(new Double(6.8523015e+5), getMapValue("canonical: 6.8523015e+5", "canonical"));
- assertEquals(new Double(6.8523015e+5),
- getMapValue("exponentioal: 685.230_15e+03", "exponentioal"));
- assertEquals(new Double(6.8523015e+5), getMapValue("fixed: 685_230.15", "fixed"));
- assertEquals(new Double(6.8523015e+5),
- getMapValue("sexagesimal: 190:20:30.15", "sexagesimal"));
- assertEquals(Double.NEGATIVE_INFINITY,
- getMapValue("negative infinity: -.inf", "negative infinity"));
- assertEquals(Double.NaN, getMapValue("not a number: .NaN", "not a number"));
- }
+ public void testFloat() {
+ assertEquals(Double.valueOf(6.8523015e+5), getMapValue("canonical: 6.8523015e+5", "canonical"));
+ assertEquals(Double.valueOf(6.8523015e+5),
+ getMapValue("exponentioal: 685.230_15e+03", "exponentioal"));
+ assertEquals(Double.valueOf(6.8523015e+5), getMapValue("fixed: 685_230.15", "fixed"));
+ assertEquals(Double.valueOf(6.8523015e+5),
+ getMapValue("sexagesimal: 190:20:30.15", "sexagesimal"));
+ assertEquals(Double.NEGATIVE_INFINITY,
+ getMapValue("negative infinity: -.inf", "negative infinity"));
+ assertEquals(Double.NaN, getMapValue("not a number: .NaN", "not a number"));
+ }
- public void testFloatShorthand() {
- assertEquals(new Double(1), getMapValue("number: !!float 1", "number"));
- }
+ public void testFloatShorthand() {
+ assertEquals(Double.valueOf(1), getMapValue("number: !!float 1", "number"));
+ }
- public void testFloatTag() {
- assertEquals(new Double(1), getMapValue("number: !<tag:yaml.org,2002:float> 1", "number"));
- }
+ public void testFloatTag() {
+ assertEquals(Double.valueOf(1), getMapValue("number: !<tag:yaml.org,2002:float> 1", "number"));
+ }
- public void testFloatOut() {
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("number", new Double(1));
- String output = dump(map);
- assertEquals("{number: 1.0}\n", output);
- }
+ public void testFloatOut() {
+ Map<String, Object> map = new HashMap<String, Object>();
+ map.put("number", Double.valueOf(1));
+ String output = dump(map);
+ assertEquals("{number: 1.0}\n", output);
+ }
- public void testBasicDoubleScalarLoad() {
- assertEquals(new Double(47.0), load("47.0"));
- assertEquals(new Double(0.0), load("0.0"));
- assertEquals(new Double(-1.0), load("-1.0"));
- }
+ public void testBasicDoubleScalarLoad() {
+ assertEquals(Double.valueOf(47.0), load("47.0"));
+ assertEquals(Double.valueOf(0.0), load("0.0"));
+ assertEquals(Double.valueOf(-1.0), load("-1.0"));
+ }
- public void testDumpStr() {
- assertEquals("'1.0'\n", dump("1.0"));
- }
+ public void testDumpStr() {
+ assertEquals("'1.0'\n", dump("1.0"));
+ }
- public void testDump() {
- assertEquals("1.0\n", dump(1.0));
- }
+ public void testDump() {
+ assertEquals("1.0\n", dump(1.0));
+ }
- /**
- * to test http://code.google.com/p/snakeyaml/issues/detail?id=130
- */
- public void testScientificFloatWithoutDecimalDot() {
- assertEquals(new Double(8e-06), load("8e-06"));
- assertEquals(new Double(8e06), load("8e06"));
- assertEquals(new Double(8e06), load("8e+06"));
- assertEquals(new Double(8000e06), load("8_000e06"));
- assertEquals(new Double(123e-06), load("123e-06"));
- }
+ /**
+ * to test http://code.google.com/p/snakeyaml/issues/detail?id=130
+ */
+ public void testScientificFloatWithoutDecimalDot() {
+ assertEquals(Double.valueOf(8e-06), load("8e-06"));
+ assertEquals(Double.valueOf(8e06), load("8e06"));
+ assertEquals(Double.valueOf(8e06), load("8e+06"));
+ assertEquals(Double.valueOf(8000e06), load("8_000e06"));
+ assertEquals(Double.valueOf(123e-06), load("123e-06"));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/types/IntTagTest.java b/src/test/java/org/yaml/snakeyaml/types/IntTagTest.java
index 2adb9c86..aae7881f 100644
--- a/src/test/java/org/yaml/snakeyaml/types/IntTagTest.java
+++ b/src/test/java/org/yaml/snakeyaml/types/IntTagTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.types;
@@ -20,46 +18,46 @@ import java.util.HashMap;
import java.util.Map;
/**
- * @see <a href="http://yaml.org/type/int.html"></a>
+ * @see <a href="http://yaml.org/type/int.html">int</a>
*/
public class IntTagTest extends AbstractTest {
- public void testInt() {
- assertEquals(new Integer(685230), getMapValue("canonical: 685230", "canonical"));
- assertEquals(new Integer(685230), getMapValue("number: 685_230", "number"));
- assertEquals(new Integer(685230), getMapValue("decimal: +685230", "decimal"));
- assertEquals(new Integer(-685230), getMapValue("number: -685230", "number"));
- assertEquals(new Integer(685230), getMapValue("octal: 02472256", "octal"));
- assertEquals(new Integer(685230), getMapValue("hexadecimal: 0x_0A_74_AE", "hexadecimal"));
- assertEquals(new Integer(685230),
- getMapValue("binary: 0b1010_0111_0100_1010_1110", "binary"));
- assertEquals(new Integer(685230), getMapValue("sexagesimal: 190:20:30", "sexagesimal"));
- assertEquals(new Integer(0), load("0"));
- assertEquals(new Integer(0), load("-0"));
- assertEquals(new Integer(0), load("+0"));
- assertEquals(Integer.MIN_VALUE, load(dump(Integer.MIN_VALUE)));
- assertEquals(Integer.MAX_VALUE, load(dump(Integer.MAX_VALUE)));
- }
+ public void testInt() {
+ assertEquals(Integer.valueOf(685230), getMapValue("canonical: 685230", "canonical"));
+ assertEquals(Integer.valueOf(685230), getMapValue("number: 685_230", "number"));
+ assertEquals(Integer.valueOf(685230), getMapValue("decimal: +685230", "decimal"));
+ assertEquals(Integer.valueOf(-685230), getMapValue("number: -685230", "number"));
+ assertEquals(Integer.valueOf(685230), getMapValue("octal: 02472256", "octal"));
+ assertEquals(Integer.valueOf(685230), getMapValue("hexadecimal: 0x_0A_74_AE", "hexadecimal"));
+ assertEquals(Integer.valueOf(685230),
+ getMapValue("binary: 0b1010_0111_0100_1010_1110", "binary"));
+ assertEquals(Integer.valueOf(685230), getMapValue("sexagesimal: 190:20:30", "sexagesimal"));
+ assertEquals(Integer.valueOf(0), load("0"));
+ assertEquals(Integer.valueOf(0), load("-0"));
+ assertEquals(Integer.valueOf(0), load("+0"));
+ assertEquals(Integer.MIN_VALUE, load(dump(Integer.MIN_VALUE)));
+ assertEquals(Integer.MAX_VALUE, load(dump(Integer.MAX_VALUE)));
+ }
- public void testBigInt() {
- assertEquals(new Long(922337203685477580L), load("922337203685477580"));
- assertEquals(new BigInteger("9223372036854775809999999999"),
- load("9223372036854775809999999999"));
- assertEquals(Long.MIN_VALUE, load("-9223372036854775808"));
- }
+ public void testBigInt() {
+ assertEquals(Long.valueOf(922337203685477580L), load("922337203685477580"));
+ assertEquals(new BigInteger("9223372036854775809999999999"),
+ load("9223372036854775809999999999"));
+ assertEquals(Long.MIN_VALUE, load("-9223372036854775808"));
+ }
- public void testIntShorthand() {
- assertEquals(new Integer(1), getMapValue("number: !!int 1", "number"));
- }
+ public void testIntShorthand() {
+ assertEquals(Integer.valueOf(1), getMapValue("number: !!int 1", "number"));
+ }
- public void testIntTag() {
- assertEquals(new Integer(1), getMapValue("number: !<tag:yaml.org,2002:int> 1", "number"));
- }
+ public void testIntTag() {
+ assertEquals(Integer.valueOf(1), getMapValue("number: !<tag:yaml.org,2002:int> 1", "number"));
+ }
- public void testIntOut() {
- Map<String, Integer> map = new HashMap<String, Integer>();
- map.put("number", new Integer(1));
- String output = dump(map);
- assertTrue(output.contains("number: 1"));
- }
+ public void testIntOut() {
+ Map<String, Integer> map = new HashMap<String, Integer>();
+ map.put("number", Integer.valueOf(1));
+ String output = dump(map);
+ assertTrue(output.contains("number: 1"));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/types/MapTagTest.java b/src/test/java/org/yaml/snakeyaml/types/MapTagTest.java
index b6449a7a..9d496ee9 100644
--- a/src/test/java/org/yaml/snakeyaml/types/MapTagTest.java
+++ b/src/test/java/org/yaml/snakeyaml/types/MapTagTest.java
@@ -1,70 +1,67 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.types;
import java.util.Map;
-
import org.yaml.snakeyaml.YamlDocument;
/**
- * @see <a href="http://yaml.org/type/map.html"></a>
+ * @see <a href="http://yaml.org/type/map.html">map</a>
*/
public class MapTagTest extends AbstractTest {
- @SuppressWarnings("unchecked")
- public void testMap() {
- YamlDocument document = new YamlDocument("types/map.yaml");
- Map<String, Map<String, String>> map = (Map<String, Map<String, String>>) document
- .getNativeData();
- assertEquals(2, map.size());
- Map<String, String> map1 = (Map<String, String>) map.get("Block style");
- assertEquals(3, map1.size());
- assertEquals("Evans", map1.get("Clark"));
- assertEquals("Ingerson", map1.get("Brian"));
- assertEquals("Ben-Kiki", map1.get("Oren"));
- //
- Map<String, String> map2 = (Map<String, String>) map.get("Flow style");
- assertEquals(3, map2.size());
- assertEquals("Evans", map2.get("Clark"));
- assertEquals("Ingerson", map2.get("Brian"));
- assertEquals("Ben-Kiki", map2.get("Oren"));
- //
- assertEquals(map1, map2);
- assertNotSame(map1, map2);
- }
+ @SuppressWarnings("unchecked")
+ public void testMap() {
+ YamlDocument document = new YamlDocument("types/map.yaml");
+ Map<String, Map<String, String>> map =
+ (Map<String, Map<String, String>>) document.getNativeData();
+ assertEquals(2, map.size());
+ Map<String, String> map1 = map.get("Block style");
+ assertEquals(3, map1.size());
+ assertEquals("Evans", map1.get("Clark"));
+ assertEquals("Ingerson", map1.get("Brian"));
+ assertEquals("Ben-Kiki", map1.get("Oren"));
+ //
+ Map<String, String> map2 = map.get("Flow style");
+ assertEquals(3, map2.size());
+ assertEquals("Evans", map2.get("Clark"));
+ assertEquals("Ingerson", map2.get("Brian"));
+ assertEquals("Ben-Kiki", map2.get("Oren"));
+ //
+ assertEquals(map1, map2);
+ assertNotSame(map1, map2);
+ }
- @SuppressWarnings("unchecked")
- public void testMapYaml11() {
- YamlDocument document = new YamlDocument("types/map_mixed_tags.yaml");
- Map<String, Map<String, String>> map = (Map<String, Map<String, String>>) document
- .getNativeData();
- assertEquals(2, map.size());
- Map<String, String> map1 = (Map<String, String>) map.get("Block style");
- assertEquals(3, map1.size());
- assertEquals("Evans", map1.get("Clark"));
- assertEquals("Ingerson", map1.get("Brian"));
- assertEquals("Ben-Kiki", map1.get("Oren"));
- //
- Map<String, String> map2 = (Map<String, String>) map.get("Flow style");
- assertEquals(3, map2.size());
- assertEquals("Evans", map2.get("Clark"));
- assertEquals("Ingerson", map2.get("Brian"));
- assertEquals("Ben-Kiki", map2.get("Oren"));
- //
- assertEquals(map1, map2);
- }
+ @SuppressWarnings("unchecked")
+ public void testMapYaml11() {
+ YamlDocument document = new YamlDocument("types/map_mixed_tags.yaml");
+ Map<String, Map<String, String>> map =
+ (Map<String, Map<String, String>>) document.getNativeData();
+ assertEquals(2, map.size());
+ Map<String, String> map1 = map.get("Block style");
+ assertEquals(3, map1.size());
+ assertEquals("Evans", map1.get("Clark"));
+ assertEquals("Ingerson", map1.get("Brian"));
+ assertEquals("Ben-Kiki", map1.get("Oren"));
+ //
+ Map<String, String> map2 = map.get("Flow style");
+ assertEquals(3, map2.size());
+ assertEquals("Evans", map2.get("Clark"));
+ assertEquals("Ingerson", map2.get("Brian"));
+ assertEquals("Ben-Kiki", map2.get("Oren"));
+ //
+ assertEquals(map1, map2);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/types/MergeTagTest.java b/src/test/java/org/yaml/snakeyaml/types/MergeTagTest.java
index 9af5d47b..0e3aae8c 100644
--- a/src/test/java/org/yaml/snakeyaml/types/MergeTagTest.java
+++ b/src/test/java/org/yaml/snakeyaml/types/MergeTagTest.java
@@ -1,70 +1,67 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.types;
import java.util.List;
import java.util.Map;
-
import org.yaml.snakeyaml.YamlDocument;
/**
- * @see <a href="http://yaml.org/type/merge.html"></a>
+ * @see <a href="http://yaml.org/type/merge.html">merge</a>
*/
public class MergeTagTest extends AbstractTest {
- @SuppressWarnings("unchecked")
- public void testMerge() {
- YamlDocument document = new YamlDocument("types/merge.yaml");
- List<Object> list = (List<Object>) document.getNativeData();
- assertEquals(8, list.size());
- Map<Object, Object> center = (Map<Object, Object>) list.get(0);
- assertEquals(2, center.size());
- assertEquals(new Integer(1), center.get("x"));
- assertEquals(new Integer(2), center.get("y"));
- //
- Map<Object, Object> left = (Map<Object, Object>) list.get(1);
- assertEquals(2, left.size());
- assertEquals(left.get("x").getClass().toString(), new Integer(0), left.get("x"));
- assertEquals(new Integer(2), left.get("y"));
- //
- Map<Object, Object> big = (Map<Object, Object>) list.get(2);
- assertEquals(1, big.size());
- assertEquals(new Integer(10), big.get("r"));
- //
- Map<Object, Object> small = (Map<Object, Object>) list.get(3);
- assertEquals(1, small.size());
- assertEquals(new Integer(1), small.get("r"));
- // Explicit keys
- Map<Object, Object> explicit = (Map<Object, Object>) list.get(4);
- assertEquals(4, explicit.size());
- assertEquals(new Integer(1), explicit.get("x"));
- assertEquals(new Integer(2), explicit.get("y"));
- assertEquals(new Integer(10), explicit.get("r"));
- assertEquals("center/big", explicit.get("label"));
- // Merge one map
- Map<Object, Object> merged1 = (Map<Object, Object>) list.get(5);
- assertEquals(explicit, merged1);
- assertNotSame(explicit, merged1);
- // Merge multiple maps
- Map<Object, Object> merged2 = (Map<Object, Object>) list.get(6);
- assertEquals(explicit, merged2);
- assertNotSame(explicit, merged2);
- // Override
- Map<Object, Object> merged3 = (Map<Object, Object>) list.get(7);
- assertEquals(explicit, merged3);
- assertNotSame(explicit, merged3);
- }
+ @SuppressWarnings("unchecked")
+ public void testMerge() {
+ YamlDocument document = new YamlDocument("types/merge.yaml");
+ List<Object> list = (List<Object>) document.getNativeData();
+ assertEquals(8, list.size());
+ Map<Object, Object> center = (Map<Object, Object>) list.get(0);
+ assertEquals(2, center.size());
+ assertEquals(Integer.valueOf(1), center.get("x"));
+ assertEquals(Integer.valueOf(2), center.get("y"));
+ //
+ Map<Object, Object> left = (Map<Object, Object>) list.get(1);
+ assertEquals(2, left.size());
+ assertEquals(left.get("x").getClass().toString(), Integer.valueOf(0), left.get("x"));
+ assertEquals(Integer.valueOf(2), left.get("y"));
+ //
+ Map<Object, Object> big = (Map<Object, Object>) list.get(2);
+ assertEquals(1, big.size());
+ assertEquals(Integer.valueOf(10), big.get("r"));
+ //
+ Map<Object, Object> small = (Map<Object, Object>) list.get(3);
+ assertEquals(1, small.size());
+ assertEquals(Integer.valueOf(1), small.get("r"));
+ // Explicit keys
+ Map<Object, Object> explicit = (Map<Object, Object>) list.get(4);
+ assertEquals(4, explicit.size());
+ assertEquals(Integer.valueOf(1), explicit.get("x"));
+ assertEquals(Integer.valueOf(2), explicit.get("y"));
+ assertEquals(Integer.valueOf(10), explicit.get("r"));
+ assertEquals("center/big", explicit.get("label"));
+ // Merge one map
+ Map<Object, Object> merged1 = (Map<Object, Object>) list.get(5);
+ assertEquals(explicit, merged1);
+ assertNotSame(explicit, merged1);
+ // Merge multiple maps
+ Map<Object, Object> merged2 = (Map<Object, Object>) list.get(6);
+ assertEquals(explicit, merged2);
+ assertNotSame(explicit, merged2);
+ // Override
+ Map<Object, Object> merged3 = (Map<Object, Object>) list.get(7);
+ assertEquals(explicit, merged3);
+ assertNotSame(explicit, merged3);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/types/NullTagTest.java b/src/test/java/org/yaml/snakeyaml/types/NullTagTest.java
index b3cd9665..eb1fca3a 100644
--- a/src/test/java/org/yaml/snakeyaml/types/NullTagTest.java
+++ b/src/test/java/org/yaml/snakeyaml/types/NullTagTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.types;
@@ -19,7 +17,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.FlowStyle;
import org.yaml.snakeyaml.Yaml;
@@ -29,124 +26,126 @@ import org.yaml.snakeyaml.representer.Represent;
import org.yaml.snakeyaml.representer.Representer;
/**
- * @see <a href="http://yaml.org/type/null.html"></a>
+ * @see <a href="http://yaml.org/type/null.html">null</a>
*/
public class NullTagTest extends AbstractTest {
- public void testNull() {
- assertNull("Got: '" + load("---\n") + "'", load("---\n"));
- assertNull(load("---\n..."));
- assertNull(load("---\n...\n"));
- assertNull(load("\n"));
- assertNull(load(""));
- assertNull(load(" "));
- assertNull(load("~"));
- assertNull(load("---\n~"));
- assertNull(load("null"));
- assertNull(load("Null"));
- assertNull(load("NULL"));
- assertNull(getMapValue("empty:\n", "empty"));
- assertNull(getMapValue("canonical: ~", "canonical"));
- assertNull(getMapValue("english: null", "english"));
- assertNull(getMapValue("english: Null", "english"));
- assertNull(getMapValue("english: NULL", "english"));
- assertEquals("null key", getMapValue("~: null key\n", null));
- }
+ public void testNull() {
+ assertNull("Got: '" + load("---\n") + "'", load("---\n"));
+ assertNull(load("---\n..."));
+ assertNull(load("---\n...\n"));
+ assertNull(load("\n"));
+ assertNull(load(""));
+ assertNull(load(" "));
+ assertNull(load("~"));
+ assertNull(load("---\n~"));
+ assertNull(load("null"));
+ assertNull(load("Null"));
+ assertNull(load("NULL"));
+ assertNull(getMapValue("empty:\n", "empty"));
+ assertNull(getMapValue("canonical: ~", "canonical"));
+ assertNull(getMapValue("english: null", "english"));
+ assertNull(getMapValue("english: Null", "english"));
+ assertNull(getMapValue("english: NULL", "english"));
+ assertEquals("null key", getMapValue("~: null key\n", null));
+ }
- @SuppressWarnings("unchecked")
- public void testSequenceNull() {
- String input = "---\n# This sequence has five\n# entries, two have values.\nsparse:\n - ~\n - 2nd entry\n -\n - 4th entry\n - Null\n";
- List<String> parsed = (List<String>) getMapValue(input, "sparse");
- assertEquals(5, parsed.size());
- assertNull(parsed.get(0));
- assertEquals("2nd entry", parsed.get(1));
- assertNull("Got: '" + parsed.get(2) + "'", parsed.get(2));
- assertEquals("4th entry", parsed.get(3));
- assertNull(parsed.get(4));
- }
+ @SuppressWarnings("unchecked")
+ public void testSequenceNull() {
+ String input =
+ "---\n# This sequence has five\n# entries, two have values.\nsparse:\n - ~\n - 2nd entry\n -\n - 4th entry\n - Null\n";
+ List<String> parsed = (List<String>) getMapValue(input, "sparse");
+ assertEquals(5, parsed.size());
+ assertNull(parsed.get(0));
+ assertEquals("2nd entry", parsed.get(1));
+ assertNull("Got: '" + parsed.get(2) + "'", parsed.get(2));
+ assertEquals("4th entry", parsed.get(3));
+ assertNull(parsed.get(4));
+ }
- public void testNullInMap() {
- String input = "key1: null\n~: value1";
- Map<String, Object> parsed = getMap(input);
- assertEquals(2, parsed.size());
- assertTrue(parsed.containsKey(null));
- Object value1 = parsed.get(null);
- assertEquals("value1", value1);
- //
- assertNull(parsed.get("key1"));
- //
- assertFalse(getMap("key2: value2").containsKey(null));
- }
+ public void testNullInMap() {
+ String input = "key1: null\n~: value1";
+ Map<String, Object> parsed = getMap(input);
+ assertEquals(2, parsed.size());
+ assertTrue(parsed.containsKey(null));
+ Object value1 = parsed.get(null);
+ assertEquals("value1", value1);
+ //
+ assertNull(parsed.get("key1"));
+ //
+ assertFalse(getMap("key2: value2").containsKey(null));
+ }
- public void testNullShorthand() {
- assertNull(getMapValue("nothing: !!null null", "nothing"));
- }
+ public void testNullShorthand() {
+ assertNull(getMapValue("nothing: !!null null", "nothing"));
+ }
- public void testNullTag() {
- assertNull(getMapValue("nothing: !<tag:yaml.org,2002:null> null", "nothing"));
- }
+ public void testNullTag() {
+ assertNull(getMapValue("nothing: !<tag:yaml.org,2002:null> null", "nothing"));
+ }
- public void testNullOut() {
- String output = dump(null);
- assertEquals("null\n", output);
- }
+ public void testNullOut() {
+ String output = dump(null);
+ assertEquals("null\n", output);
+ }
- public void testNullOutAsEmpty() {
- Yaml yaml = new Yaml(new NullRepresenter());
- String output = yaml.dump(null);
- assertEquals("", output);
- }
+ public void testNullOutAsEmpty() {
+ Yaml yaml = new Yaml(new NullRepresenter());
+ String output = yaml.dump(null);
+ assertEquals("", output);
+ }
- /**
- * test flow style
- */
- public void testNullOutAsEmpty2() {
- Yaml yaml = new Yaml(new NullRepresenter());
- Map<String, String> map = new HashMap<String, String>();
- map.put("aaa", "foo");
- map.put("bbb", null);
- String output = yaml.dump(map);
- assertEquals("{aaa: foo, bbb: !!null ''}\n", output);
- }
+ /**
+ * test flow style
+ */
+ public void testNullOutAsEmpty2() {
+ Yaml yaml = new Yaml(new NullRepresenter());
+ Map<String, String> map = new HashMap<String, String>();
+ map.put("aaa", "foo");
+ map.put("bbb", null);
+ String output = yaml.dump(map);
+ assertEquals("{aaa: foo, bbb: !!null ''}\n", output);
+ }
- /**
- * test block style
- */
- public void testBoolOutAsEmpty3() {
- DumperOptions options = new DumperOptions();
- options.setDefaultFlowStyle(FlowStyle.BLOCK);
- Yaml yaml = new Yaml(new NullRepresenter(), options);
- Map<String, String> map = new HashMap<String, String>();
- map.put("aaa", "foo");
- map.put("bbb", null);
- String output = yaml.dump(map);
- assertEquals("aaa: foo\nbbb:\n", output);
- }
+ /**
+ * test block style
+ */
+ public void testBoolOutAsEmpty3() {
+ DumperOptions options = new DumperOptions();
+ options.setDefaultFlowStyle(FlowStyle.BLOCK);
+ Yaml yaml = new Yaml(new NullRepresenter(), options);
+ Map<String, String> map = new HashMap<String, String>();
+ map.put("aaa", "foo");
+ map.put("bbb", null);
+ String output = yaml.dump(map);
+ assertEquals("aaa: foo\nbbb:\n", output);
+ }
- private class NullRepresenter extends Representer {
- public NullRepresenter() {
- super();
- // null representer is exceptional and it is stored as an instance
- // variable.
- this.nullRepresenter = new RepresentNull();
- }
-
- private class RepresentNull implements Represent {
- public Node representData(Object data) {
- // possible values are here http://yaml.org/type/null.html
- return representScalar(Tag.NULL, "");
- }
- }
+ private class NullRepresenter extends Representer {
+
+ public NullRepresenter() {
+ super();
+ // null representer is exceptional and it is stored as an instance
+ // variable.
+ this.nullRepresenter = new RepresentNull();
}
- public void testNoAnchors() {
- List<String> list = new ArrayList<String>(3);
- list.add(null);
- list.add("value");
- list.add(null);
- Yaml yaml = new Yaml();
- String output = yaml.dump(list);
- assertEquals("Null values must not get anchors and aliases.", "[null, value, null]\n",
- output);
+ private class RepresentNull implements Represent {
+
+ public Node representData(Object data) {
+ // possible values are here http://yaml.org/type/null.html
+ return representScalar(Tag.NULL, "");
+ }
}
+ }
+
+ public void testNoAnchors() {
+ List<String> list = new ArrayList<String>(3);
+ list.add(null);
+ list.add("value");
+ list.add(null);
+ Yaml yaml = new Yaml();
+ String output = yaml.dump(list);
+ assertEquals("Null values must not get anchors and aliases.", "[null, value, null]\n", output);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/types/OmapTagTest.java b/src/test/java/org/yaml/snakeyaml/types/OmapTagTest.java
index 2811deaa..da74d9da 100644
--- a/src/test/java/org/yaml/snakeyaml/types/OmapTagTest.java
+++ b/src/test/java/org/yaml/snakeyaml/types/OmapTagTest.java
@@ -1,46 +1,43 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.types;
import java.util.Map;
-
import org.yaml.snakeyaml.YamlDocument;
/**
- * @see <a href="http://yaml.org/type/omap.html"></a>
+ * @see <a href="http://yaml.org/type/omap.html">omap</a>
*/
public class OmapTagTest extends AbstractTest {
- @SuppressWarnings("unchecked")
- public void testOmap() {
- YamlDocument document = new YamlDocument("types/omap.yaml");
- Map<String, Map<String, String>> map = (Map<String, Map<String, String>>) document
- .getNativeData();
- assertEquals(2, map.size());
- Map<String, String> map1 = (Map<String, String>) map.get("Bestiary");
- assertEquals(3, map1.size());
- assertEquals("African pig-like ant eater. Ugly.", map1.get("aardvark"));
- assertEquals("South-American ant eater. Two species.", map1.get("anteater"));
- assertEquals("South-American constrictor snake. Scaly.", map1.get("anaconda"));
- //
- Map<String, String> map2 = (Map<String, String>) map.get("Numbers");
- assertEquals(3, map2.size());
- assertEquals(new Integer(1), map2.get("one"));
- assertEquals(new Integer(2), map2.get("two"));
- assertEquals(new Integer(3), map2.get("three"));
- }
+ @SuppressWarnings("unchecked")
+ public void testOmap() {
+ YamlDocument document = new YamlDocument("types/omap.yaml");
+ Map<String, Map<String, String>> map =
+ (Map<String, Map<String, String>>) document.getNativeData();
+ assertEquals(2, map.size());
+ Map<String, String> map1 = map.get("Bestiary");
+ assertEquals(3, map1.size());
+ assertEquals("African pig-like ant eater. Ugly.", map1.get("aardvark"));
+ assertEquals("South-American ant eater. Two species.", map1.get("anteater"));
+ assertEquals("South-American constrictor snake. Scaly.", map1.get("anaconda"));
+ //
+ Map<String, String> map2 = map.get("Numbers");
+ assertEquals(3, map2.size());
+ assertEquals(Integer.valueOf(1), map2.get("one"));
+ assertEquals(Integer.valueOf(2), map2.get("two"));
+ assertEquals(Integer.valueOf(3), map2.get("three"));
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/types/PairsTagTest.java b/src/test/java/org/yaml/snakeyaml/types/PairsTagTest.java
index 2f3c73e3..321d95a3 100644
--- a/src/test/java/org/yaml/snakeyaml/types/PairsTagTest.java
+++ b/src/test/java/org/yaml/snakeyaml/types/PairsTagTest.java
@@ -1,70 +1,67 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.types;
import java.util.List;
import java.util.Map;
-
import org.yaml.snakeyaml.YamlDocument;
/**
- * @see <a href="http://yaml.org/type/pairs.html"></a>
+ * @see <a href="http://yaml.org/type/pairs.html">pairs</a>
*/
public class PairsTagTest extends AbstractTest {
- @SuppressWarnings("unchecked")
- public void testPairs() {
- YamlDocument document = new YamlDocument("types/pairs.yaml", false);
- Map<String, List<String[]>> map = (Map<String, List<String[]>>) document.getNativeData();
- assertEquals(2, map.size());
- List<String[]> list1 = (List<String[]>) map.get("Block tasks");
- assertEquals(4, list1.size());
- Object[] tuple1 = list1.get(0);
- assertEquals(2, tuple1.length);
- assertEquals("meeting", tuple1[0]);
- assertEquals("with team.", tuple1[1]);
- //
+ @SuppressWarnings("unchecked")
+ public void testPairs() {
+ YamlDocument document = new YamlDocument("types/pairs.yaml", false);
+ Map<String, List<String[]>> map = (Map<String, List<String[]>>) document.getNativeData();
+ assertEquals(2, map.size());
+ List<String[]> list1 = map.get("Block tasks");
+ assertEquals(4, list1.size());
+ Object[] tuple1 = list1.get(0);
+ assertEquals(2, tuple1.length);
+ assertEquals("meeting", tuple1[0]);
+ assertEquals("with team.", tuple1[1]);
+ //
- Object[] tuple2 = list1.get(1);
- assertEquals(2, tuple2.length);
- assertEquals("meeting", tuple2[0]);
- assertEquals("with boss.", tuple2[1]);
- //
+ Object[] tuple2 = list1.get(1);
+ assertEquals(2, tuple2.length);
+ assertEquals("meeting", tuple2[0]);
+ assertEquals("with boss.", tuple2[1]);
+ //
- Object[] tuple3 = list1.get(2);
- assertEquals(2, tuple3.length);
- assertEquals("break", tuple3[0]);
- assertEquals("lunch.", tuple3[1]);
- //
+ Object[] tuple3 = list1.get(2);
+ assertEquals(2, tuple3.length);
+ assertEquals("break", tuple3[0]);
+ assertEquals("lunch.", tuple3[1]);
+ //
- Object[] tuple4 = list1.get(3);
- assertEquals(2, tuple4.length);
- assertEquals("meeting", tuple4[0]);
- assertEquals("with client.", tuple4[1]);
- //
- List<String[]> list2 = (List<String[]>) map.get("Flow tasks");
- assertEquals(2, list2.size());
- Object[] tuple2_1 = list2.get(0);
- assertEquals(2, tuple2_1.length);
- assertEquals("meeting", tuple2_1[0]);
- assertEquals("with team", tuple2_1[1]);
- //
- Object[] tuple2_2 = list2.get(1);
- assertEquals(2, tuple2_2.length);
- assertEquals("meeting", tuple2_2[0]);
- assertEquals("with boss", tuple2_2[1]);
- }
+ Object[] tuple4 = list1.get(3);
+ assertEquals(2, tuple4.length);
+ assertEquals("meeting", tuple4[0]);
+ assertEquals("with client.", tuple4[1]);
+ //
+ List<String[]> list2 = map.get("Flow tasks");
+ assertEquals(2, list2.size());
+ Object[] tuple2_1 = list2.get(0);
+ assertEquals(2, tuple2_1.length);
+ assertEquals("meeting", tuple2_1[0]);
+ assertEquals("with team", tuple2_1[1]);
+ //
+ Object[] tuple2_2 = list2.get(1);
+ assertEquals(2, tuple2_2.length);
+ assertEquals("meeting", tuple2_2[0]);
+ assertEquals("with boss", tuple2_2[1]);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/types/SeqTagTest.java b/src/test/java/org/yaml/snakeyaml/types/SeqTagTest.java
index 0f4123bc..e2829108 100644
--- a/src/test/java/org/yaml/snakeyaml/types/SeqTagTest.java
+++ b/src/test/java/org/yaml/snakeyaml/types/SeqTagTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.types;
@@ -20,74 +18,73 @@ import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-
import org.yaml.snakeyaml.YamlDocument;
/**
- * @see <a href="http://yaml.org/type/seq.html"></a>
+ * @see <a href="http://yaml.org/type/seq.html">seq</a>
*/
public class SeqTagTest extends AbstractTest {
- @SuppressWarnings("unchecked")
- public void testSeq() {
- YamlDocument document = new YamlDocument("types/seq.yaml");
- Map<String, List<String>> map = (Map<String, List<String>>) document.getNativeData();
- assertEquals(2, map.size());
- List<String> list1 = (List<String>) map.get("Block style");
- assertEquals(9, list1.size());
- assertEquals("Mercury", list1.get(0));
- assertEquals("Venus", list1.get(1));
- assertEquals("Earth", list1.get(2));
- assertEquals("Mars", list1.get(3));
- assertEquals("Jupiter", list1.get(4));
- assertEquals("Saturn", list1.get(5));
- assertEquals("Uranus", list1.get(6));
- assertEquals("Neptune", list1.get(7));
- assertEquals("Pluto", list1.get(8));
- //
- List<String> list2 = (List<String>) map.get("Flow style");
- assertEquals(9, list2.size());
- assertEquals("Mercury", list2.get(0));
- assertEquals("Venus", list2.get(1));
- assertEquals("Earth", list2.get(2));
- assertEquals("Mars", list2.get(3));
- assertEquals("Jupiter", list2.get(4));
- assertEquals("Saturn", list2.get(5));
- assertEquals("Uranus", list2.get(6));
- assertEquals("Neptune", list2.get(7));
- assertEquals("Pluto", list2.get(8));
- //
- assertEquals(list1, list2);
- assertNotSame(list1, list2);
- }
+ @SuppressWarnings("unchecked")
+ public void testSeq() {
+ YamlDocument document = new YamlDocument("types/seq.yaml");
+ Map<String, List<String>> map = (Map<String, List<String>>) document.getNativeData();
+ assertEquals(2, map.size());
+ List<String> list1 = map.get("Block style");
+ assertEquals(9, list1.size());
+ assertEquals("Mercury", list1.get(0));
+ assertEquals("Venus", list1.get(1));
+ assertEquals("Earth", list1.get(2));
+ assertEquals("Mars", list1.get(3));
+ assertEquals("Jupiter", list1.get(4));
+ assertEquals("Saturn", list1.get(5));
+ assertEquals("Uranus", list1.get(6));
+ assertEquals("Neptune", list1.get(7));
+ assertEquals("Pluto", list1.get(8));
+ //
+ List<String> list2 = map.get("Flow style");
+ assertEquals(9, list2.size());
+ assertEquals("Mercury", list2.get(0));
+ assertEquals("Venus", list2.get(1));
+ assertEquals("Earth", list2.get(2));
+ assertEquals("Mars", list2.get(3));
+ assertEquals("Jupiter", list2.get(4));
+ assertEquals("Saturn", list2.get(5));
+ assertEquals("Uranus", list2.get(6));
+ assertEquals("Neptune", list2.get(7));
+ assertEquals("Pluto", list2.get(8));
+ //
+ assertEquals(list1, list2);
+ assertNotSame(list1, list2);
+ }
- @SuppressWarnings("unchecked")
- public void testCollection() {
- Collection<Integer> collection = new LinkedList<Integer>();
- collection.add(1);
- collection.add(2);
- collection.add(3);
- String output = dump(collection);
- assertEquals("[1, 2, 3]\n", output);
- Collection<Integer> obj = (Collection<Integer>) load(output);
- // System.out.println(obj);
- assertEquals(3, obj.size());
- assertTrue("Create ArrayList by default: " + obj.getClass().toString(),
- obj instanceof ArrayList);
- }
+ @SuppressWarnings("unchecked")
+ public void testCollection() {
+ Collection<Integer> collection = new LinkedList<Integer>();
+ collection.add(1);
+ collection.add(2);
+ collection.add(3);
+ String output = dump(collection);
+ assertEquals("[1, 2, 3]\n", output);
+ Collection<Integer> obj = (Collection<Integer>) load(output);
+ // System.out.println(obj);
+ assertEquals(3, obj.size());
+ assertTrue("Create ArrayList by default: " + obj.getClass().toString(),
+ obj instanceof ArrayList);
+ }
- public void testArray() {
- Integer[] array = new Integer[3];
- array[0] = new Integer(1);
- array[1] = new Integer(1);
- array[2] = new Integer(2);
- String output = dump(array);
- assertEquals("[1, 1, 2]\n", output);
- }
+ public void testArray() {
+ Integer[] array = new Integer[3];
+ array[0] = Integer.valueOf(1);
+ array[1] = Integer.valueOf(1);
+ array[2] = Integer.valueOf(2);
+ String output = dump(array);
+ assertEquals("[1, 1, 2]\n", output);
+ }
- public void testStringArray() {
- String[] array = new String[] { "aaa", "bbb", "ccc" };
- String output = dump(array);
- assertEquals("[aaa, bbb, ccc]\n", output);
- }
+ public void testStringArray() {
+ String[] array = new String[] {"aaa", "bbb", "ccc"};
+ String output = dump(array);
+ assertEquals("[aaa, bbb, ccc]\n", output);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/types/SetTagTest.java b/src/test/java/org/yaml/snakeyaml/types/SetTagTest.java
index add9b59b..50547355 100644
--- a/src/test/java/org/yaml/snakeyaml/types/SetTagTest.java
+++ b/src/test/java/org/yaml/snakeyaml/types/SetTagTest.java
@@ -1,45 +1,52 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.types;
import java.util.Map;
import java.util.Set;
-
+import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.YamlDocument;
/**
- * @see <a href="http://yaml.org/type/set.html"></a>
+ * @see <a href="http://yaml.org/type/set.html">set</a>
*/
public class SetTagTest extends AbstractTest {
- @SuppressWarnings("unchecked")
- public void testSet() {
- YamlDocument document = new YamlDocument("types/set.yaml");
- Map<String, Set<String>> map = (Map<String, Set<String>>) document.getNativeData();
- assertEquals(2, map.size());
- Set<String> set1 = (Set<String>) map.get("baseball players");
- assertEquals(3, set1.size());
- assertTrue(set1.contains("Mark McGwire"));
- assertTrue(set1.contains("Sammy Sosa"));
- assertTrue(set1.contains("Ken Griffey"));
- //
- Set<String> set2 = (Set<String>) map.get("baseball teams");
- assertEquals(3, set2.size());
- assertTrue(set2.contains("Boston Red Sox"));
- assertTrue(set2.contains("Detroit Tigers"));
- assertTrue(set2.contains("New York Yankees"));
- }
+ @SuppressWarnings("unchecked")
+ public void testSet() {
+ YamlDocument document = new YamlDocument("types/set.yaml");
+ Map<String, Set<String>> map = (Map<String, Set<String>>) document.getNativeData();
+ assertEquals(2, map.size());
+ Set<String> set1 = map.get("baseball players");
+ assertEquals(3, set1.size());
+ assertTrue(set1.contains("Mark McGwire"));
+ assertTrue(set1.contains("Sammy Sosa"));
+ assertTrue(set1.contains("Ken Griffey"));
+ //
+ Set<String> set2 = map.get("baseball teams");
+ assertEquals(3, set2.size());
+ assertTrue(set2.contains("Boston Red Sox"));
+ assertTrue(set2.contains("Detroit Tigers"));
+ assertTrue(set2.contains("New York Yankees"));
+ }
+
+ public void testSetNull() {
+ Yaml yaml = new Yaml();
+ Set<Object> set = yaml.load("!!set {1, 2, null}");
+ assertTrue(set.contains(1));
+ assertTrue(set.contains(2));
+ assertTrue(set.contains(null));
+ assertEquals(set.size(), 3);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/types/StrTagTest.java b/src/test/java/org/yaml/snakeyaml/types/StrTagTest.java
index 600bd5ba..c9f1f83c 100644
--- a/src/test/java/org/yaml/snakeyaml/types/StrTagTest.java
+++ b/src/test/java/org/yaml/snakeyaml/types/StrTagTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.types;
@@ -20,154 +18,157 @@ import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.DumperOptions.ScalarStyle;
import org.yaml.snakeyaml.Yaml;
/**
- * @see <a href="http://yaml.org/type/str.html"></a>
+ * @see <a href="http://yaml.org/type/str.html">str</a>
*/
public class StrTagTest extends AbstractTest {
- private String getData(String data, String key) {
- return (String) getMapValue(data, key);
- }
-
- public void testString() {
- assertEquals("abcd", getData("string: abcd", "string"));
- }
-
- public void testStringShorthand() {
- assertEquals("abcd", getData("string: !!str abcd", "string"));
- }
-
- public void testStringTag() {
- assertEquals("abcd", getData("string: !<tag:yaml.org,2002:str> abcd", "string"));
- }
-
- public void testUnicode() {
- // escaped 8-bit unicode character (u-umlaut):
- assertEquals("\u00fc", load("\"\\xfc\""));
- assertEquals("\\xfc", load("\\xfc"));
-
- // 2 escaped 8-bit unicode characters (u-umlaut following by e-grave):
- assertEquals("\u00fc\u00e8", load("\"\\xfc\\xe8\""));
-
- // escaped 16-bit unicode character (em dash):
- assertEquals("\u2014", load("\"\\u2014\""));
-
- // UTF-32 encoding is explicitly not supported
- assertEquals("\\U2014AAAA", load("'\\U2014AAAA'"));
-
- // (and I don't have a surrogate pair handy at the moment)
- // raw unicode characters in the stream (em dash)
- assertEquals("\u2014", load("\u2014"));
- }
-
- /**
- * @see <a href="http://code.google.com/p/jvyamlb/issues/detail?id=6"></a>
- */
- @SuppressWarnings("unchecked")
- public void testIssueId6() {
- Map<String, String> map = (Map<String, String>) load("---\ntest: |-\n \"Test\r\r (* error here)\"");
- assertEquals("\"Test\n\n(* error here)\"", map.get("test"));
- }
-
- public void testStrDump() {
- assertEquals("abc\n", dump("abc"));
- }
-
- public void testUnicodeDump() {
- assertEquals("\\u263a\n", dump("\\u263a"));
- assertEquals("The leading zero must be preserved.", "\\u063a\n", dump("\\u063a"));
- }
-
- public void testStringIntOut() {
- Map<String, String> map = new HashMap<String, String>();
- map.put("number", "1");
- String output = dump(map);
- assertTrue(output, output.contains("number: '1'"));
- }
-
- public void testStringFloatOut() {
- Map<String, String> map = new HashMap<String, String>();
- map.put("number", "1.1");
- String output = dump(map);
- assertTrue(output, output.contains("number: '1.1'"));
- }
-
- public void testStringBoolOut() {
- Map<String, String> map = new HashMap<String, String>();
- map.put("number", "True");
- String output = dump(map);
- assertTrue(output, output.contains("number: 'True'"));
- }
-
- public void testEmitLongString() {
- String str = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
- String output = dump(str);
- assertEquals(str + "\n", output);
- }
-
- public void testEmitLongStringWithCR() {
- String str = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n";
- String output = dump(str);
- assertEquals("|+\n " + str, output);
- }
-
- public void testEmitDoubleQuoted() {
- String str = "\"xx\"";
- String output = dump(str);
- assertEquals("'" + str + "'\n", output);
- }
-
- /**
- * http://pyyaml.org/ticket/196
- */
- public void testEmitQuoted() {
- List<String> list = new ArrayList<String>(3);
- list.add("This is an 'example'.");
- list.add("This is an \"example\".");
- list.add("123");
- String output = dump(list);
- assertEquals("[This is an 'example'., This is an \"example\"., '123']\n", output);
- // single quoted
- DumperOptions options = new DumperOptions();
- options.setDefaultScalarStyle(ScalarStyle.SINGLE_QUOTED);
- Yaml yaml = new Yaml(options);
- String output2 = yaml.dump(list);
- // System.out.println(output2);
- assertEquals("- 'This is an ''example''.'\n- 'This is an \"example\".'\n- '123'\n", output2);
- // double quoted
- DumperOptions options2 = new DumperOptions();
- options2.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED);
- yaml = new Yaml(options2);
- String output3 = yaml.dump(list);
- // System.out.println(output2);
- assertEquals("- \"This is an 'example'.\"\n- \"This is an \\\"example\\\".\"\n- \"123\"\n",
- output3);
- }
-
- public void testEmitEndOfLine() {
- String str = "xxxxxxx\n";
- String output = dump(str);
- assertEquals("|\n " + str, output);
- }
-
- public void testDumpUtf16() throws UnsupportedEncodingException {
- String str = "xxx";
- assertEquals(3, str.toString().length());
- Yaml yaml = new Yaml();
- Charset charset = Charset.forName("UTF-16");
- ByteArrayOutputStream stream = new ByteArrayOutputStream();
- Writer writer = new OutputStreamWriter(stream, charset);
- yaml.dump(str, writer);
- assertEquals(str + "\n", stream.toString("UTF-16"));
- assertEquals("Must include BOM: " + stream.toString(), (1 + 3 + 1) * 2, stream.toString()
- .length());
- }
+
+ private String getData(String data, String key) {
+ return (String) getMapValue(data, key);
+ }
+
+ public void testString() {
+ assertEquals("abcd", getData("string: abcd", "string"));
+ }
+
+ public void testStringShorthand() {
+ assertEquals("abcd", getData("string: !!str abcd", "string"));
+ }
+
+ public void testStringTag() {
+ assertEquals("abcd", getData("string: !<tag:yaml.org,2002:str> abcd", "string"));
+ }
+
+ public void testUnicode() {
+ // escaped 8-bit unicode character (u-umlaut):
+ assertEquals("\u00fc", load("\"\\xfc\""));
+ assertEquals("\\xfc", load("\\xfc"));
+
+ // 2 escaped 8-bit unicode characters (u-umlaut following by e-grave):
+ assertEquals("\u00fc\u00e8", load("\"\\xfc\\xe8\""));
+
+ // escaped 16-bit unicode character (em dash):
+ assertEquals("\u2014", load("\"\\u2014\""));
+
+ // UTF-32 encoding is explicitly not supported
+ assertEquals("\\U2014AAAA", load("'\\U2014AAAA'"));
+
+ // (and I don't have a surrogate pair handy at the moment)
+ // raw unicode characters in the stream (em dash)
+ assertEquals("\u2014", load("\u2014"));
+ }
+
+ /**
+ * @see <a href="http://code.google.com/p/jvyamlb/issues/detail?id=6">issue 6</a>
+ */
+ @SuppressWarnings("unchecked")
+ public void testIssueId6() {
+ Map<String, String> map =
+ (Map<String, String>) load("---\ntest: |-\n \"Test\r\r (* error here)\"");
+ assertEquals("\"Test\n\n(* error here)\"", map.get("test"));
+ }
+
+ public void testStrDump() {
+ assertEquals("abc\n", dump("abc"));
+ }
+
+ public void testUnicodeDump() {
+ assertEquals("\\u263a\n", dump("\\u263a"));
+ assertEquals("The leading zero must be preserved.", "\\u063a\n", dump("\\u063a"));
+ }
+
+ public void testStringIntOut() {
+ Map<String, String> map = new HashMap<String, String>();
+ map.put("number", "1");
+ String output = dump(map);
+ assertTrue(output, output.contains("number: '1'"));
+ }
+
+ public void testStringFloatOut() {
+ Map<String, String> map = new HashMap<String, String>();
+ map.put("number", "1.1");
+ String output = dump(map);
+ assertTrue(output, output.contains("number: '1.1'"));
+ }
+
+ public void testStringBoolOut() {
+ Map<String, String> map = new HashMap<String, String>();
+ map.put("number", "True");
+ String output = dump(map);
+ assertTrue(output, output.contains("number: 'True'"));
+ }
+
+ public void testEmitLongString() {
+ String str =
+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
+ String output = dump(str);
+ assertEquals(str + "\n", output);
+ }
+
+ public void testEmitLongStringWithCR() {
+ String str =
+ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\n";
+ String output = dump(str);
+ assertEquals("|+\n " + str, output);
+ }
+
+ public void testEmitDoubleQuoted() {
+ String str = "\"xx\"";
+ String output = dump(str);
+ assertEquals("'" + str + "'\n", output);
+ }
+
+ /**
+ * http://pyyaml.org/ticket/196
+ */
+ public void testEmitQuoted() {
+ List<String> list = new ArrayList<String>(3);
+ list.add("This is an 'example'.");
+ list.add("This is an \"example\".");
+ list.add("123");
+ String output = dump(list);
+ assertEquals("[This is an 'example'., This is an \"example\"., '123']\n", output);
+ // single quoted
+ DumperOptions options = new DumperOptions();
+ options.setDefaultScalarStyle(ScalarStyle.SINGLE_QUOTED);
+ Yaml yaml = new Yaml(options);
+ String output2 = yaml.dump(list);
+ // System.out.println(output2);
+ assertEquals("- 'This is an ''example''.'\n- 'This is an \"example\".'\n- '123'\n", output2);
+ // double quoted
+ DumperOptions options2 = new DumperOptions();
+ options2.setDefaultScalarStyle(ScalarStyle.DOUBLE_QUOTED);
+ yaml = new Yaml(options2);
+ String output3 = yaml.dump(list);
+ // System.out.println(output2);
+ assertEquals("- \"This is an 'example'.\"\n- \"This is an \\\"example\\\".\"\n- \"123\"\n",
+ output3);
+ }
+
+ public void testEmitEndOfLine() {
+ String str = "xxxxxxx\n";
+ String output = dump(str);
+ assertEquals("|\n " + str, output);
+ }
+
+ public void testDumpUtf16() throws UnsupportedEncodingException {
+ String str = "xxx";
+ assertEquals(3, str.length());
+ Yaml yaml = new Yaml();
+ Charset charset = StandardCharsets.UTF_16;
+ ByteArrayOutputStream stream = new ByteArrayOutputStream();
+ Writer writer = new OutputStreamWriter(stream, charset);
+ yaml.dump(str, writer);
+ assertEquals(str + "\n", stream.toString("UTF-16"));
+ assertEquals("Must include BOM: " + stream, (1 + 3 + 1) * 2, stream.toString().length());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/types/TimestampTagTest.java b/src/test/java/org/yaml/snakeyaml/types/TimestampTagTest.java
index 5e889d16..5d8d4adf 100644
--- a/src/test/java/org/yaml/snakeyaml/types/TimestampTagTest.java
+++ b/src/test/java/org/yaml/snakeyaml/types/TimestampTagTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.types;
@@ -22,102 +20,149 @@ import java.util.Map;
import java.util.TimeZone;
/**
- * @see <a href="http://yaml.org/type/timestamp.html"></a>
+ * @see <a href="http://yaml.org/type/timestamp.html">timestamp</a>
*/
public class TimestampTagTest extends AbstractTest {
- public void testTimestamp() {
- assertEquals("2001-12-15 at 2:59:43 (100)",
- getText("canonical: 2001-12-15T02:59:43.1Z", "canonical"));
- // zero miliseconds
- assertEquals("2001-12-15 at 2:59:43 (0)",
- getText("canonical: 2001-12-15T02:59:43.000Z", "canonical"));
- assertEquals("2001-12-15 at 2:59:43 (100)",
- getText("valid iso8601: 2001-12-14t21:59:43.10-05:00", "valid iso8601"));
- // half hour time zone
- assertEquals("2001-12-14 at 22:29:43 (100)",
- getText("valid iso8601: 2001-12-14t21:59:43.10-0:30", "valid iso8601"));
- // + time zone
- assertEquals("2001-12-14 at 19:59:43 (100)",
- getText("valid iso8601: 2001-12-14t21:59:43.10+2:00", "valid iso8601"));
- assertEquals("2001-12-15 at 2:59:43 (100)",
- getText("space separated: 2001-12-14 21:59:43.10 -5", "space separated"));
- assertEquals("2001-12-15 at 2:59:43 (100)",
- getText("no time zone (Z): 2001-12-15 2:59:43.10", "no time zone (Z)"));
- assertEquals("2002-12-14 at 0:0:0 (0)",
- getText("date (00:00:00Z): 2002-12-14", "date (00:00:00Z)"));
- assertEquals("2010-5-16 at 3:6:11 (3)",
- getText("milliseconds: 2010-05-16 03:06:11.003", "milliseconds"));
- assertEquals("2010-5-16 at 3:6:11 (7)",
- getText("milliseconds: 2010-05-16 03:06:11.0068", "milliseconds"));
- assertEquals("2010-5-16 at 3:6:11 (0)",
- getText("milliseconds: 2010-05-16 03:06:11.0000", "milliseconds"));
- assertEquals("2010-5-16 at 3:6:11 (0)",
- getText("milliseconds: 2010-05-16 03:06:11.0004", "milliseconds"));
- assertEquals("2010-5-16 at 3:6:11 (25)",
- getText("milliseconds: 2010-05-16 03:06:11.0250", "milliseconds"));
- }
+ public void testTimestamp() {
+ assertEquals("2001-12-15 at 2:59:43 (100)",
+ getText("canonical: 2001-12-15T02:59:43.1Z", "canonical"));
+ // zero miliseconds
+ assertEquals("2001-12-15 at 2:59:43 (0)",
+ getText("canonical: 2001-12-15T02:59:43.000Z", "canonical"));
+ assertEquals("2001-12-15 at 2:59:43 (100)",
+ getText("valid iso8601: 2001-12-14t21:59:43.10-05:00", "valid iso8601"));
+ // half hour time zone
+ assertEquals("2001-12-14 at 22:29:43 (100)",
+ getText("valid iso8601: 2001-12-14t21:59:43.10-0:30", "valid iso8601"));
+ // + time zone
+ assertEquals("2001-12-14 at 19:59:43 (100)",
+ getText("valid iso8601: 2001-12-14t21:59:43.10+2:00", "valid iso8601"));
+ assertEquals("2001-12-15 at 2:59:43 (100)",
+ getText("space separated: 2001-12-14 21:59:43.10 -5", "space separated"));
+ assertEquals("2001-12-15 at 2:59:43 (100)",
+ getText("no time zone (Z): 2001-12-15 2:59:43.10", "no time zone (Z)"));
+ assertEquals("2002-12-14 at 0:0:0 (0)",
+ getText("date (00:00:00Z): 2002-12-14", "date (00:00:00Z)"));
+ assertEquals("2010-5-16 at 3:6:11 (3)",
+ getText("milliseconds: 2010-05-16 03:06:11.003", "milliseconds"));
+ assertEquals("2010-5-16 at 3:6:11 (7)",
+ getText("milliseconds: 2010-05-16 03:06:11.0068", "milliseconds"));
+ assertEquals("2010-5-16 at 3:6:11 (0)",
+ getText("milliseconds: 2010-05-16 03:06:11.0000", "milliseconds"));
+ assertEquals("2010-5-16 at 3:6:11 (0)",
+ getText("milliseconds: 2010-05-16 03:06:11.0004", "milliseconds"));
+ assertEquals("2010-5-16 at 3:6:11 (25)",
+ getText("milliseconds: 2010-05-16 03:06:11.0250", "milliseconds"));
+ }
- public void testTimestampShorthand() {
- assertTrue(getMapValue("canonical: !!timestamp 2001-12-15T02:59:43.1Z", "canonical") instanceof Date);
- }
+ public void testTimestampShorthand() {
+ assertTrue(
+ getMapValue("canonical: !!timestamp 2001-12-15T02:59:43.1Z", "canonical") instanceof Date);
+ }
- public void testTimestampTag() {
- assertTrue(getMapValue("canonical: !<tag:yaml.org,2002:timestamp> 2001-12-15T02:59:43.1Z",
- "canonical") instanceof Date);
- }
+ public void testTimestampTag() {
+ assertTrue(getMapValue("canonical: !<tag:yaml.org,2002:timestamp> 2001-12-15T02:59:43.1Z",
+ "canonical") instanceof Date);
+ }
- public void testTimestampOut() {
- Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("Europe/Moscow"));
- cal.clear();
- cal.set(2008, 8, 23, 14, 35, 4);
- Date date = cal.getTime();
- String output = dump(date);
- assertEquals("2008-09-23T10:35:04Z\n", output);
- }
+ public void testTimestampOut() {
+ Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("Europe/Moscow"));
+ cal.clear();
+ cal.set(2008, 8, 23, 14, 35, 4);
+ Date date = cal.getTime();
+ String output = dump(date);
+ assertEquals("2008-09-23T10:35:04Z\n", output);
+ }
- public void testTimestampOutMap() {
- Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("Europe/Moscow"));
- cal.clear();
- cal.set(2008, 8, 23, 14, 35, 4);
- Date date = cal.getTime();
- Map<String, Date> map = new HashMap<String, Date>();
- map.put("canonical", date);
- String output = dump(map);
- assertEquals("{canonical: !!timestamp '2008-09-23T10:35:04Z'}\n", output);
- }
+ public void testTimestampOutMap() {
+ Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("Europe/Moscow"));
+ cal.clear();
+ cal.set(2008, 8, 23, 14, 35, 4);
+ Date date = cal.getTime();
+ Map<String, Date> map = new HashMap<String, Date>();
+ map.put("canonical", date);
+ String output = dump(map);
+ assertEquals("{canonical: !!timestamp '2008-09-23T10:35:04Z'}\n", output);
+ }
- private String getText(String yaml, String key) {
- Date date = (Date) getMapValue(yaml, key);
- Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
- cal.setTime(date);
- int years = cal.get(Calendar.YEAR);
- int months = cal.get(Calendar.MONTH) + 1; // 0..12
- int days = cal.get(Calendar.DAY_OF_MONTH); // 1..31
- int hour24 = cal.get(Calendar.HOUR_OF_DAY); // 0..24
- int minutes = cal.get(Calendar.MINUTE); // 0..59
- int seconds = cal.get(Calendar.SECOND); // 0..59
- int millis = cal.get(Calendar.MILLISECOND);
- String result = String.valueOf(years) + "-" + String.valueOf(months) + "-"
- + String.valueOf(days) + " at " + String.valueOf(hour24) + ":"
- + String.valueOf(minutes) + ":" + String.valueOf(seconds) + " ("
- + String.valueOf(millis) + ")";
- return result;
- }
+ public void testTimestampNegativeTimezoneOffset() {
+ Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT-01:15"));
+ cal.clear();
+ cal.set(2008, 8, 23, 14, 35, 4);
+ Map<String, Calendar> map = new HashMap<String, Calendar>();
+ map.put("canonical", cal);
+ String output = dump(map);
+ assertEquals("{canonical: !!timestamp '2008-09-23T14:35:04-01:15'}\n", output);
+ }
- public void testTimestampReadWrite() {
- Date date = (Date) getMapValue("Time: 2001-11-23 15:01:42 -5", "Time");
- Map<String, Date> map = new HashMap<String, Date>();
- map.put("canonical", date);
- String output = dump(map);
- assertEquals("{canonical: !!timestamp '2001-11-23T20:01:42Z'}\n", output);
- }
+ public void testTimestampDoubleDigitsForOffset() {
+ Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+00:30"));
+ cal.clear();
+ cal.set(2008, 8, 23, 14, 35, 4);
+ Map<String, Calendar> map = new HashMap<String, Calendar>();
+ map.put("canonical", cal);
+ String output = dump(map);
+ assertEquals("{canonical: !!timestamp '2008-09-23T14:35:04+00:30'}\n", output);
+ }
- public void testSqlDate() {
- java.sql.Date date = new java.sql.Date(1000000000000L);
- Map<String, java.sql.Date> map = new HashMap<String, java.sql.Date>();
- map.put("canonical", date);
- String output = dump(map);
- assertEquals("{canonical: !!timestamp '2001-09-09T01:46:40Z'}\n", output);
- }
+ public void testTimestampGMTNoOffset() {
+ Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT+00:00"));
+ cal.clear();
+ cal.set(2008, 8, 23, 14, 35, 4);
+ Map<String, Calendar> map = new HashMap<String, Calendar>();
+ map.put("canonical", cal);
+ String output = dump(map);
+ assertEquals("{canonical: !!timestamp '2008-09-23T14:35:04Z'}\n", output);
+ }
+
+ public void testTimestampEpoch() {
+ Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
+ cal.setTimeInMillis(0);
+ Map<String, Calendar> map = new HashMap<String, Calendar>();
+ map.put("canonical", cal);
+ String output = dump(map);
+ assertEquals("{canonical: !!timestamp '1970-01-01T00:00:00Z'}\n", output);
+ }
+
+ public void testTimestampEpochWithOffset() {
+ Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT-01:00"));
+ cal.setTimeInMillis(0);
+ Map<String, Calendar> map = new HashMap<String, Calendar>();
+ map.put("canonical", cal);
+ String output = dump(map);
+ assertEquals("{canonical: !!timestamp '1969-12-31T23:00:00-01:00'}\n", output);
+ }
+
+ private String getText(String yaml, String key) {
+ Date date = (Date) getMapValue(yaml, key);
+ Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
+ cal.setTime(date);
+ int years = cal.get(Calendar.YEAR);
+ int months = cal.get(Calendar.MONTH) + 1; // 0..12
+ int days = cal.get(Calendar.DAY_OF_MONTH); // 1..31
+ int hour24 = cal.get(Calendar.HOUR_OF_DAY); // 0..24
+ int minutes = cal.get(Calendar.MINUTE); // 0..59
+ int seconds = cal.get(Calendar.SECOND); // 0..59
+ int millis = cal.get(Calendar.MILLISECOND);
+ String result = years + "-" + months + "-" + days + " at " + hour24 + ":" + minutes + ":"
+ + seconds + " (" + millis + ")";
+ return result;
+ }
+
+ public void testTimestampReadWrite() {
+ Date date = (Date) getMapValue("Time: 2001-11-23 15:01:42 -5", "Time");
+ Map<String, Date> map = new HashMap<String, Date>();
+ map.put("canonical", date);
+ String output = dump(map);
+ assertEquals("{canonical: !!timestamp '2001-11-23T20:01:42Z'}\n", output);
+ }
+
+ public void testSqlDate() {
+ java.sql.Date date = new java.sql.Date(1000000000000L);
+ Map<String, java.sql.Date> map = new HashMap<String, java.sql.Date>();
+ map.put("canonical", date);
+ String output = dump(map);
+ assertEquals("{canonical: !!timestamp '2001-09-09T01:46:40Z'}\n", output);
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/types/ValueTagTest.java b/src/test/java/org/yaml/snakeyaml/types/ValueTagTest.java
index 7490b1db..46ada0dc 100644
--- a/src/test/java/org/yaml/snakeyaml/types/ValueTagTest.java
+++ b/src/test/java/org/yaml/snakeyaml/types/ValueTagTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.types;
@@ -19,42 +17,40 @@ import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.YamlDocument;
/**
- * @see <a href="http://yaml.org/type/value.html"></a>
+ * @see <a href="http://yaml.org/type/value.html">value</a>
*/
public class ValueTagTest extends AbstractTest {
- /**
- * The 'value' tag does not work as defined in the specification but exactly
- * as in PyYAML
- */
- @SuppressWarnings("unchecked")
- public void testValue() {
- InputStream input = YamlDocument.class.getClassLoader().getResourceAsStream(
- YamlDocument.ROOT + "types/value.yaml");
- Yaml yaml = new Yaml();
- Iterator<Object> iter = (Iterator<Object>) yaml.loadAll(input).iterator();
- Map<String, List<String>> oldSchema = (Map<String, List<String>>) iter.next();
- assertEquals(1, oldSchema.size());
- List<String> list = oldSchema.get("link with");
- assertEquals(2, list.size());
- assertEquals("library1.dll", list.get(0));
- assertEquals("library2.dll", list.get(1));
- //
- Map<String, List<Map<String, String>>> newSchema = (Map<String, List<Map<String, String>>>) iter
- .next();
- assertEquals(1, newSchema.size());
- //
- List<Map<String, String>> list2 = newSchema.get("link with");
- assertEquals(2, list2.size());
- Map<String, String> map1 = list2.get(0);
- assertEquals(2, map1.size());
- assertEquals("library1.dll", map1.get("="));
- assertEquals(new Double(1.2), map1.get("version"));
- assertFalse(iter.hasNext());
- }
+ /**
+ * The 'value' tag does not work as defined in the specification but exactly as in PyYAML
+ */
+ @SuppressWarnings("unchecked")
+ public void testValue() {
+ InputStream input = YamlDocument.class.getClassLoader()
+ .getResourceAsStream(YamlDocument.ROOT + "types/value.yaml");
+ Yaml yaml = new Yaml();
+ Iterator<Object> iter = yaml.loadAll(input).iterator();
+ Map<String, List<String>> oldSchema = (Map<String, List<String>>) iter.next();
+ assertEquals(1, oldSchema.size());
+ List<String> list = oldSchema.get("link with");
+ assertEquals(2, list.size());
+ assertEquals("library1.dll", list.get(0));
+ assertEquals("library2.dll", list.get(1));
+ //
+ Map<String, List<Map<String, String>>> newSchema =
+ (Map<String, List<Map<String, String>>>) iter.next();
+ assertEquals(1, newSchema.size());
+ //
+ List<Map<String, String>> list2 = newSchema.get("link with");
+ assertEquals(2, list2.size());
+ Map<String, String> map1 = list2.get(0);
+ assertEquals(2, map1.size());
+ assertEquals("library1.dll", map1.get("="));
+ assertEquals(Double.valueOf(1.2), map1.get("version"));
+ assertFalse(iter.hasNext());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/util/ArrayStackTest.java b/src/test/java/org/yaml/snakeyaml/util/ArrayStackTest.java
index dd1cebed..a524bb28 100644
--- a/src/test/java/org/yaml/snakeyaml/util/ArrayStackTest.java
+++ b/src/test/java/org/yaml/snakeyaml/util/ArrayStackTest.java
@@ -1,17 +1,15 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.util;
@@ -19,13 +17,13 @@ import junit.framework.TestCase;
public class ArrayStackTest extends TestCase {
- public void testClear() {
- ArrayStack<Integer> stack = new ArrayStack<Integer>(25);
- assertTrue(stack.isEmpty());
- stack.push(new Integer(1));
- stack.push(new Integer(2));
- assertFalse(stack.isEmpty());
- stack.clear();
- assertTrue(stack.isEmpty());
- }
+ public void testClear() {
+ ArrayStack<Integer> stack = new ArrayStack<Integer>(25);
+ assertTrue(stack.isEmpty());
+ stack.push(Integer.valueOf(1));
+ stack.push(Integer.valueOf(2));
+ assertFalse(stack.isEmpty());
+ stack.clear();
+ assertTrue(stack.isEmpty());
+ }
}
diff --git a/src/test/java/org/yaml/snakeyaml/util/ArrayUtilsTest.java b/src/test/java/org/yaml/snakeyaml/util/ArrayUtilsTest.java
new file mode 100644
index 00000000..f65d21a1
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/util/ArrayUtilsTest.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) 2008, SnakeYAML
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.yaml.snakeyaml.util;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import org.junit.Assert;
+import org.junit.Test;
+
+
+public class ArrayUtilsTest {
+
+ @Test
+ public void testToUnmodifiableCompositeList() {
+ List<Integer> compositeList =
+ ArrayUtils.toUnmodifiableCompositeList(new Integer[] {0, 1, 2}, new Integer[] {3, 4, 5});
+ Assert.assertEquals(Arrays.asList(0, 1, 2, 3, 4, 5), compositeList);
+ try {
+ compositeList.get(6);
+ Assert.fail("An IndexOutOfBoundsException was expected");
+ } catch (IndexOutOfBoundsException e) {
+ Assert.assertEquals(e.getMessage(), "Index: 6, Size: 6");
+ }
+ }
+
+ @Test
+ public void testToUnmodifiableCompositeEmpty() {
+ List<Integer> compositeList =
+ ArrayUtils.toUnmodifiableCompositeList(new Integer[0], new Integer[0]);
+ Assert.assertEquals(Collections.emptyList(), compositeList);
+ }
+
+ @Test
+ public void testToUnmodifiableCompositeLeftEmpty() {
+ List<Integer> compositeList =
+ ArrayUtils.toUnmodifiableCompositeList(new Integer[0], new Integer[] {3, 4, 5});
+ Assert.assertEquals(Arrays.asList(3, 4, 5), compositeList);
+ }
+
+ @Test
+ public void testToUnmodifiableCompositeRightEmpty() {
+ List<Integer> compositeList =
+ ArrayUtils.toUnmodifiableCompositeList(new Integer[] {1, 2, 3}, new Integer[0]);
+ Assert.assertEquals(Arrays.asList(1, 2, 3), compositeList);
+ }
+
+ @Test(expected = IndexOutOfBoundsException.class)
+ public void testToUnmodifiableCompositeException() {
+ try {
+ ArrayUtils.toUnmodifiableCompositeList(new Integer[] {1}, new Integer[] {2}).get(2);
+ } catch (ArrayIndexOutOfBoundsException e) {
+ Assert.fail("ArrayIndexOutOfBoundsException wasn't expected, but it was thrown");
+ }
+
+ }
+
+}
diff --git a/src/test/java/org/yaml/snakeyaml/util/UriEncoderTest.java b/src/test/java/org/yaml/snakeyaml/util/UriEncoderTest.java
index babf61b9..a7d0ba12 100644
--- a/src/test/java/org/yaml/snakeyaml/util/UriEncoderTest.java
+++ b/src/test/java/org/yaml/snakeyaml/util/UriEncoderTest.java
@@ -1,51 +1,48 @@
/**
- * Copyright (c) 2008, http://www.snakeyaml.org
+ * Copyright (c) 2008, SnakeYAML
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.yaml.snakeyaml.util;
import java.nio.ByteBuffer;
import java.nio.charset.CharacterCodingException;
-
import junit.framework.TestCase;
public class UriEncoderTest extends TestCase {
- public void testEncode() {
- assertEquals("Acad%C3%A9mico", UriEncoder.encode("Académico"));
- assertEquals("Check http://yaml.org/spec/1.1/#escaping%20in%20URI/", "[]",
- UriEncoder.encode("[]"));
- }
+ public void testEncode() {
+ assertEquals("Acad%C3%A9mico", UriEncoder.encode("Académico"));
+ assertEquals("Check http://yaml.org/spec/1.1/#escaping%20in%20URI/", "[]",
+ UriEncoder.encode("[]"));
+ }
- public void testDecode() throws CharacterCodingException {
- ByteBuffer buff = ByteBuffer.allocate(10);
- buff.put((byte) 0x34);
- buff.put((byte) 0x35);
- buff.flip();
- assertEquals("45", UriEncoder.decode(buff));
- }
+ public void testDecode() throws CharacterCodingException {
+ ByteBuffer buff = ByteBuffer.allocate(10);
+ buff.put((byte) 0x34);
+ buff.put((byte) 0x35);
+ buff.flip();
+ assertEquals("45", UriEncoder.decode(buff));
+ }
- public void testFailDecode() throws CharacterCodingException {
- ByteBuffer buff = ByteBuffer.allocate(10);
- buff.put((byte) 0x34);
- buff.put((byte) 0xC1);
- buff.flip();
- try {
- UriEncoder.decode(buff);
- fail("Invalid UTF-8 must not be accepted.");
- } catch (Exception e) {
- assertEquals("Input length = 1", e.getMessage());
- }
+ public void testFailDecode() throws CharacterCodingException {
+ ByteBuffer buff = ByteBuffer.allocate(10);
+ buff.put((byte) 0x34);
+ buff.put((byte) 0xC1);
+ buff.flip();
+ try {
+ UriEncoder.decode(buff);
+ fail("Invalid UTF-8 must not be accepted.");
+ } catch (Exception e) {
+ assertEquals("Input length = 1", e.getMessage());
}
+ }
}