// 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/NestedDummy.java
// public class NestedDummy {
// 
//     private int intValue;
// 
//     private String stringValue;
// 
//     NestedDummy(int intValue, String stringValue) {
//         this.intValue = intValue;
//         this.stringValue = stringValue;
//     }
// 
//     NestedDummy(){}
// 
//     public int getIntValue() {
//         return intValue;
//     }
// 
//     public void setIntValue(int intValue) {
//         this.intValue = intValue;
//     }
// 
//     public String getStringValue() {
//         return stringValue;
//     }
// 
//     public void setStringValue(String stringValue) {
//         this.stringValue = stringValue;
//     }
// 
//     @Override
//     public String toString() {
//         return "NestedDummy{" +
//                 "intValue=" + intValue +
//                 ", stringValue='" + stringValue + '\'' +
//                 '}';
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (!(o instanceof NestedDummy)) return false;
// 
//         NestedDummy that = (NestedDummy) o;
// 
//         if (intValue != that.intValue) return false;
//         return !(stringValue != null ? !stringValue.equals(that.stringValue) : that.stringValue != null);
// 
//     }
// 
//     @Override
//     public int hashCode() {
//         int result = intValue;
//         result = 31 * result + (stringValue != null ? stringValue.hashCode() : 0);
//         return result;
//     }
// }
// 
// Path: src/test/java/com/lsoftware/playdoh/objects/models/ClassWithoutSetter.java
// public class ClassWithoutSetter {
// 
//     private String field;
// 
//     private String anotherField;
// 
//     public ClassWithoutSetter() {
//     }
// 
//     public String getAnotherField() {
//         return anotherField;
//     }
// 
//     public void setAnotherField(String anotherField) {
//         this.anotherField = anotherField;
//     }
// 
//     public String getField() {
//         return field;
//     }
// 
// 
// }


import com.lsoftware.playdoh.objects.models.Dummy;
import com.lsoftware.playdoh.objects.models.NestedDummy;
import com.lsoftware.playdoh.objects.models.ClassWithoutSetter;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
package com.lsoftware.playdoh;



public class PlaydohSpecificFieldsObjectBuilderTest {

    @Test
    public void testBuildObjectWithSpecificValueOnField() {
        Dummy dummy = Playdoh.builder(Dummy.class)
                .with("stringValue", "test")
                .with("integerValue", 123)
                .build();

        assertEquals("test", dummy.getStringValue());
        assertEquals(123, dummy.getIntegerValue());
    }

    @Test
    public void testBuildObjectWithSpecificNestedObject() {
        NestedDummy nestedDummy = Playdoh.build(NestedDummy.class);

        Dummy dummy = Playdoh.builder(Dummy.class)
// 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/NestedDummy.java
// public class NestedDummy {
// 
//     private int intValue;
// 
//     private String stringValue;
// 
//     NestedDummy(int intValue, String stringValue) {
//         this.intValue = intValue;
//         this.stringValue = stringValue;
//     }
// 
//     NestedDummy(){}
// 
//     public int getIntValue() {
//         return intValue;
//     }
// 
//     public void setIntValue(int intValue) {
//         this.intValue = intValue;
//     }
// 
//     public String getStringValue() {
//         return stringValue;
//     }
// 
//     public void setStringValue(String stringValue) {
//         this.stringValue = stringValue;
//     }
// 
//     @Override
//     public String toString() {
//         return "NestedDummy{" +
//                 "intValue=" + intValue +
//                 ", stringValue='" + stringValue + '\'' +
//                 '}';
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (!(o instanceof NestedDummy)) return false;
// 
//         NestedDummy that = (NestedDummy) o;
// 
//         if (intValue != that.intValue) return false;
//         return !(stringValue != null ? !stringValue.equals(that.stringValue) : that.stringValue != null);
// 
//     }
// 
//     @Override
//     public int hashCode() {
//         int result = intValue;
//         result = 31 * result + (stringValue != null ? stringValue.hashCode() : 0);
//         return result;
//     }
// }
// 
// Path: src/test/java/com/lsoftware/playdoh/objects/models/ClassWithoutSetter.java
// public class ClassWithoutSetter {
// 
//     private String field;
// 
//     private String anotherField;
// 
//     public ClassWithoutSetter() {
//     }
// 
//     public String getAnotherField() {
//         return anotherField;
//     }
// 
//     public void setAnotherField(String anotherField) {
//         this.anotherField = anotherField;
//     }
// 
//     public String getField() {
//         return field;
//     }
// 
// 
// }


// Path: src/test/java/com/lsoftware/playdoh/PlaydohSpecificFieldsObjectBuilderTest.java
import com.lsoftware.playdoh.objects.models.Dummy;
import com.lsoftware.playdoh.objects.models.NestedDummy;
import com.lsoftware.playdoh.objects.models.ClassWithoutSetter;
import org.junit.Test;
import static org.junit.Assert.assertEquals;

package com.lsoftware.playdoh;



public class PlaydohSpecificFieldsObjectBuilderTest {

    @Test
    public void testBuildObjectWithSpecificValueOnField() {
        Dummy dummy = Playdoh.builder(Dummy.class)
                .with("stringValue", "test")
                .with("integerValue", 123)
                .build();

        assertEquals("test", dummy.getStringValue());
        assertEquals(123, dummy.getIntegerValue());
    }

    @Test
    public void testBuildObjectWithSpecificNestedObject() {
        NestedDummy nestedDummy = Playdoh.build(NestedDummy.class);

        Dummy dummy = Playdoh.builder(Dummy.class)
                .with("nestedDummy", nestedDummy)