// 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/User.java
// public class User implements Serializable {
// 
// 	private static final long serialVersionUID = 6276678114928905392L;
// 
// 	private String name;
// 	private String login;
// 	private String password;
// 	private Gender gender;
// 	private String email;
// 	private List<UserType> userTypes;
// 	
// 	public String getName() {
// 		return name;
// 	}
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 	public String getLogin() {
// 		return login;
// 	}
// 	public void setLogin(String login) {
// 		this.login = login;
// 	}
// 	public String getPassword() {
// 		return password;
// 	}
// 	public void setPassword(String password) {
// 		this.password = password;
// 	}
// 	public Gender getGender() {
// 		return gender;
// 	}
// 	public void setGender(Gender gender) {
// 		this.gender = gender;
// 	}
// 	public String getEmail() {
// 		return email;
// 	}
// 	public void setEmail(String email) {
// 		this.email = email;
// 	}
// 	public List<UserType> getUserTypes() {
// 		return userTypes;
// 	}
// 	public void setUserTypes(List<UserType> userTypes) {
// 		this.userTypes = userTypes;
// 	}
// 	
// }


import static org.junit.Assert.assertNotNull;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import org.junit.BeforeClass;
import org.junit.Test;
import br.com.six2six.fixturefactory.loader.FixtureFactoryLoader;
import br.com.six2six.fixturefactory.model.User;
package br.com.six2six.fixturefactory;




public class FixtureUserTest {

	@BeforeClass
	public static void setUp() {
		FixtureFactoryLoader.loadTemplates("br.com.six2six.template");
	}

	@Test
	public void fixtureAnyUser() {
		User user = Fixture.from(User.class).gimme("anyValidUser");
		assertNotNull("User should not be null", user);
	}

	@Test
	public void fixtureFemaleUser() {
		User user = Fixture.from(User.class).gimme("validFemaleUser");
		assertNotNull("User should not be null", user);
	}

    @Test
    public void fixtureValidWithRulesOutOfOrder() {
        User user = Fixture.from(User.class).gimme("validWithRulesOutOfOrder");
// 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/User.java
// public class User implements Serializable {
// 
// 	private static final long serialVersionUID = 6276678114928905392L;
// 
// 	private String name;
// 	private String login;
// 	private String password;
// 	private Gender gender;
// 	private String email;
// 	private List<UserType> userTypes;
// 	
// 	public String getName() {
// 		return name;
// 	}
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 	public String getLogin() {
// 		return login;
// 	}
// 	public void setLogin(String login) {
// 		this.login = login;
// 	}
// 	public String getPassword() {
// 		return password;
// 	}
// 	public void setPassword(String password) {
// 		this.password = password;
// 	}
// 	public Gender getGender() {
// 		return gender;
// 	}
// 	public void setGender(Gender gender) {
// 		this.gender = gender;
// 	}
// 	public String getEmail() {
// 		return email;
// 	}
// 	public void setEmail(String email) {
// 		this.email = email;
// 	}
// 	public List<UserType> getUserTypes() {
// 		return userTypes;
// 	}
// 	public void setUserTypes(List<UserType> userTypes) {
// 		this.userTypes = userTypes;
// 	}
// 	
// }


// Path: src/test/java/br/com/six2six/fixturefactory/FixtureUserTest.java
import static org.junit.Assert.assertNotNull;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import org.junit.BeforeClass;
import org.junit.Test;
import br.com.six2six.fixturefactory.loader.FixtureFactoryLoader;
import br.com.six2six.fixturefactory.model.User;

package br.com.six2six.fixturefactory;




public class FixtureUserTest {

	@BeforeClass
	public static void setUp() {
		FixtureFactoryLoader.loadTemplates("br.com.six2six.template");
	}

	@Test
	public void fixtureAnyUser() {
		User user = Fixture.from(User.class).gimme("anyValidUser");
		assertNotNull("User should not be null", user);
	}

	@Test
	public void fixtureFemaleUser() {
		User user = Fixture.from(User.class).gimme("validFemaleUser");
		assertNotNull("User should not be null", user);
	}

    @Test
    public void fixtureValidWithRulesOutOfOrder() {
        User user = Fixture.from(User.class).gimme("validWithRulesOutOfOrder");
        assertNotNull("User should not be null", user);