// Path: src/main/java/org/wmaop/aop/advice/Advice.java
// public class Advice {
// 
// 	private final PointCut pointCut;
// 	private final Interceptor interceptor;
// 	private final String id;
// 	private AdviceState adviceState = AdviceState.NEW;
// 	private final Remit remit;
// 
// 	public Advice(String id, Remit remit, PointCut pointCut, Interceptor interceptor) {
// 		this.pointCut = pointCut;
// 		this.interceptor = interceptor;
// 		this.id = id;
// 		this.remit = remit;
// 	}
// 
// 	public Remit getRemit() {
// 		return remit;
// 	}
// 
// 	public PointCut getPointCut() {
// 		return pointCut;
// 	}
// 
// 	public boolean isApplicable(FlowPosition pipelinePosition, IData idata){
// 		return pointCut.isApplicable(pipelinePosition, idata) && remit.isApplicable();
// 	}
// 	
// 	public Interceptor getInterceptor() {
// 		return interceptor;
// 	}
// 
// 	public String getId() {
// 		return id;
// 	}
// 
// 	public AdviceState getAdviceState() {
// 		return adviceState;
// 	}
// 
// 	public void setAdviceState(AdviceState adviceState) {
// 		this.adviceState = adviceState;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return id + ' ' + adviceState + ' ' + pointCut + ' ' + interceptor + ' ' + pointCut.getInterceptPoint() + ' ' + remit;
// 	}
// 	
// 	public Map<String, Object> toMap() {
// 		Map<String, Object> am = new HashMap<>();
// 		am.put("state", adviceState.toString());
// 		am.put("adviceId", id);
// 		am.put("pointcut", pointCut.toMap());
// 		am.put("interceptor", interceptor.toMap());
// 		am.put("remit", remit.toString());
// 		return am;
// 	}
// 
// 	@Override
// 	public int hashCode() {
// 		final int prime = 31;
// 		int result = 1;
// 		result = prime * result + ((id == null) ? 0 : id.hashCode());
// 		return result;
// 	}
// 
// 	@Override
// 	public boolean equals(Object obj) {
// 		if (this == obj)
// 			return true;
// 		if (obj == null)
// 			return false;
// 		if (getClass() != obj.getClass())
// 			return false;
// 		Advice other = (Advice) obj;
// 		if (id == null) {
// 			if (other.id != null)
// 				return false;
// 		} else if (!id.equals(other.id))
// 			return false;
// 		return true;
// 	}
// }
// 
// Path: src/main/java/org/wmaop/aop/advice/AdviceState.java
// public enum AdviceState {
// 
// 	NEW, ENABLED, DISABLED, DISPOSED;
// }
// 
// Path: src/main/java/org/wmaop/aop/assertion/AssertionInterceptor.java
// public class AssertionInterceptor implements Interceptor, Assertable {
// 
// 	private final String assertionName;
// 	private int invokeCount = 0;
// 	private boolean asserted;
// 
// 	public AssertionInterceptor(String assertionName) {
// 		this.assertionName = assertionName;
// 	}
// 
// 	public boolean performAssert(IData idata) {
// 		return true;
// 	}
// 
// 	public void reset() {
// 		invokeCount = 0;
// 		asserted = false;
// 	}
// 
// 	@Override
// 	public final InterceptResult intercept(FlowPosition flowPosition, IData idata) {
// 		invokeCount++;
// 		if (performAssert(idata)) {
// 			asserted = true;
// 		}
// 		return InterceptResult.FALSE;
// 	}
// 
// 	@Override
// 	public int getInvokeCount() {
// 		return invokeCount;
// 	}
// 
// 	public boolean hasAsserted() {
// 		return asserted;
// 	}
// 
// 	@Override
// 	public String getName() {
// 		return assertionName;
// 	}
// 
// 	@Override
// 	public Map<String, Object> toMap() {
// 		Map<String, Object> am = new HashMap<>();
// 		am.put("assertionName", assertionName);
// 		am.put("invokeCount", invokeCount);
// 		am.put("asserted", Boolean.toString(asserted));
// 		return am;
// 	}
// }
// 
// Path: src/main/java/org/wmaop/aop/interceptor/Interceptor.java
// public interface Interceptor {
// 
// 	InterceptResult intercept(FlowPosition flowPosition, IData idata);
// 
// 	int getInvokeCount();
// 
// 	String getName();
// 
// 	Map<String, Object> toMap();
// 
// }


import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.wmaop.aop.advice.Advice;
import org.wmaop.aop.advice.AdviceState;
import org.wmaop.aop.assertion.AssertionInterceptor;
import org.wmaop.aop.interceptor.Interceptor;
package org.wmaop.aop.stub;




public class StubLifecycleObserverTest {

