1*ac2a7c1bSSadaf Ebrahimi /** 2*ac2a7c1bSSadaf Ebrahimi * Copyright (c) 2008, SnakeYAML 3*ac2a7c1bSSadaf Ebrahimi * 4*ac2a7c1bSSadaf Ebrahimi * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5*ac2a7c1bSSadaf Ebrahimi * in compliance with the License. You may obtain a copy of the License at 6*ac2a7c1bSSadaf Ebrahimi * 7*ac2a7c1bSSadaf Ebrahimi * http://www.apache.org/licenses/LICENSE-2.0 8*ac2a7c1bSSadaf Ebrahimi * 9*ac2a7c1bSSadaf Ebrahimi * Unless required by applicable law or agreed to in writing, software distributed under the License 10*ac2a7c1bSSadaf Ebrahimi * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11*ac2a7c1bSSadaf Ebrahimi * or implied. See the License for the specific language governing permissions and limitations under 12*ac2a7c1bSSadaf Ebrahimi * the License. 13*ac2a7c1bSSadaf Ebrahimi */ 14*ac2a7c1bSSadaf Ebrahimi package examples; 15*ac2a7c1bSSadaf Ebrahimi 16*ac2a7c1bSSadaf Ebrahimi import java.io.StringReader; 17*ac2a7c1bSSadaf Ebrahimi import junit.framework.TestCase; 18*ac2a7c1bSSadaf Ebrahimi import org.yaml.snakeyaml.Yaml; 19*ac2a7c1bSSadaf Ebrahimi 20*ac2a7c1bSSadaf Ebrahimi public class CustomJavaObjectWithBinaryStringTest extends TestCase { 21*ac2a7c1bSSadaf Ebrahimi 22*ac2a7c1bSSadaf Ebrahimi public static class Pojo { 23*ac2a7c1bSSadaf Ebrahimi 24*ac2a7c1bSSadaf Ebrahimi private String data; 25*ac2a7c1bSSadaf Ebrahimi Pojo()26*ac2a7c1bSSadaf Ebrahimi public Pojo() {} 27*ac2a7c1bSSadaf Ebrahimi Pojo(String data)28*ac2a7c1bSSadaf Ebrahimi public Pojo(String data) { 29*ac2a7c1bSSadaf Ebrahimi this.data = data; 30*ac2a7c1bSSadaf Ebrahimi } 31*ac2a7c1bSSadaf Ebrahimi getData()32*ac2a7c1bSSadaf Ebrahimi public String getData() { 33*ac2a7c1bSSadaf Ebrahimi return data; 34*ac2a7c1bSSadaf Ebrahimi } 35*ac2a7c1bSSadaf Ebrahimi setData(String data)36*ac2a7c1bSSadaf Ebrahimi public void setData(String data) { 37*ac2a7c1bSSadaf Ebrahimi this.data = data; 38*ac2a7c1bSSadaf Ebrahimi } 39*ac2a7c1bSSadaf Ebrahimi 40*ac2a7c1bSSadaf Ebrahimi @Override hashCode()41*ac2a7c1bSSadaf Ebrahimi public int hashCode() { 42*ac2a7c1bSSadaf Ebrahimi final int prime = 31; 43*ac2a7c1bSSadaf Ebrahimi int result = 1; 44*ac2a7c1bSSadaf Ebrahimi result = prime * result + ((data == null) ? 0 : data.hashCode()); 45*ac2a7c1bSSadaf Ebrahimi return result; 46*ac2a7c1bSSadaf Ebrahimi } 47*ac2a7c1bSSadaf Ebrahimi 48*ac2a7c1bSSadaf Ebrahimi @Override equals(Object obj)49*ac2a7c1bSSadaf Ebrahimi public boolean equals(Object obj) { 50*ac2a7c1bSSadaf Ebrahimi if (this == obj) { 51*ac2a7c1bSSadaf Ebrahimi return true; 52*ac2a7c1bSSadaf Ebrahimi } 53*ac2a7c1bSSadaf Ebrahimi if (obj == null) { 54*ac2a7c1bSSadaf Ebrahimi return false; 55*ac2a7c1bSSadaf Ebrahimi } 56*ac2a7c1bSSadaf Ebrahimi if (getClass() != obj.getClass()) { 57*ac2a7c1bSSadaf Ebrahimi return false; 58*ac2a7c1bSSadaf Ebrahimi } 59*ac2a7c1bSSadaf Ebrahimi Pojo other = (Pojo) obj; 60*ac2a7c1bSSadaf Ebrahimi if (data == null) { 61*ac2a7c1bSSadaf Ebrahimi return other.data == null; 62*ac2a7c1bSSadaf Ebrahimi } else { 63*ac2a7c1bSSadaf Ebrahimi return data.equals(other.data); 64*ac2a7c1bSSadaf Ebrahimi } 65*ac2a7c1bSSadaf Ebrahimi } 66*ac2a7c1bSSadaf Ebrahimi 67*ac2a7c1bSSadaf Ebrahimi } 68*ac2a7c1bSSadaf Ebrahimi testDump()69*ac2a7c1bSSadaf Ebrahimi public void testDump() { 70*ac2a7c1bSSadaf Ebrahimi Yaml yaml = new Yaml(); 71*ac2a7c1bSSadaf Ebrahimi Pojo expected = new Pojo(new String(new byte[] {13, 14, 15, 16})); 72*ac2a7c1bSSadaf Ebrahimi String output = yaml.dump(expected); 73*ac2a7c1bSSadaf Ebrahimi 74*ac2a7c1bSSadaf Ebrahimi assertTrue(output.contains("data: !!binary |-")); 75*ac2a7c1bSSadaf Ebrahimi assertTrue(output.contains("DQ4PEA==")); 76*ac2a7c1bSSadaf Ebrahimi 77*ac2a7c1bSSadaf Ebrahimi Pojo actual = yaml.load(new StringReader(output)); 78*ac2a7c1bSSadaf Ebrahimi assertEquals(expected, actual); 79*ac2a7c1bSSadaf Ebrahimi } 80*ac2a7c1bSSadaf Ebrahimi 81*ac2a7c1bSSadaf Ebrahimi } 82