package io.cattle.platform.object.serialization.impl;
import static org.junit.Assert.*;
import org.junit.Test;
public class DefaultObjectSerializerImplTest {
DefaultObjectSerializerFactoryImpl serializer = new DefaultObjectSerializerFactoryImpl();
@Test
public void testSimpleList() {
Action action = serializer.parseAction("type", "a,b,c");
assertEquals("type[a, b, c]", action.toString());
assertEquals("type", action.getName());
assertEquals(3, action.getChildren().size());
assertEquals(0, action.getChildren().get(0).getChildren().size());
assertEquals("a", action.getChildren().get(0).getName());
assertEquals(0, action.getChildren().get(1).getChildren().size());
assertEquals("b", action.getChildren().get(1).getName());
assertEquals(0, action.getChildren().get(2).getChildren().size());
assertEquals("c", action.getChildren().get(2).getName());
}
@Test
public void testDot() {
Action action = serializer.parseAction("type", "a.x,b.y.z,c");
assertEquals("type[a[x], b[y[z]], c]", action.toString());
assertEquals("type", action.getName());
assertEquals(3, action.getChildren().size());
assertEquals("a", action.getChildren().get(0).getName());
assertEquals(1, action.getChildren().get(0).getChildren().size());
assertEquals("x", action.getChildren().get(0).getChildren().get(0).getName());
assertEquals(1, action.getChildren().get(1).getChildren().size());
assertEquals("b", action.getChildren().get(1).getName());
assertEquals("y", action.getChildren().get(1).getChildren().get(0).getName());
assertEquals(1, action.getChildren().get(1).getChildren().get(0).getChildren().size());
assertEquals("z", action.getChildren().get(1).getChildren().get(0).getChildren().get(0).getName());
assertEquals(0, action.getChildren().get(2).getChildren().size());
assertEquals("c", action.getChildren().get(2).getName());
}
@Test
public void testBrace() {
Action action = serializer.parseAction("type", "a[x],b[y[z]],c");
assertEquals("type[a[x], b[y[z]], c]", action.toString());
action = serializer.parseAction("type", "a[x.y[1,2,c]],b[y[z]],c");
assertEquals("type[a[x[y[1, 2, c]]], b[y[z]], c]", action.toString());
}
}