import "copyright.stg"
import "primitiveHashCode.stg"
import "primitiveLiteral.stg"
import "primitiveEquals.stg"

skipBoolean() ::= "true"

isTest() ::= "true"

targetPath() ::= "org/eclipse/collections/impl/map/mutable/primitive"

fileName(primitive) ::= "SynchronizedObject<primitive.name>MapTest"

class(primitive) ::= <<
<body(primitive.type, primitive.name, primitive.wrapperName)>
>>

body(type, name, wrapperName) ::= <<
<copyright()>

package org.eclipse.collections.impl.map.mutable.primitive;

import org.junit.Assert;
import org.junit.Test;

/**
 * JUnit test for {@link SynchronizedObject<name>Map}.
 * This file was automatically generated from template file synchronizedObjectPrimitiveMapTest.stg.
 */
public class SynchronizedObject<name>MapTest extends AbstractMutableObject<name>MapTestCase
{
    private final SynchronizedObject<name>Map\<String> map = this.classUnderTest();

    @Override
    protected SynchronizedObject<name>Map\<String> classUnderTest()
    {
        return new SynchronizedObject<name>Map\<>(Object<name>HashMap.newWithKeysValues("0", <(literal.(type))("0")>, "1", <(literal.(type))("1")>, "2", <(literal.(type))("2")>));
    }

    @Override
    protected \<T> SynchronizedObject<name>Map\<T> newWithKeysValues(T key1, <type> value1)
    {
        return new SynchronizedObject<name>Map\<>(Object<name>HashMap.newWithKeysValues(key1, value1));
    }

    @Override
    protected \<T> SynchronizedObject<name>Map\<T> newWithKeysValues(T key1, <type> value1, T key2, <type> value2)
    {
        return new SynchronizedObject<name>Map\<>(Object<name>HashMap.newWithKeysValues(key1, value1, key2, value2));
    }

    @Override
    protected \<T> SynchronizedObject<name>Map\<T> newWithKeysValues(T key1, <type> value1, T key2, <type> value2, T key3, <type> value3)
    {
        return new SynchronizedObject<name>Map\<>(Object<name>HashMap.newWithKeysValues(key1, value1, key2, value2, key3, value3));
    }

    @Override
    protected \<T> SynchronizedObject<name>Map\<T> newWithKeysValues(T key1, <type> value1, T key2, <type> value2, T key3, <type> value3, T key4, <type> value4)
    {
        return new SynchronizedObject<name>Map\<>(Object<name>HashMap.newWithKeysValues(key1, value1, key2, value2, key3, value3, key4, value4));
    }

    @Override
    protected \<T> SynchronizedObject<name>Map\<T> getEmptyMap()
    {
        return new SynchronizedObject<name>Map\<>(new Object<name>HashMap\<>());
    }

    @Override
    @Test
    public void asSynchronized()
    {
        super.asSynchronized();
        Assert.assertSame(this.map, this.map.asSynchronized());
    }
}

>>
