Package com.indeed.proctor.common

Source Code of com.indeed.proctor.common.TestPayloadType

package com.indeed.proctor.common;

import com.google.common.collect.ImmutableMap;
import com.indeed.proctor.common.model.Payload;
import com.indeed.proctor.common.PayloadType;
import org.junit.Test;

import java.util.Collections;
import java.util.List;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

/**
* @author pwp
*/
public class TestPayloadType {
    @Test
    public void testPayloadTypeNames() {
        List<String> names = PayloadType.allTypeNames();
        assertEquals(7, names.size());

        for (String s : new String[]{"doubleValue", "doubleArray",
                                     "longValue", "longArray",
                                     "stringValue", "stringArray","map"}) {
            PayloadType p = PayloadType.payloadTypeForName(s);
            assertEquals(s, p.payloadTypeName);
        }
        // Verify that trying to get the PayloadType for a nonsense
        // name throws an exception.
        try {
            PayloadType p = PayloadType.payloadTypeForName("gruntleBuggy");
            assertFalse("should have thrown IllegalArgumentException on \"gruntleBuggy\"", true);
        } catch (IllegalArgumentException e) {
            // expected.
        }
    }

    private Payload[] getTestPayloads() {
        Payload[] payloads = new Payload[7];
        for (int i = 0; i < payloads.length; i++)
            payloads[i] = new Payload();
        payloads[0].setDoubleValue(47.0D);
        payloads[1].setDoubleArray(new Double[]{98.0D, -137D});
        payloads[2].setLongValue(42L);
        payloads[3].setLongArray(new Long[]{9L, 8L, 7L, 6L, 5L, 4L});
        payloads[4].setStringValue("foobar");
        payloads[5].setStringArray(new String[]{"foo", "bar", "baz"});
        payloads[6].setMap(ImmutableMap.of("a", new Double(1.0D), "b", new Double[]{57.0D, -8.0D, 79.97D}, "c", (Object) "somevals"));
        return payloads;
    }

    // Must be in the same order as getTestPayloads().
    private PayloadType[] allPayloadTypes() {
        return new PayloadType[]{PayloadType.DOUBLE_VALUE, PayloadType.DOUBLE_ARRAY,
                                  PayloadType.LONG_VALUE, PayloadType.LONG_ARRAY,
                                  PayloadType.STRING_VALUE, PayloadType.STRING_ARRAY,
                                  PayloadType.MAP};
    }

    @Test
    public void testPayloadHasType() {
        final Payload[] payloads = getTestPayloads();
        final PayloadType[] payloadTypes = allPayloadTypes();
        for (int i = 0; i < payloads.length; i++) {
            for (int j = 0; j < payloadTypes.length; j++) {
                if (i == j) {
                    assertTrue("should be true: payloadTypes["+j+"].payloadHasThisType(payloads["+i+"])", payloadTypes[j].payloadHasThisType(payloads[i]));
                    assertTrue("should be true: payloads[i].fetchType().equals(payloadTypes[j].payloadTypeName",
                            payloads[i].fetchType().equals(payloadTypes[j].payloadTypeName));
                } else {
                    assertFalse("should be false: payloadTypes["+j+"].payloadHasThisType(payloads["+i+"])", payloadTypes[j].payloadHasThisType(payloads[i]));
                }
            }
        }
    }
}
TOP

Related Classes of com.indeed.proctor.common.TestPayloadType

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.