// Path: src/main/java/org/wmaop/aop/advice/remit/GlobalRemit.java
// public final class GlobalRemit implements Remit {
// 
// 	@Override
// 	public final boolean isApplicable() {
// 		return true;
// 	}
// 
// 	@Override
// 	public boolean isApplicable(Scope scope) {
// 		return scope == ALL || scope == GLOBAL;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "GlobalScope";
// 	}
// }
// 
// Path: src/main/java/org/wmaop/aop/advice/remit/Remit.java
// public interface Remit {
// 	boolean isApplicable();
// 	boolean isApplicable(Scope scope);
// }
// 
// Path: src/main/java/org/wmaop/aop/advice/remit/UserRemit.java
// public class UserRemit implements Remit {
// 
// 	public static final String DEFAULT_USERNAME = "Default";
// 	
// 	private String username;
// 
// 	public UserRemit() {
// 		this.username = getCurrentUsername();
// 	}
// 
// 	public UserRemit(String username) {
// 		this.username = username;
// 	}
// 	
// 	public String getUsername() {
// 		return username;
// 	}
// 	
// 	@Override
// 	public boolean isApplicable() {
// 		return username.equals(getCurrentUsername());
// 	}
// 
// 	@Override
// 	public boolean isApplicable(Scope scope) {
// 		return (scope == ALL || scope == USER) && isApplicable();
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "UserScope[" + username + ']';
// 	}
// 	
// 	private String getCurrentUsername() {
// 		User currentUser = InvokeState.getCurrentUser();
// 		// Verfiy defacto name when not authenticated
// 		return currentUser == null ? DEFAULT_USERNAME : currentUser.getName();
// 	}
// }
// 
// Path: src/main/java/org/wmaop/aop/interceptor/FlowPosition.java
// public class FlowPosition {
// 
// 	public final String packageName;
// 	public final String serviceName;
// 	public final String fqname;
// 	private InterceptPoint interceptPoint;
// 	
// 	public FlowPosition(InterceptPoint point, String fqname) {
// 		interceptPoint = point;
// 		if (fqname == null) {
// 			serviceName = "";
// 			packageName = "";
// 			this.fqname = "";
// 		} else {
// 			this.fqname = fqname;
// 			int pkgsep = fqname.lastIndexOf(':');
// 			if (pkgsep == -1) {
// 				serviceName = fqname;
// 				packageName = "";
// 			} else {
// 				serviceName = fqname.substring(pkgsep + 1);
// 				packageName = fqname.substring(0, pkgsep);
// 			}
// 		}
// 	}
// 	
// 	@Override
// 	public String toString() {
// 		return fqname;
// 	}
// 
// 	public void setInterceptPoint(InterceptPoint point) {
// 		interceptPoint = point;
// 	}
// 
// 	public InterceptPoint getInterceptPoint() {
// 		return interceptPoint;
// 	}
// 
// 	public String getPackageName() {
// 		return packageName;
// 	}
// 
// 	public String getServiceName() {
// 		return serviceName;
// 	}
// 
// 	public String getFqname() {
// 		return fqname;
// 	}
// }
// 
// 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/main/java/org/wmaop/aop/pointcut/PointCut.java
// public interface PointCut {
// 
// 	boolean isApplicable(FlowPosition pipelinePosition, IData idata);
// 
// 	InterceptPoint getInterceptPoint();
// 
// 	FlowPositionMatcher getFlowPositionMatcher();
// 
// 	Object toMap();
// }


import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Before;
import org.junit.Test;
import org.wmaop.aop.advice.remit.GlobalRemit;
import org.wmaop.aop.advice.remit.Remit;
import org.wmaop.aop.advice.remit.UserRemit;
import org.wmaop.aop.interceptor.FlowPosition;
import org.wmaop.aop.interceptor.Interceptor;
import org.wmaop.aop.pointcut.PointCut;
import com.wm.data.IData;
import com.wm.data.IDataFactory;
package org.wmaop.aop.advice;




public class AdviceTest {

