// Path: reflection-module/src/main/java/com/palominolabs/benchpress/guice/ReflectiveModuleInstantiationModule.java
// @Nonnull
// public static Module getModuleForModuleNamesString(@Nullable String moduleNames) {
//     if (moduleNames != null) {
//         return new ReflectiveModuleInstantiationModule(
//             Lists.newArrayList(moduleNames.split(",")));
//     }
// 
//     // otherwise, no op module
//     return new AbstractModule() {
//         @Override
//         protected void configure() {
//         }
//     };
// }


import com.google.common.collect.Lists;
import com.google.inject.AbstractModule;
import com.google.inject.CreationException;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.Module;
import com.google.inject.Stage;
import com.google.inject.name.Names;
import com.google.inject.spi.Message;
import org.junit.Test;
import java.util.Collection;
import static com.palominolabs.benchpress.guice.ReflectiveModuleInstantiationModule.getModuleForModuleNamesString;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
package com.palominolabs.benchpress.guice;




public final class ReflectiveModuleInstantiationModuleTest {
    @Test
    public void testNonPublicCtor() {
        runExceptionTest(PrivateCtor.class, "No 0-arg ctor found for " + PrivateCtor.class.getName());
    }

    @Test
    public void testNotAModule() {
        runExceptionTest(NotAModule.class, NotAModule.class.getName() + " is not a " + Module.class.getName());
    }

    @Test
    public void testPublicCtor() {
        createInjector(PublicCtor.class).getInstance(BindTarget.class);
    }

// Path: reflection-module/src/main/java/com/palominolabs/benchpress/guice/ReflectiveModuleInstantiationModule.java
// @Nonnull
// public static Module getModuleForModuleNamesString(@Nullable String moduleNames) {
//     if (moduleNames != null) {
//         return new ReflectiveModuleInstantiationModule(
//             Lists.newArrayList(moduleNames.split(",")));
//     }
// 
//     // otherwise, no op module
//     return new AbstractModule() {
//         @Override
//         protected void configure() {
//         }
//     };
// }


// Path: reflection-module/src/test/java/com/palominolabs/benchpress/guice/ReflectiveModuleInstantiationModuleTest.java
import com.google.common.collect.Lists;
import com.google.inject.AbstractModule;
import com.google.inject.CreationException;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.Module;
import com.google.inject.Stage;
import com.google.inject.name.Names;
import com.google.inject.spi.Message;
import org.junit.Test;
import java.util.Collection;
import static com.palominolabs.benchpress.guice.ReflectiveModuleInstantiationModule.getModuleForModuleNamesString;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;

package com.palominolabs.benchpress.guice;




public final class ReflectiveModuleInstantiationModuleTest {
    @Test
    public void testNonPublicCtor() {
        runExceptionTest(PrivateCtor.class, "No 0-arg ctor found for " + PrivateCtor.class.getName());
    }

    @Test
    public void testNotAModule() {
        runExceptionTest(NotAModule.class, NotAModule.class.getName() + " is not a " + Module.class.getName());
    }

    @Test
    public void testPublicCtor() {
        createInjector(PublicCtor.class).getInstance(BindTarget.class);
    }

    @Test