Package com.google.sitebricks.rendering.control

Source Code of com.google.sitebricks.rendering.control.TextWidgetTest$ANestedType

package com.google.sitebricks.rendering.control;

import com.google.sitebricks.Respond;
import com.google.sitebricks.compiler.ExpressionCompileException;
import com.google.sitebricks.compiler.MvelEvaluatorCompiler;
import static org.easymock.EasyMock.*;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

/**
* @author Dhanji R. Prasanna (dhanji@gmail.com)
*/
public class TextWidgetTest {
    private static final String NAME_VALUES = "nameValues";
    private static final String MVEL_NAMES = "mvelNames";

    @DataProvider(name = NAME_VALUES)
    Object[][] getNameValues() {
        return new Object[][] {
                { "Dhanji" },
                { "Joe" },
                { "Josh" },
        };
    }

    @DataProvider(name = MVEL_NAMES)    //creates a path for expr: ${names.first}
    Object[][] getMvelNames() {
        return new Object[][] {
                {  new TestBackingType(new ANestedType("Dhanji", "NotDhanji")), "Dhanji" },
                new TestBackingType(new ANestedType("Joei", "NotDhanji")), "Joei" },
                new TestBackingType(new ANestedType("Jill", "NotDhanji")), "Jill" },


        };
    }

    public static class TestBackingType {
        private ANestedType names;

        public TestBackingType(ANestedType names) {
            this.names = names;
        }

        public ANestedType getNames() {
            return names;
        }
    }

    public static class ANestedType {
        private String first;
        private String second;

        public ANestedType(String first, String second) {
            this.first = first;
            this.second = second;
        }

        public String getFirst() {
            return first;
        }

        public String getSecond() {
            return second;
        }
    }

    @Test(dataProvider = NAME_VALUES)
    public final void renderATemplateWithObject(final String name) throws ExpressionCompileException {
        final String[] out = new String[1];
        Respond respond = createMock(Respond.class);
        respond.write("Hello " + name);


        replay(respond);

        new TextWidget("Hello ${name}", new MvelEvaluatorCompiler(ATestType.class))
                .render(new ATestType(name), respond);

//        assert ("Hello " + name).equals(out[0]) : "template render failed: " + out[0];
        verify(respond);
    }

    public static class ATestType {
        private String name;

        public ATestType(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }
    }

    @Test(dataProvider = MVEL_NAMES)
    public final void renderATemplateWithObjectGraph(final TestBackingType data, String name) throws ExpressionCompileException {
        final String[] out = new String[1];
        Respond respond = createMock(Respond.class);

        respond.write("Hello " + name);

        replay(respond);

        new TextWidget("Hello ${names.first}", new MvelEvaluatorCompiler(TestBackingType.class))
                .render(data, respond);

//        assert ("Hello " + name).equals(out[0]) : "template render failed: " + out[0];
        verify(respond);
    }
}
TOP

Related Classes of com.google.sitebricks.rendering.control.TextWidgetTest$ANestedType

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.