	private StubManager stubManager;
// Path: src/main/java/org/wmaop/aop/advice/Advice.java
// public class Advice {
// 
// 	private final PointCut pointCut;
// 	private final Interceptor interceptor;
// 	private final String id;
// 	private AdviceState adviceState = AdviceState.NEW;
// 	private final Remit remit;
// 
// 	public Advice(String id, Remit remit, PointCut pointCut, Interceptor interceptor) {
// 		this.pointCut = pointCut;
// 		this.interceptor = interceptor;
// 		this.id = id;
// 		this.remit = remit;
// 	}
// 
// 	public Remit getRemit() {
// 		return remit;
// 	}
// 
// 	public PointCut getPointCut() {
// 		return pointCut;
// 	}
// 
// 	public boolean isApplicable(FlowPosition pipelinePosition, IData idata){
// 		return pointCut.isApplicable(pipelinePosition, idata) && remit.isApplicable();
// 	}
// 	
// 	public Interceptor getInterceptor() {
// 		return interceptor;
// 	}
// 
// 	public String getId() {
// 		return id;
// 	}
// 
// 	public AdviceState getAdviceState() {
// 		return adviceState;
// 	}
// 
// 	public void setAdviceState(AdviceState adviceState) {
// 		this.adviceState = adviceState;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return id + ' ' + adviceState + ' ' + pointCut + ' ' + interceptor + ' ' + pointCut.getInterceptPoint() + ' ' + remit;
// 	}
// 	
// 	public Map<String, Object> toMap() {
// 		Map<String, Object> am = new HashMap<>();
// 		am.put("state", adviceState.toString());
// 		am.put("adviceId", id);
// 		am.put("pointcut", pointCut.toMap());
// 		am.put("interceptor", interceptor.toMap());
// 		am.put("remit", remit.toString());
// 		return am;
// 	}
// 
// 	@Override
// 	public int hashCode() {
// 		final int prime = 31;
// 		int result = 1;
// 		result = prime * result + ((id == null) ? 0 : id.hashCode());
// 		return result;
// 	}
// 
// 	@Override
// 	public boolean equals(Object obj) {
// 		if (this == obj)
// 			return true;
// 		if (obj == null)
// 			return false;
// 		if (getClass() != obj.getClass())
// 			return false;
// 		Advice other = (Advice) obj;
// 		if (id == null) {
// 			if (other.id != null)
// 				return false;
// 		} else if (!id.equals(other.id))
// 			return false;
// 		return true;
// 	}
// }
// 
// Path: src/main/java/org/wmaop/aop/advice/AdviceState.java
// public enum AdviceState {
// 
// 	NEW, ENABLED, DISABLED, DISPOSED;
// }
// 
// Path: src/main/java/org/wmaop/aop/assertion/AssertionInterceptor.java
// public class AssertionInterceptor implements Interceptor, Assertable {
// 
// 	private final String assertionName;
// 	private int invokeCount = 0;
// 	private boolean asserted;
// 
// 	public AssertionInterceptor(String assertionName) {
// 		this.assertionName = assertionName;
// 	}
// 
// 	public boolean performAssert(IData idata) {
// 		return true;
// 	}
// 
// 	public void reset() {
// 		invokeCount = 0;
// 		asserted = false;
// 	}
// 
// 	@Override
// 	public final InterceptResult intercept(FlowPosition flowPosition, IData idata) {
// 		invokeCount++;
// 		if (performAssert(idata)) {
// 			asserted = true;
// 		}
// 		return InterceptResult.FALSE;
// 	}
// 
// 	@Override
// 	public int getInvokeCount() {
// 		return invokeCount;
// 	}
// 
// 	public boolean hasAsserted() {
// 		return asserted;
// 	}
// 
// 	@Override
// 	public String getName() {
// 		return assertionName;
// 	}
// 
// 	@Override
// 	public Map<String, Object> toMap() {
// 		Map<String, Object> am = new HashMap<>();
// 		am.put("assertionName", assertionName);
// 		am.put("invokeCount", invokeCount);
// 		am.put("asserted", Boolean.toString(asserted));
// 		return am;
// 	}
// }
// 
// Path: src/main/java/org/wmaop/aop/interceptor/Interceptor.java
// public interface Interceptor {
// 
// 	InterceptResult intercept(FlowPosition flowPosition, IData idata);
// 
// 	int getInvokeCount();
// 
// 	String getName();
// 
// 	Map<String, Object> toMap();
// 
// }


// Path: src/test/java/org/wmaop/aop/stub/StubLifecycleObserverTest.java
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.wmaop.aop.advice.Advice;
import org.wmaop.aop.advice.AdviceState;
import org.wmaop.aop.assertion.AssertionInterceptor;
import org.wmaop.aop.interceptor.Interceptor;

package org.wmaop.aop.stub;




public class StubLifecycleObserverTest {

	private StubManager stubManager;
	private Advice advice;