Novo framework brazuca - Fixture-factory

Para quem quer melhorar seu ambiente de testes e não gosta de fixtures nem centenas de código criando mock objects temos agora o fixture-factory bastante semelhante aos projetos factory_girl e o dm-sweatshop feitos em Ruby.
O framework possui uma api fluída gerando fake objects baseado em templates.

Exemplos:

Fixture.of(Client.class).addTemplate("valid", new Rule(){{
    add("id", random(Long.class, range(1L, 200L)));
    add("name", random("Anderson Parra", "Arthur Hirata"));
    add("nickname", random("nerd", "geek"));
    add("email", "${nickname}@gmail.com");
    add("birthday", Calendar.getInstance());
    add("address", fixture(Address.class, "valid"));
}});

Forma de utilização:

Client client = Fixture.of(Client.class).gimme("valid");

ou ainda vários objetos baseado no template:

List<Client> clients = Fixture.of(Client.class).gimme(5, "valid");

Suporte a geração reversa baseado em regex:

Fixture.of(Any.class).addTemplate("valid", new Rule(){{
        add("id", regex("\\d{3,5}")); 
        add("phoneNumber", regex("(\\d{2})-(\\d{4})-(\\d{4})"));
});

Helpers para geração de datas

Fixture.of(Any.class).addTemplate("valid", new Rule(){{
    add("dueDate", beforeDate("2011-04-15", new SimpleDateFormat("yyyy-MM-dd")));
    add("payDate", afterDate("2011-04-15", new SimpleDateFormat("yyyy-MM-dd")));
    add("birthday", randomDate("2011-04-15", "2011-11-07", new SimpleDateFormat("yyyy-MM-dd")));
});

Helper para geração de nomes próprios e palavras baseados em dicionário:

Fixture.of(Any.class).addTemplate("valid", new Rule(){{
    add("firstName", firstName()); //exemplo de valor gerado: Christopher
    add("lastName", lastName());  //exemplo de valor gerado: Armstrong
    add("secretWord", regex("\\w{7}")); //exemplo de valor gerado: volante
});

Animal! Já estamos usando aqui na Amil.

parabéns pela iniciativa!

Muito bom, parabéns. Já fiz um watch no github para acompanhar.

\o/

Douglas,

mto bom esse projeto.

Vou utilizar certeza.

Congrats

Showww heim… já to indo pro github ver de perto …

E aí priuli, está no java ainda!!! java forever!!

Abraços léo