// Path: src/main/java/com/lsoftware/playdoh/exception/FixtureNotFoundException.java
// public class FixtureNotFoundException extends PlaydohException {
// 
//     public FixtureNotFoundException(String fixtureName) {
//         super("Can't find " + fixtureName + " fixture on classpath");
//     }
// }
// 
// Path: src/test/java/com/lsoftware/playdoh/objects/models/ClassWithoutFixture.java
// public class ClassWithoutFixture {
// }
// 
// Path: src/test/java/com/lsoftware/playdoh/objects/models/Dummy.java
// public class Dummy {
// 
//     private Integer integerValue;
// 
//     private String stringValue;
// 
//     private NestedDummy nestedDummy;
// 
//     Dummy(int integerValue, String stringValue, NestedDummy nestedDummy) {
//         this.integerValue = integerValue;
//         this.stringValue = stringValue;
//         this.nestedDummy = nestedDummy;
//     }
// 
//     public Dummy(){}
// 
//     public int getIntegerValue() {
//         return integerValue;
//     }
// 
//     public void setIntegerValue(int integerValue) {
//         this.integerValue = integerValue;
//     }
// 
//     public String getStringValue() {
//         return stringValue;
//     }
// 
//     public void setStringValue(String stringValue) {
//         this.stringValue = stringValue;
//     }
// 
//     public NestedDummy getNestedDummy() {
//         return nestedDummy;
//     }
// 
//     public void setNestedDummy(NestedDummy nestedDummy) {
//         this.nestedDummy = nestedDummy;
//     }
// 
//     @Override
//     public String toString() {
//         return "Dummy{" +
//                 "integerValue=" + integerValue +
//                 ", stringValue='" + stringValue + '\'' +
//                 ", nested=" + nestedDummy +
//                 '}';
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (!(o instanceof Dummy)) return false;
// 
//         Dummy dummy = (Dummy) o;
// 
//         if (integerValue != null ? !integerValue.equals(dummy.integerValue) : dummy.integerValue != null) return false;
//         if (stringValue != null ? !stringValue.equals(dummy.stringValue) : dummy.stringValue != null) return false;
//         return !(nestedDummy != null ? !nestedDummy.equals(dummy.nestedDummy) : dummy.nestedDummy != null);
// 
//     }
// 
//     @Override
//     public int hashCode() {
//         int result = integerValue != null ? integerValue.hashCode() : 0;
//         result = 31 * result + (stringValue != null ? stringValue.hashCode() : 0);
//         result = 31 * result + (nestedDummy != null ? nestedDummy.hashCode() : 0);
//         return result;
//     }
// }
// 
// Path: src/test/java/com/lsoftware/playdoh/objects/models/ObjectWithEnum.java
// public class ObjectWithEnum {
// 
//     private AnEnum anEnum;
// 
//     public ObjectWithEnum() {
//     }
// 
//     public AnEnum getAnEnum() {
//         return anEnum;
//     }
// 
//     public void setAnEnum(AnEnum anEnum) {
//         this.anEnum = anEnum;
//     }
// 
//     public enum AnEnum {
//         X, Y
//     }
// }
// 
// Path: src/test/java/com/lsoftware/playdoh/objects/models/User.java
// public class User {
// 
//     private String name;
//     private String email;
//     private int age;
// 
//     public User() {
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// 
//     public int getAge() {
//         return age;
//     }
// 
//     public void setAge(int age) {
//         this.age = age;
//     }
// 
//     @Override
//     public String toString() {
//         return "User{" +
//                 "name='" + name + '\'' +
//                 ", email='" + email + '\'' +
//                 ", age=" + age +
//                 '}';
//     }
// }


import com.lsoftware.playdoh.exception.FixtureNotFoundException;
import com.lsoftware.playdoh.objects.collections.*;
import com.lsoftware.playdoh.objects.models.ClassWithoutFixture;
import com.lsoftware.playdoh.objects.models.Dummy;
import com.lsoftware.playdoh.objects.models.ObjectWithEnum;
import com.lsoftware.playdoh.objects.models.User;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static org.junit.Assert.*;
    }

    @Test
    public void testBuildOtherObjectFromFixture() {
        User user1 = Playdoh.build(User.class, "anotherUser");
        assertNotNull(user1);
        assertEquals("Abdi Abidu", user1.getName());
        assertEquals("aa@example.com", user1.getEmail());
        assertEquals(999, user1.getAge());
    }

    @Test
    public void testBuildNestedObjectFromFixture() {
        Dummy dummy = Playdoh.build(Dummy.class, "dummy1");
        assertNotNull(dummy);
        assertNotNull(dummy.getNestedDummy());

        assertEquals(123, dummy.getIntegerValue());
        assertEquals("abc", dummy.getStringValue());
        assertEquals(321, dummy.getNestedDummy().getIntValue());
        assertEquals("xyz", dummy.getNestedDummy().getStringValue());
    }

    @Test
    public void testBuildObjectWithEnumFromFixture() {
        ObjectWithEnum objectWithEnum = Playdoh.build(ObjectWithEnum.class, "objectWithEnum");
        assertNotNull(objectWithEnum);
        assertEquals(ObjectWithEnum.AnEnum.X, objectWithEnum.getAnEnum());
    }

