// Path: src/main/java/myessentials/config/api/ConfigProperty.java
// public class ConfigProperty<T> {
// 
//     private T value;
// 
//     public final String name;
//     public final String category;
//     public final String comment;
// 
// 
//     public ConfigProperty(String name, String category, String comment, T defaultValue) {
//         this.name = name;
//         this.category = category;
//         this.comment = comment;
//         this.value = defaultValue;
//     }
// 
//     /**
//      * Sets the value inside the property
//      */
//     public void set(T value) {
//         this.value = value;
//     }
// 
//     /**
//      * Returns the value retained inside the property
//      */
//     public T get() {
//         return value;
//     }
// 
//     public boolean isClassType(Class clazz) {
//         return value.getClass().isAssignableFrom(clazz);
//     }
// 
//     public Property.Type getType() {
//         return CONFIG_TYPES.get(value.getClass());
//     }
// 
// 
//     private static final Map<Class<?>, Property.Type> CONFIG_TYPES = ImmutableMap.<Class<?>, Property.Type> builder().put(Integer.class, Property.Type.INTEGER)
//             .put(int.class, Property.Type.INTEGER).put(Integer[].class, Property.Type.INTEGER)
//             .put(int[].class, Property.Type.INTEGER).put(Double.class, Property.Type.DOUBLE)
//             .put(double.class, Property.Type.DOUBLE).put(Double[].class, Property.Type.DOUBLE)
//             .put(double[].class, Property.Type.DOUBLE).put(Float.class, Property.Type.DOUBLE)
//             .put(float.class, Property.Type.DOUBLE).put(Float[].class, Property.Type.DOUBLE)
//             .put(float[].class, Property.Type.DOUBLE).put(Boolean.class, Property.Type.BOOLEAN)
//             .put(boolean.class, Property.Type.BOOLEAN).put(Boolean[].class, Property.Type.BOOLEAN)
//             .put(boolean[].class, Property.Type.BOOLEAN).put(String.class, Property.Type.STRING)
//             .put(String[].class, Property.Type.STRING).build();
// 
// }
// 
// Path: src/test/java/myessentials/test/MECTest.java
// public class MECTest extends BaseTest {
// 
//     @Before
//     public void initConfig() {
//         TestConfig.instance.init(configFile, Constants.MOD_ID);
//     }
// 
// }


import junit.framework.Assert;
import myessentials.config.api.ConfigProperty;
import myessentials.test.MECTest;
import org.junit.Before;
import org.junit.Test;
import java.io.File;
package myessentials.test.config;




//@RunWith(MinecraftRunner.class)
public class ConfigTest extends MECTest {

    private FakeConfig config;

    @Before
    public void initConfig() {
        // REF: Move this to METEST when it's needed
        File configDir = configFile.getParentFile();
        File testDir = new File(configDir, "/tests");
        if(!testDir.exists() || !testDir.isDirectory()) {
            testDir.mkdir();
        }
        File testConfigFile = new File(testDir, "/TestConfig.cfg");

        config = new FakeConfig();
        config.init(testConfigFile, "MyEssentials-Core");
    }

    @Test
    public void shouldAddProperty() {
// Path: src/main/java/myessentials/config/api/ConfigProperty.java
// public class ConfigProperty<T> {
// 
//     private T value;
// 
//     public final String name;
//     public final String category;
//     public final String comment;
// 
// 
//     public ConfigProperty(String name, String category, String comment, T defaultValue) {
//         this.name = name;
//         this.category = category;
//         this.comment = comment;
//         this.value = defaultValue;
//     }
// 
//     /**
//      * Sets the value inside the property
//      */
//     public void set(T value) {
//         this.value = value;
//     }
// 
//     /**
//      * Returns the value retained inside the property
//      */
//     public T get() {
//         return value;
//     }
// 
//     public boolean isClassType(Class clazz) {
//         return value.getClass().isAssignableFrom(clazz);
//     }
// 
//     public Property.Type getType() {
//         return CONFIG_TYPES.get(value.getClass());
//     }
// 
// 
//     private static final Map<Class<?>, Property.Type> CONFIG_TYPES = ImmutableMap.<Class<?>, Property.Type> builder().put(Integer.class, Property.Type.INTEGER)
//             .put(int.class, Property.Type.INTEGER).put(Integer[].class, Property.Type.INTEGER)
//             .put(int[].class, Property.Type.INTEGER).put(Double.class, Property.Type.DOUBLE)
//             .put(double.class, Property.Type.DOUBLE).put(Double[].class, Property.Type.DOUBLE)
//             .put(double[].class, Property.Type.DOUBLE).put(Float.class, Property.Type.DOUBLE)
//             .put(float.class, Property.Type.DOUBLE).put(Float[].class, Property.Type.DOUBLE)
//             .put(float[].class, Property.Type.DOUBLE).put(Boolean.class, Property.Type.BOOLEAN)
//             .put(boolean.class, Property.Type.BOOLEAN).put(Boolean[].class, Property.Type.BOOLEAN)
//             .put(boolean[].class, Property.Type.BOOLEAN).put(String.class, Property.Type.STRING)
//             .put(String[].class, Property.Type.STRING).build();
// 
// }
// 
// Path: src/test/java/myessentials/test/MECTest.java
// public class MECTest extends BaseTest {
// 
//     @Before
//     public void initConfig() {
//         TestConfig.instance.init(configFile, Constants.MOD_ID);
//     }
// 
// }


// Path: src/test/java/myessentials/test/config/ConfigTest.java
import junit.framework.Assert;
import myessentials.config.api.ConfigProperty;
import myessentials.test.MECTest;
import org.junit.Before;
import org.junit.Test;
import java.io.File;

package myessentials.test.config;




//@RunWith(MinecraftRunner.class)
public class ConfigTest extends MECTest {

    private FakeConfig config;

    @Before
    public void initConfig() {
        // REF: Move this to METEST when it's needed
        File configDir = configFile.getParentFile();
        File testDir = new File(configDir, "/tests");
        if(!testDir.exists() || !testDir.isDirectory()) {
            testDir.mkdir();
        }
        File testConfigFile = new File(testDir, "/TestConfig.cfg");

        config = new FakeConfig();
        config.init(testConfigFile, "MyEssentials-Core");
    }

    @Test
    public void shouldAddProperty() {
        ConfigProperty<String> prop = new ConfigProperty<String>(