// Path: src/test/java/no/saua/remock/exampleapplication/ConfigurationClass.java
// @Configuration
// public class ConfigurationClass {
// 
//     @Bean
//     public SomeService someService() {
//         return new SomeService();
//     }
// }
// 
// Path: src/test/java/no/saua/remock/exampleapplication/SomeService.java
// public class SomeService {
// }
// 
// Path: src/test/java/no/saua/remock/exampleapplication/SomeServiceWithDependencies.java
// @Service
// public class SomeServiceWithDependencies {
// 
//     @Inject
//     private AnInterface anInterface;
// 
//     public AnInterface getDependency() {
//         return anInterface;
//     }
// }


import no.saua.remock.exampleapplication.ConfigurationClass;
import no.saua.remock.exampleapplication.SomeService;
import no.saua.remock.exampleapplication.SomeServiceWithDependencies;
import org.junit.Test;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import javax.inject.Inject;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

        @Test
        public void test() {
            assertFalse(someService.getClass().equals(SomeService.class));
            assertTrue(isMock(someService));
        }
    }

    @ContextConfiguration(classes = ConfigurationClass.class)
    public static class ReplaceWithMockFieldTest extends CommonTest {

        @ReplaceWithMock
        public SomeService someService;

        @Test
        public void test() {
            assertFalse(someService.getClass().equals(SomeService.class));
            assertTrue(isMock(someService));
        }
    }

    @ReplaceWithMock(SomeService.class)
    @ReplaceWithMock(SomeServiceWithDependencies.class)
    @ContextConfiguration(classes = {SomeService.class, SomeServiceWithDependencies.class})
    public static class ReplaceWithMockRepeatedAnnotationTest extends CommonTest {

        @Inject
        public SomeService someService;

        @Inject
// Path: src/test/java/no/saua/remock/exampleapplication/ConfigurationClass.java
// @Configuration
// public class ConfigurationClass {
// 
//     @Bean
//     public SomeService someService() {
//         return new SomeService();
//     }
// }
// 
// Path: src/test/java/no/saua/remock/exampleapplication/SomeService.java
// public class SomeService {
// }
// 
// Path: src/test/java/no/saua/remock/exampleapplication/SomeServiceWithDependencies.java
// @Service
// public class SomeServiceWithDependencies {
// 
//     @Inject
//     private AnInterface anInterface;
// 
//     public AnInterface getDependency() {
//         return anInterface;
//     }
// }


// Path: src/test/java/no/saua/remock/ReplaceWithMockTest.java
import no.saua.remock.exampleapplication.ConfigurationClass;
import no.saua.remock.exampleapplication.SomeService;
import no.saua.remock.exampleapplication.SomeServiceWithDependencies;
import org.junit.Test;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import javax.inject.Inject;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;


        @Test
        public void test() {
            assertFalse(someService.getClass().equals(SomeService.class));
            assertTrue(isMock(someService));
        }
    }

    @ContextConfiguration(classes = ConfigurationClass.class)
    public static class ReplaceWithMockFieldTest extends CommonTest {

        @ReplaceWithMock
        public SomeService someService;

        @Test
        public void test() {
            assertFalse(someService.getClass().equals(SomeService.class));
            assertTrue(isMock(someService));
        }
    }

    @ReplaceWithMock(SomeService.class)
    @ReplaceWithMock(SomeServiceWithDependencies.class)
    @ContextConfiguration(classes = {SomeService.class, SomeServiceWithDependencies.class})
    public static class ReplaceWithMockRepeatedAnnotationTest extends CommonTest {

        @Inject
        public SomeService someService;

        @Inject
        public SomeServiceWithDependencies someServiceWithDependencies;