	private static final String ADVICE_ID = "adviceid";
	private PointCut pointCut;
	private Interceptor interceptor;
	private FlowPosition pipelinePosition;
	private IData idata;
	private Advice advice;
// Path: src/main/java/org/wmaop/aop/advice/remit/GlobalRemit.java
// public final class GlobalRemit implements Remit {
// 
// 	@Override
// 	public final boolean isApplicable() {
// 		return true;
// 	}
// 
// 	@Override
// 	public boolean isApplicable(Scope scope) {
// 		return scope == ALL || scope == GLOBAL;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "GlobalScope";
// 	}
// }
// 
// Path: src/main/java/org/wmaop/aop/advice/remit/Remit.java
// public interface Remit {
// 	boolean isApplicable();
// 	boolean isApplicable(Scope scope);
// }
// 
// Path: src/main/java/org/wmaop/aop/advice/remit/UserRemit.java
// public class UserRemit implements Remit {
// 
// 	public static final String DEFAULT_USERNAME = "Default";
// 	
// 	private String username;
// 
// 	public UserRemit() {
// 		this.username = getCurrentUsername();
// 	}
// 
// 	public UserRemit(String username) {
// 		this.username = username;
// 	}
// 	
// 	public String getUsername() {
// 		return username;
// 	}
// 	
// 	@Override
// 	public boolean isApplicable() {
// 		return username.equals(getCurrentUsername());
// 	}
// 
// 	@Override
// 	public boolean isApplicable(Scope scope) {
// 		return (scope == ALL || scope == USER) && isApplicable();
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "UserScope[" + username + ']';
// 	}
// 	
// 	private String getCurrentUsername() {
// 		User currentUser = InvokeState.getCurrentUser();
// 		// Verfiy defacto name when not authenticated
// 		return currentUser == null ? DEFAULT_USERNAME : currentUser.getName();
// 	}
// }
// 
// Path: src/main/java/org/wmaop/aop/interceptor/FlowPosition.java
// public class FlowPosition {
// 
// 	public final String packageName;
// 	public final String serviceName;
// 	public final String fqname;
// 	private InterceptPoint interceptPoint;
// 	
// 	public FlowPosition(InterceptPoint point, String fqname) {
// 		interceptPoint = point;
// 		if (fqname == null) {
// 			serviceName = "";
// 			packageName = "";
// 			this.fqname = "";
// 		} else {
// 			this.fqname = fqname;
// 			int pkgsep = fqname.lastIndexOf(':');
// 			if (pkgsep == -1) {
// 				serviceName = fqname;
// 				packageName = "";
// 			} else {
// 				serviceName = fqname.substring(pkgsep + 1);
// 				packageName = fqname.substring(0, pkgsep);
// 			}
// 		}
// 	}
// 	
// 	@Override
// 	public String toString() {
// 		return fqname;
// 	}
// 
// 	public void setInterceptPoint(InterceptPoint point) {
// 		interceptPoint = point;
// 	}
// 
// 	public InterceptPoint getInterceptPoint() {
// 		return interceptPoint;
// 	}
// 
// 	public String getPackageName() {
// 		return packageName;
// 	}
// 
// 	public String getServiceName() {
// 		return serviceName;
// 	}
// 
// 	public String getFqname() {
// 		return fqname;
// 	}
// }
// 
// 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/main/java/org/wmaop/aop/pointcut/PointCut.java
// public interface PointCut {
// 
// 	boolean isApplicable(FlowPosition pipelinePosition, IData idata);
// 
// 	InterceptPoint getInterceptPoint();
// 
// 	FlowPositionMatcher getFlowPositionMatcher();
// 
// 	Object toMap();
// }


// Path: src/test/java/org/wmaop/aop/advice/AdviceTest.java
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Before;
import org.junit.Test;
import org.wmaop.aop.advice.remit.GlobalRemit;
import org.wmaop.aop.advice.remit.Remit;
import org.wmaop.aop.advice.remit.UserRemit;
import org.wmaop.aop.interceptor.FlowPosition;
import org.wmaop.aop.interceptor.Interceptor;
import org.wmaop.aop.pointcut.PointCut;
import com.wm.data.IData;
import com.wm.data.IDataFactory;

package org.wmaop.aop.advice;




public class AdviceTest {

	private static final String ADVICE_ID = "adviceid";
	private PointCut pointCut;
	private Interceptor interceptor;
	private FlowPosition pipelinePosition;
	private IData idata;
	private Advice advice;
	private Remit remit;