// Path: src/test/java/no/saua/remock/exampleapplication/AnInterfaceImplOne.java
// @Component
// public class AnInterfaceImplOne implements AnInterface {
// 
//     @Override
//     public String someMethod() {
//         return "someMethodOne";
//     }
// }
// 
// Path: src/test/java/no/saua/remock/exampleapplication/AnInterfaceImplTwo.java
// @Component
// public class AnInterfaceImplTwo implements AnInterface {
//     @Override
//     public String someMethod() {
//         return "someMethodTwo";
//     }
// }
// 
// Path: src/test/java/no/saua/remock/exampleapplication/ExampleFactoryBean.java
// @Service
// public class ExampleFactoryBean implements FactoryBean<ExampleFactoryBean.BeanFromFactoryBean> {
//     @Override
//     public BeanFromFactoryBean getObject() throws Exception {
//         return new BeanFromFactoryBean();
//     }
// 
//     @Override
//     public Class<BeanFromFactoryBean> getObjectType() {
//         return BeanFromFactoryBean.class;
//     }
// 
//     @Override
//     public boolean isSingleton() {
//         return false;
//     }
// 
//     public static class BeanFromFactoryBean {
//         public String someMethod() {
//             return null;
//         }
//     }
// }
// 
// Path: src/test/java/no/saua/remock/exampleapplication/SomeService.java
// public class SomeService {
// }


import no.saua.remock.exampleapplication.AnInterfaceImplOne;
import no.saua.remock.exampleapplication.AnInterfaceImplTwo;
import no.saua.remock.exampleapplication.ExampleFactoryBean;
import no.saua.remock.exampleapplication.SomeService;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;
import org.springframework.test.context.ContextConfiguration;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.when;
package no.saua.remock;



/**
 * Checks that Mocks and spies are reset after every test-method. Note that the ordering of the test are significant.
 */
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@ContextConfiguration(classes = {SomeService.class, AnInterfaceImplOne.class, AnInterfaceImplTwo.class})
public class ResetTest extends CommonTest {

    @ReplaceWithMock
    public AnInterfaceImplOne mock;

    @WrapWithSpy(AnInterfaceImplTwo.class)
    public AnInterfaceImplTwo spy;

// Path: src/test/java/no/saua/remock/exampleapplication/AnInterfaceImplOne.java
// @Component
// public class AnInterfaceImplOne implements AnInterface {
// 
//     @Override
//     public String someMethod() {
//         return "someMethodOne";
//     }
// }
// 
// Path: src/test/java/no/saua/remock/exampleapplication/AnInterfaceImplTwo.java
// @Component
// public class AnInterfaceImplTwo implements AnInterface {
//     @Override
//     public String someMethod() {
//         return "someMethodTwo";
//     }
// }
// 
// Path: src/test/java/no/saua/remock/exampleapplication/ExampleFactoryBean.java
// @Service
// public class ExampleFactoryBean implements FactoryBean<ExampleFactoryBean.BeanFromFactoryBean> {
//     @Override
//     public BeanFromFactoryBean getObject() throws Exception {
//         return new BeanFromFactoryBean();
//     }
// 
//     @Override
//     public Class<BeanFromFactoryBean> getObjectType() {
//         return BeanFromFactoryBean.class;
//     }
// 
//     @Override
//     public boolean isSingleton() {
//         return false;
//     }
// 
//     public static class BeanFromFactoryBean {
//         public String someMethod() {
//             return null;
//         }
//     }
// }
// 
// Path: src/test/java/no/saua/remock/exampleapplication/SomeService.java
// public class SomeService {
// }


// Path: src/test/java/no/saua/remock/ResetTest.java
import no.saua.remock.exampleapplication.AnInterfaceImplOne;
import no.saua.remock.exampleapplication.AnInterfaceImplTwo;
import no.saua.remock.exampleapplication.ExampleFactoryBean;
import no.saua.remock.exampleapplication.SomeService;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;
import org.springframework.test.context.ContextConfiguration;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.when;

package no.saua.remock;



/**
 * Checks that Mocks and spies are reset after every test-method. Note that the ordering of the test are significant.
 */
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@ContextConfiguration(classes = {SomeService.class, AnInterfaceImplOne.class, AnInterfaceImplTwo.class})
public class ResetTest extends CommonTest {

    @ReplaceWithMock
    public AnInterfaceImplOne mock;

    @WrapWithSpy(AnInterfaceImplTwo.class)
    public AnInterfaceImplTwo spy;

    @ReplaceWithMock