// Path: src/test/java/com/github/vbauer/herald/core/BasicTest.java
// @RunWith(BlockJUnit4ClassRunner.class)
// public abstract class BasicTest {
// 
//     protected final void checkUtilConstructorContract(final Class<?> utilClass) {
//         PrivateConstructorChecker
//             .forClass(utilClass)
//             .expectedTypeOfException(UnsupportedOperationException.class)
//             .check();
//     }
// 
// }
// 
// Path: src/main/java/com/github/vbauer/herald/logger/impl/JavaUtilLogFactory.java
// @SuppressWarnings("all")
// @JService(LogFactory.class)
// public class JavaUtilLogFactory extends SimpleLogFactory {
// 
//     public static final String LOGGER_CLASS_NAME = "java.util.logging.Logger";
//     public static final String FACTORY_CLASS_NAME = LOGGER_CLASS_NAME;
//     public static final String FACTORY_METHOD_NAME = "getLogger";
// 
//     
//     public JavaUtilLogFactory() {
//         super(LOGGER_CLASS_NAME, FACTORY_CLASS_NAME, FACTORY_METHOD_NAME);
//     }
// 
// 
//     /**
//      * {@inheritDoc}
//      */
//     @Override
//     public Object createLogger(final Class<?> clazz) {
//         return createLogger(clazz.getSimpleName());
//     }
//     
// }


import com.github.vbauer.herald.core.BasicTest;
import com.github.vbauer.herald.logger.impl.JavaUtilLogFactory;
import org.junit.Test;
import java.lang.reflect.Modifier;
import java.util.logging.Logger;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.notNullValue;
import static org.junit.Assert.assertThat;
package com.github.vbauer.herald.exception;




/**
 * @author Vladislav Bauer
 */

public class HeraldExceptionTest extends BasicTest {

    @Test
    public void testHeraldException() {
        final int modifiers = HeraldException.class.getModifiers();
        assertThat(Modifier.isAbstract(modifiers), equalTo(true));
        assertThat(Modifier.isPublic(modifiers), equalTo(true));

        try {
            throw new HeraldException() {
                private static final long serialVersionUID = 1L;
            };
        } catch (final HeraldException ex) {
            checkMessage(ex);
        }
    }

    @Test
    public void testMissedLogFactoryException() {
        final Class<Logger> loggerClass = Logger.class;
        try {
            throw new MissedLogFactoryException(loggerClass);
        } catch (final MissedLogFactoryException ex) {
            assertThat(loggerClass.isAssignableFrom(ex.getLoggerClass()), equalTo(true));
            checkMessage(ex);
        }
    }

    @Test
    public void testLoggerInstantiationException() {
// Path: src/test/java/com/github/vbauer/herald/core/BasicTest.java
// @RunWith(BlockJUnit4ClassRunner.class)
// public abstract class BasicTest {
// 
//     protected final void checkUtilConstructorContract(final Class<?> utilClass) {
//         PrivateConstructorChecker
//             .forClass(utilClass)
//             .expectedTypeOfException(UnsupportedOperationException.class)
//             .check();
//     }
// 
// }
// 
// Path: src/main/java/com/github/vbauer/herald/logger/impl/JavaUtilLogFactory.java
// @SuppressWarnings("all")
// @JService(LogFactory.class)
// public class JavaUtilLogFactory extends SimpleLogFactory {
// 
//     public static final String LOGGER_CLASS_NAME = "java.util.logging.Logger";
//     public static final String FACTORY_CLASS_NAME = LOGGER_CLASS_NAME;
//     public static final String FACTORY_METHOD_NAME = "getLogger";
// 
//     
//     public JavaUtilLogFactory() {
//         super(LOGGER_CLASS_NAME, FACTORY_CLASS_NAME, FACTORY_METHOD_NAME);
//     }
// 
// 
//     /**
//      * {@inheritDoc}
//      */
//     @Override
//     public Object createLogger(final Class<?> clazz) {
//         return createLogger(clazz.getSimpleName());
//     }
//     
// }


// Path: src/test/java/com/github/vbauer/herald/exception/HeraldExceptionTest.java
import com.github.vbauer.herald.core.BasicTest;
import com.github.vbauer.herald.logger.impl.JavaUtilLogFactory;
import org.junit.Test;
import java.lang.reflect.Modifier;
import java.util.logging.Logger;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.notNullValue;
import static org.junit.Assert.assertThat;

package com.github.vbauer.herald.exception;




/**
 * @author Vladislav Bauer
 */

public class HeraldExceptionTest extends BasicTest {

    @Test
    public void testHeraldException() {
        final int modifiers = HeraldException.class.getModifiers();
        assertThat(Modifier.isAbstract(modifiers), equalTo(true));
        assertThat(Modifier.isPublic(modifiers), equalTo(true));

        try {
            throw new HeraldException() {
                private static final long serialVersionUID = 1L;
            };
        } catch (final HeraldException ex) {
            checkMessage(ex);
        }
    }

    @Test
    public void testMissedLogFactoryException() {
        final Class<Logger> loggerClass = Logger.class;
        try {
            throw new MissedLogFactoryException(loggerClass);
        } catch (final MissedLogFactoryException ex) {
            assertThat(loggerClass.isAssignableFrom(ex.getLoggerClass()), equalTo(true));
            checkMessage(ex);
        }
    }

    @Test
    public void testLoggerInstantiationException() {
        final JavaUtilLogFactory logFactory = new JavaUtilLogFactory();