// Path: src/main/java/com/exmertec/dummie/Dummie.java
// public static <T> T create(Class<T> type) {
//     return prepare(type).build();
// }
// 
// Path: src/main/java/com/exmertec/dummie/Dummie.java
// public static <T> DummyBuilder<T> prepare(Class<T> type) {
//     return new DummyBuilderFactory().prepare(type);
// }
// 
// Path: src/main/java/com/exmertec/dummie/Dummie.java
// public static DummyBuilderFactory withStrategy(GenerationStrategy strategy) {
//     DummyBuilderFactory factory = new DummyBuilderFactory();
//     factory.withStrategy(strategy);
//     return factory;
// }
// 
// Path: src/main/java/com/exmertec/dummie/configuration/GenerationStrategy.java
// public enum GenerationStrategy {
//     DEFAULT, RANDOM
// }


import static com.exmertec.dummie.Dummie.create;
import static com.exmertec.dummie.Dummie.prepare;
import static com.exmertec.dummie.Dummie.withStrategy;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import com.exmertec.dummie.configuration.GenerationStrategy;
import org.junit.Test;
package com.exmertec.dummie;



public class StringTest {
    @Test
    public void should_create_object_with_string_field() throws Exception {
        StringData data = create(StringData.class);

        assertThat(data, not(nullValue()));
        assertThat(data.getStringValue(), is("stringValue"));
    }

    @Test
    public void should_create_object_with_random_strategy() throws Exception {
        StringData data = withStrategy(GenerationStrategy.RANDOM)
            .create(StringData.class);

        assertThat(data, not(nullValue()));
        assertThat(data.getStringValue(), not(nullValue()));
    }

    @Test
    public void should_allow_customize_string_type_fields() throws Exception {
        StringData data = prepare(StringData.class).override("stringValue", "test").build();

        assertThat(data.getStringValue(), is("test"));
    }

    @Test
    public void should_not_write_fields_without_setter() throws Exception {
// Path: src/main/java/com/exmertec/dummie/Dummie.java
// public static <T> T create(Class<T> type) {
//     return prepare(type).build();
// }
// 
// Path: src/main/java/com/exmertec/dummie/Dummie.java
// public static <T> DummyBuilder<T> prepare(Class<T> type) {
//     return new DummyBuilderFactory().prepare(type);
// }
// 
// Path: src/main/java/com/exmertec/dummie/Dummie.java
// public static DummyBuilderFactory withStrategy(GenerationStrategy strategy) {
//     DummyBuilderFactory factory = new DummyBuilderFactory();
//     factory.withStrategy(strategy);
//     return factory;
// }
// 
// Path: src/main/java/com/exmertec/dummie/configuration/GenerationStrategy.java
// public enum GenerationStrategy {
//     DEFAULT, RANDOM
// }


// Path: src/test/java/com/exmertec/dummie/StringTest.java
import static com.exmertec.dummie.Dummie.create;
import static com.exmertec.dummie.Dummie.prepare;
import static com.exmertec.dummie.Dummie.withStrategy;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import com.exmertec.dummie.configuration.GenerationStrategy;
import org.junit.Test;

package com.exmertec.dummie;



public class StringTest {
    @Test
    public void should_create_object_with_string_field() throws Exception {
        StringData data = create(StringData.class);

        assertThat(data, not(nullValue()));
        assertThat(data.getStringValue(), is("stringValue"));
    }

    @Test
    public void should_create_object_with_random_strategy() throws Exception {
        StringData data = withStrategy(GenerationStrategy.RANDOM)
            .create(StringData.class);

        assertThat(data, not(nullValue()));
        assertThat(data.getStringValue(), not(nullValue()));
    }

    @Test
    public void should_allow_customize_string_type_fields() throws Exception {
        StringData data = prepare(StringData.class).override("stringValue", "test").build();

        assertThat(data.getStringValue(), is("test"));
    }

    @Test
    public void should_not_write_fields_without_setter() throws Exception {
        StringData data = create(StringData.class);