// Path: src/main/java/br/com/six2six/fixturefactory/loader/FixtureFactoryLoader.java
// public class FixtureFactoryLoader {
// 
// 	public static void loadTemplates(String basePackage) {
//         for (Class<?> clazz : getClassesForPackage(basePackage)) {
//             if (!clazz.isInterface() && TemplateLoader.class.isAssignableFrom(clazz)) {
//                 try {
//                 	((TemplateLoader) clazz.newInstance()).load();
//                 } catch (Exception e) {
//                     throw new RuntimeException(String.format("template %s not loaded", clazz.getName()), e);
//                 }
//             }
//         } 
// 	}
// }
// 
// Path: src/test/java/br/com/six2six/fixturefactory/model/Item.java
// public class Item implements Serializable {
// 
// 	private static final long serialVersionUID = -8679257032342835407L;
// 
// 	private Order order;
// 	
// 	private Integer productId;
// 
// 	public Order getOrder() {
// 		return order;
// 	}
// 
// 	public void setOrder(Order order) {
// 		this.order = order;
// 	}
// 
// 	public Integer getProductId() {
// 		return productId;
// 	}
// 
// 	public void setProductId(Integer productId) {
// 		this.productId = productId;
// 	}
// }
// 
// Path: src/test/java/br/com/six2six/fixturefactory/model/Order.java
// public class Order implements Serializable {
// 
// 	private static final long serialVersionUID = -3858669033991459168L;
// 
// 	private Long id;
// 	
// 	private LocalDateTime registerDate;
// 	
// 	private LocalDate sendDate;
// 	
// 	private List<Item> items;
// 
// 	private Payment payment;
// 	
// 	public Long getId() {
// 		return id;
// 	}
// 
// 	public void setId(Long id) {
// 		this.id = id;
// 	}
// 
// 	public List<Item> getItems() {
// 		return items;
// 	}
// 
// 	public void setItems(List<Item> items) {
// 		this.items = items;
// 	}
// 
// 	public Payment getPayment() {
// 		return payment;
// 	}
// 
// 	public void setPayment(Payment payment) {
// 		this.payment = payment;
// 	}
// 
// 	public LocalDateTime getRegisterDate() {
// 		return registerDate;
// 	}
// 
// 	public void setRegisterDate(LocalDateTime registerDate) {
// 		this.registerDate = registerDate;
// 	}
// 
// 	public LocalDate getSendDate() {
// 		return sendDate;
// 	}
// 
// 	public void setSendDate(LocalDate sendDate) {
// 		this.sendDate = sendDate;
// 	}
// 	
// }


import static org.junit.Assert.assertTrue;
import org.junit.BeforeClass;
import org.junit.Test;
import br.com.six2six.fixturefactory.loader.FixtureFactoryLoader;
import br.com.six2six.fixturefactory.model.Item;
import br.com.six2six.fixturefactory.model.Order;
package br.com.six2six.fixturefactory;




public class FixtureCircularReferenceTest {

	@BeforeClass
	public static void setUp() {
		FixtureFactoryLoader.loadTemplates("br.com.six2six.template");
	}
	
	@Test
	public void circularReference() {
// Path: src/main/java/br/com/six2six/fixturefactory/loader/FixtureFactoryLoader.java
// public class FixtureFactoryLoader {
// 
// 	public static void loadTemplates(String basePackage) {
//         for (Class<?> clazz : getClassesForPackage(basePackage)) {
//             if (!clazz.isInterface() && TemplateLoader.class.isAssignableFrom(clazz)) {
//                 try {
//                 	((TemplateLoader) clazz.newInstance()).load();
//                 } catch (Exception e) {
//                     throw new RuntimeException(String.format("template %s not loaded", clazz.getName()), e);
//                 }
//             }
//         } 
// 	}
// }
// 
// Path: src/test/java/br/com/six2six/fixturefactory/model/Item.java
// public class Item implements Serializable {
// 
// 	private static final long serialVersionUID = -8679257032342835407L;
// 
// 	private Order order;
// 	
// 	private Integer productId;
// 
// 	public Order getOrder() {
// 		return order;
// 	}
// 
// 	public void setOrder(Order order) {
// 		this.order = order;
// 	}
// 
// 	public Integer getProductId() {
// 		return productId;
// 	}
// 
// 	public void setProductId(Integer productId) {
// 		this.productId = productId;
// 	}
// }
// 
// Path: src/test/java/br/com/six2six/fixturefactory/model/Order.java
// public class Order implements Serializable {
// 
// 	private static final long serialVersionUID = -3858669033991459168L;
// 
// 	private Long id;
// 	
// 	private LocalDateTime registerDate;
// 	
// 	private LocalDate sendDate;
// 	
// 	private List<Item> items;
// 
// 	private Payment payment;
// 	
// 	public Long getId() {
// 		return id;
// 	}
// 
// 	public void setId(Long id) {
// 		this.id = id;
// 	}
// 
// 	public List<Item> getItems() {
// 		return items;
// 	}
// 
// 	public void setItems(List<Item> items) {
// 		this.items = items;
// 	}
// 
// 	public Payment getPayment() {
// 		return payment;
// 	}
// 
// 	public void setPayment(Payment payment) {
// 		this.payment = payment;
// 	}
// 
// 	public LocalDateTime getRegisterDate() {
// 		return registerDate;
// 	}
// 
// 	public void setRegisterDate(LocalDateTime registerDate) {
// 		this.registerDate = registerDate;
// 	}
// 
// 	public LocalDate getSendDate() {
// 		return sendDate;
// 	}
// 
// 	public void setSendDate(LocalDate sendDate) {
// 		this.sendDate = sendDate;
// 	}
// 	
// }


// Path: src/test/java/br/com/six2six/fixturefactory/FixtureCircularReferenceTest.java
import static org.junit.Assert.assertTrue;
import org.junit.BeforeClass;
import org.junit.Test;
import br.com.six2six.fixturefactory.loader.FixtureFactoryLoader;
import br.com.six2six.fixturefactory.model.Item;
import br.com.six2six.fixturefactory.model.Order;

package br.com.six2six.fixturefactory;




public class FixtureCircularReferenceTest {

	@BeforeClass
	public static void setUp() {
		FixtureFactoryLoader.loadTemplates("br.com.six2six.template");
	}
	
	@Test
	public void circularReference() {
		Order order = Fixture.from(Order.class).gimme("valid");