diff options
author | Martin Polden <mpolden@mpolden.no> | 2020-02-06 09:05:14 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2020-02-06 10:48:49 +0100 |
commit | 7452b6d8d2977e0c61414020180041ed93bae73a (patch) | |
tree | 0e76fca05ce6d321c9f0516d38a0efdacc0d41e5 /vespajlib/src/test/java/com/yahoo/slime/SlimeUtilsTest.java | |
parent | fdf01ef9afad82ea5d60bac5a070b53b78498c54 (diff) |
Move SlimeUtils to vespajlib
Diffstat (limited to 'vespajlib/src/test/java/com/yahoo/slime/SlimeUtilsTest.java')
-rw-r--r-- | vespajlib/src/test/java/com/yahoo/slime/SlimeUtilsTest.java | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/vespajlib/src/test/java/com/yahoo/slime/SlimeUtilsTest.java b/vespajlib/src/test/java/com/yahoo/slime/SlimeUtilsTest.java new file mode 100644 index 00000000000..8b13ee74aed --- /dev/null +++ b/vespajlib/src/test/java/com/yahoo/slime/SlimeUtilsTest.java @@ -0,0 +1,81 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.slime; + +import com.yahoo.text.Utf8; +import org.junit.Test; + +import java.io.IOException; + +import static org.hamcrest.core.Is.is; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; + +/** + * @author Ulf Lilleengen + */ +public class SlimeUtilsTest { + + @Test + public void test_copying_slime_types_into_cursor() { + Slime slime = new Slime(); + Cursor root = slime.setObject(); + root.setString("foo", "foobie"); + Cursor subobj = root.setObject("bar"); + + Slime slime2 = new Slime(); + Cursor root2 = slime2.setObject(); + root2.setString("a", "a"); + root2.setLong("b", 2); + root2.setBool("c", true); + root2.setDouble("d", 3.14); + root2.setData("e", new byte[]{0x64}); + root2.setNix("f"); + + SlimeUtils.copyObject(slime2.get(), subobj); + + assertThat(root.toString(), is("{\"foo\":\"foobie\",\"bar\":{\"a\":\"a\",\"b\":2,\"c\":true,\"d\":3.14,\"e\":\"0x64\",\"f\":null}}")); + } + + @Test + public void test_copying_slime_arrays_into_cursor() { + Slime slime = new Slime(); + Cursor root = slime.setObject(); + root.setString("foo", "foobie"); + Cursor subobj = root.setObject("bar"); + + Slime slime2 = new Slime(); + Cursor root2 = slime2.setObject(); + Cursor array = root2.setArray("a"); + array.addString("foo"); + array.addLong(4); + array.addBool(true); + array.addDouble(3.14); + array.addNix(); + array.addData(new byte[]{0x64}); + Cursor objinner = array.addObject(); + objinner.setString("inner", "binner"); + + SlimeUtils.copyObject(slime2.get(), subobj); + + assertThat(root.toString(), is("{\"foo\":\"foobie\",\"bar\":{\"a\":[\"foo\",4,true,3.14,null,\"0x64\",{\"inner\":\"binner\"}]}}")); + } + + @Test + public void test_slime_to_json() throws IOException { + Slime slime = new Slime(); + Cursor root = slime.setObject(); + root.setString("foo", "foobie"); + root.setObject("bar"); + String json = Utf8.toString(SlimeUtils.toJsonBytes(slime)); + assertThat(json, is("{\"foo\":\"foobie\",\"bar\":{}}")); + } + + @Test + public void test_json_to_slime() { + byte[] json = Utf8.toBytes("{\"foo\":\"foobie\",\"bar\":{}}"); + Slime slime = SlimeUtils.jsonToSlime(json); + assertThat(slime.get().field("foo").asString(), is("foobie")); + assertTrue(slime.get().field("bar").valid()); + } + +} |