// Path: src/main/java/com/lsoftware/playdoh/exception/FixtureNotFoundException.java
// public class FixtureNotFoundException extends PlaydohException {
// 
//     public FixtureNotFoundException(String fixtureName) {
//         super("Can't find " + fixtureName + " fixture on classpath");
//     }
// }
// 
// Path: src/test/java/com/lsoftware/playdoh/objects/models/ClassWithoutFixture.java
// public class ClassWithoutFixture {
// }
// 
// Path: src/test/java/com/lsoftware/playdoh/objects/models/Dummy.java
// public class Dummy {
// 
//     private Integer integerValue;
// 
//     private String stringValue;
// 
//     private NestedDummy nestedDummy;
// 
//     Dummy(int integerValue, String stringValue, NestedDummy nestedDummy) {
//         this.integerValue = integerValue;
//         this.stringValue = stringValue;
//         this.nestedDummy = nestedDummy;
//     }
// 
//     public Dummy(){}
// 
//     public int getIntegerValue() {
//         return integerValue;
//     }
// 
//     public void setIntegerValue(int integerValue) {
//         this.integerValue = integerValue;
//     }
// 
//     public String getStringValue() {
//         return stringValue;
//     }
// 
//     public void setStringValue(String stringValue) {
//         this.stringValue = stringValue;
//     }
// 
//     public NestedDummy getNestedDummy() {
//         return nestedDummy;
//     }
// 
//     public void setNestedDummy(NestedDummy nestedDummy) {
//         this.nestedDummy = nestedDummy;
//     }
// 
//     @Override
//     public String toString() {
//         return "Dummy{" +
//                 "integerValue=" + integerValue +
//                 ", stringValue='" + stringValue + '\'' +
//                 ", nested=" + nestedDummy +
//                 '}';
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (!(o instanceof Dummy)) return false;
// 
//         Dummy dummy = (Dummy) o;
// 
//         if (integerValue != null ? !integerValue.equals(dummy.integerValue) : dummy.integerValue != null) return false;
//         if (stringValue != null ? !stringValue.equals(dummy.stringValue) : dummy.stringValue != null) return false;
//         return !(nestedDummy != null ? !nestedDummy.equals(dummy.nestedDummy) : dummy.nestedDummy != null);
// 
//     }
// 
//     @Override
//     public int hashCode() {
//         int result = integerValue != null ? integerValue.hashCode() : 0;
//         result = 31 * result + (stringValue != null ? stringValue.hashCode() : 0);
//         result = 31 * result + (nestedDummy != null ? nestedDummy.hashCode() : 0);
//         return result;
//     }
// }
// 
// Path: src/test/java/com/lsoftware/playdoh/objects/models/ObjectWithEnum.java
// public class ObjectWithEnum {
// 
//     private AnEnum anEnum;
// 
//     public ObjectWithEnum() {
//     }
// 
//     public AnEnum getAnEnum() {
//         return anEnum;
//     }
// 
//     public void setAnEnum(AnEnum anEnum) {
//         this.anEnum = anEnum;
//     }
// 
//     public enum AnEnum {
//         X, Y
//     }
// }
// 
// Path: src/test/java/com/lsoftware/playdoh/objects/models/User.java
// public class User {
// 
//     private String name;
//     private String email;
//     private int age;
// 
//     public User() {
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// 
//     public int getAge() {
//         return age;
//     }
// 
//     public void setAge(int age) {
//         this.age = age;
//     }
// 
//     @Override
//     public String toString() {
//         return "User{" +
//                 "name='" + name + '\'' +
//                 ", email='" + email + '\'' +
//                 ", age=" + age +
//                 '}';
//     }
// }


// Path: src/test/java/com/lsoftware/playdoh/PlaydohFixtureObjectBuilder.java
import com.lsoftware.playdoh.exception.FixtureNotFoundException;
import com.lsoftware.playdoh.objects.collections.*;
import com.lsoftware.playdoh.objects.models.ClassWithoutFixture;
import com.lsoftware.playdoh.objects.models.Dummy;
import com.lsoftware.playdoh.objects.models.ObjectWithEnum;
import com.lsoftware.playdoh.objects.models.User;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static org.junit.Assert.*;

    }

    @Test
    public void testBuildOtherObjectFromFixture() {
        User user1 = Playdoh.build(User.class, "anotherUser");
        assertNotNull(user1);
        assertEquals("Abdi Abidu", user1.getName());
        assertEquals("aa@example.com", user1.getEmail());
        assertEquals(999, user1.getAge());
    }

    @Test
    public void testBuildNestedObjectFromFixture() {
        Dummy dummy = Playdoh.build(Dummy.class, "dummy1");
        assertNotNull(dummy);
        assertNotNull(dummy.getNestedDummy());

        assertEquals(123, dummy.getIntegerValue());
        assertEquals("abc", dummy.getStringValue());
        assertEquals(321, dummy.getNestedDummy().getIntValue());
        assertEquals("xyz", dummy.getNestedDummy().getStringValue());
    }

    @Test
    public void testBuildObjectWithEnumFromFixture() {
        ObjectWithEnum objectWithEnum = Playdoh.build(ObjectWithEnum.class, "objectWithEnum");
        assertNotNull(objectWithEnum);
        assertEquals(ObjectWithEnum.AnEnum.X, objectWithEnum.getAnEnum());
    }

    @Test(expected = FixtureNotFoundException.class)