// Path: src/main/java/com/github/marcelothebuilder/webpedidos/model/endereco/Cidade.java
// @Entity
// @Table(name="cidade")
// public class Cidade implements Serializable {
// 	private static final long serialVersionUID = 1L;
// 	private Integer codigo;
// 	private String nome;
// 	private Estado estado;
// 
// 	@Id
// 	@GeneratedValue(strategy = GenerationType.IDENTITY)
// 	public Integer getCodigo() {
// 		return codigo;
// 	}
// 
// 	public void setCodigo(Integer codigo) {
// 		this.codigo = codigo;
// 	}
// 
// 	@NotBlank
// 	@Size(min = 3, max = 50)
// 	@Column(nullable = false, length = 50)
// 	public String getNome() {
// 		return nome;
// 	}
// 
// 	public void setNome(String nome) {
// 		this.nome = nome;
// 	}
// 
// 	@NotNull
// 	@ManyToOne(cascade = CascadeType.PERSIST, optional = false)
// 	@JoinColumn(name = "estado_codigo", nullable = false, foreignKey = @ForeignKey(name = "fk_cidade_to_estado"))
// 	public Estado getEstado() {
// 		return estado;
// 	}
// 
// 	public void setEstado(Estado estado) {
// 		this.estado = estado;
// 	}
// 
// 	@Override
// 	public int hashCode() {
// 		final int prime = 31;
// 		int result = 1;
// 		result = prime * result + ((codigo == null) ? 0 : codigo.hashCode());
// 		return result;
// 	}
// 
// 	@Override
// 	public boolean equals(Object obj) {
// 		if (this == obj)
// 			return true;
// 		if (obj == null)
// 			return false;
// 		if (!(obj instanceof Cidade))
// 			return false;
// 		Cidade other = (Cidade) obj;
// 		if (codigo == null) {
// 			if (other.codigo != null)
// 				return false;
// 		} else if (!codigo.equals(other.codigo))
// 			return false;
// 		return true;
// 	}
// 
// 	
// 
// }
// 
// Path: src/main/java/com/github/marcelothebuilder/webpedidos/repository/Cidades.java
// public class Cidades implements Serializable {
// 	private static final long serialVersionUID = 9157858269113943535L;
// 
// 	private @Inject EntityManager manager;
// 
// 	public Set<Cidade> todos() {
// 		List<Cidade> list = manager.createQuery("from Cidade", Cidade.class).getResultList();
// 		return new HashSet<>(list);
// 	}
// 
// 	public Cidade porCodigo(Integer codigo) {
// 		return manager.find(Cidade.class, codigo);
// 	}
// 
// 	public Set<Cidade> filtrados(CidadeFilter filter) {
// 		// criteriaBuilder
// 		CriteriaBuilder cb = manager.getCriteriaBuilder();
// 
// 		// metamodel
// 		Metamodel metamodel = manager.getMetamodel();
// 
// 		// entity model
// 		EntityType<Cidade> type = metamodel.entity(Cidade.class);
// 
// 		// criteriaQuery
// 		CriteriaQuery<Cidade> cq = cb.createQuery(Cidade.class);
// 
// 		// root
// 		Root<Cidade> root = cq.from(Cidade.class);
// 
// 		List<Predicate> predicates = new LinkedList<>();
// 
// 		if (StringUtils.isNotBlank(filter.getNome())) {
// 			SingularAttribute<Cidade, String> attr = type.getDeclaredSingularAttribute("nome", String.class);
// 			Expression<String> lowerCaseNome = cb.lower(root.get(attr));
// 
// 			String likeMatchString = String.format("%s%%", filter.getNome().toLowerCase());
// 
// 			Predicate siglaPredicate = cb.like(lowerCaseNome, likeMatchString);
// 			predicates.add(siglaPredicate);
// 		}
// 
// 		if (filter.getEstado() != null) {
// 			SingularAttribute<Cidade, Estado> attr = type.getDeclaredSingularAttribute("estado", Estado.class);
// 			Path<Estado> estadoPath = root.get(attr);
// 
// 			Predicate estadoPredicate = cb.equal(estadoPath, filter.getEstado());
// 			predicates.add(estadoPredicate);
// 		}
// 
// 		// adiciona predicates
// 		cq.where(predicates.toArray(new Predicate[] {}));
// 
// 		// return query
// 		TypedQuery<Cidade> query = manager.createQuery(cq);
// 		List<Cidade> resultList = query.getResultList();
// 		return new HashSet<>(resultList);
// 	}
// 
// }


import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import com.github.marcelothebuilder.webpedidos.model.endereco.Cidade;
import com.github.marcelothebuilder.webpedidos.repository.Cidades;

package com.github.marcelothebuilder.webpedidos.converter;




public class CidadeConverterTest {
	
	@Mock
	private Cidades cidades;
	
	@InjectMocks
	private CidadeConverter converter;
	
	private Cidade entitadeEntradaSaida;
	
	private Integer codigoEntradaSaidaNumber;
	private String codigoEntradaSaidaString;

	@Before
	public void setUp() throws Exception {
		MockitoAnnotations.initMocks(this);
		
		this.codigoEntradaSaidaNumber = 5;
		this.codigoEntradaSaidaString = this.codigoEntradaSaidaNumber.toString();
		
		this.entitadeEntradaSaida = new Cidade();

// Path: src/main/java/com/github/marcelothebuilder/webpedidos/model/endereco/Cidade.java
// @Entity
// @Table(name="cidade")
// public class Cidade implements Serializable {
// 	private static final long serialVersionUID = 1L;
// 	private Integer codigo;
// 	private String nome;
// 	private Estado estado;
// 
// 	@Id
// 	@GeneratedValue(strategy = GenerationType.IDENTITY)
// 	public Integer getCodigo() {
// 		return codigo;
// 	}
// 
// 	public void setCodigo(Integer codigo) {
// 		this.codigo = codigo;
// 	}
// 
// 	@NotBlank
// 	@Size(min = 3, max = 50)
// 	@Column(nullable = false, length = 50)
// 	public String getNome() {
// 		return nome;
// 	}
// 
// 	public void setNome(String nome) {
// 		this.nome = nome;
// 	}
// 
// 	@NotNull
// 	@ManyToOne(cascade = CascadeType.PERSIST, optional = false)
// 	@JoinColumn(name = "estado_codigo", nullable = false, foreignKey = @ForeignKey(name = "fk_cidade_to_estado"))
// 	public Estado getEstado() {
// 		return estado;
// 	}
// 
// 	public void setEstado(Estado estado) {
// 		this.estado = estado;
// 	}
// 
// 	@Override
// 	public int hashCode() {
// 		final int prime = 31;
// 		int result = 1;
// 		result = prime * result + ((codigo == null) ? 0 : codigo.hashCode());
// 		return result;
// 	}
// 
// 	@Override
// 	public boolean equals(Object obj) {
// 		if (this == obj)
// 			return true;
// 		if (obj == null)
// 			return false;
// 		if (!(obj instanceof Cidade))
// 			return false;
// 		Cidade other = (Cidade) obj;
// 		if (codigo == null) {
// 			if (other.codigo != null)
// 				return false;
// 		} else if (!codigo.equals(other.codigo))
// 			return false;
// 		return true;
// 	}
// 
// 	
// 
// }
// 
// Path: src/main/java/com/github/marcelothebuilder/webpedidos/repository/Cidades.java
// public class Cidades implements Serializable {
// 	private static final long serialVersionUID = 9157858269113943535L;
// 
// 	private @Inject EntityManager manager;
// 
// 	public Set<Cidade> todos() {
// 		List<Cidade> list = manager.createQuery("from Cidade", Cidade.class).getResultList();
// 		return new HashSet<>(list);
// 	}
// 
// 	public Cidade porCodigo(Integer codigo) {
// 		return manager.find(Cidade.class, codigo);
// 	}
// 
// 	public Set<Cidade> filtrados(CidadeFilter filter) {
// 		// criteriaBuilder
// 		CriteriaBuilder cb = manager.getCriteriaBuilder();
// 
// 		// metamodel
// 		Metamodel metamodel = manager.getMetamodel();
// 
// 		// entity model
// 		EntityType<Cidade> type = metamodel.entity(Cidade.class);
// 
// 		// criteriaQuery
// 		CriteriaQuery<Cidade> cq = cb.createQuery(Cidade.class);
// 
// 		// root
// 		Root<Cidade> root = cq.from(Cidade.class);
// 
// 		List<Predicate> predicates = new LinkedList<>();
// 
// 		if (StringUtils.isNotBlank(filter.getNome())) {
// 			SingularAttribute<Cidade, String> attr = type.getDeclaredSingularAttribute("nome", String.class);
// 			Expression<String> lowerCaseNome = cb.lower(root.get(attr));
// 
// 			String likeMatchString = String.format("%s%%", filter.getNome().toLowerCase());
// 
// 			Predicate siglaPredicate = cb.like(lowerCaseNome, likeMatchString);
// 			predicates.add(siglaPredicate);
// 		}
// 
// 		if (filter.getEstado() != null) {
// 			SingularAttribute<Cidade, Estado> attr = type.getDeclaredSingularAttribute("estado", Estado.class);
// 			Path<Estado> estadoPath = root.get(attr);
// 
// 			Predicate estadoPredicate = cb.equal(estadoPath, filter.getEstado());
// 			predicates.add(estadoPredicate);
// 		}
// 
// 		// adiciona predicates
// 		cq.where(predicates.toArray(new Predicate[] {}));
// 
// 		// return query
// 		TypedQuery<Cidade> query = manager.createQuery(cq);
// 		List<Cidade> resultList = query.getResultList();
// 		return new HashSet<>(resultList);
// 	}
// 
// }


// Path: src/test/java/com/github/marcelothebuilder/webpedidos/converter/CidadeConverterTest.java
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import com.github.marcelothebuilder.webpedidos.model.endereco.Cidade;
import com.github.marcelothebuilder.webpedidos.repository.Cidades;

package com.github.marcelothebuilder.webpedidos.converter;




public class CidadeConverterTest {
	
	@Mock
	private Cidades cidades;
	
	@InjectMocks
	private CidadeConverter converter;
	
	private Cidade entitadeEntradaSaida;
	
	private Integer codigoEntradaSaidaNumber;
	private String codigoEntradaSaidaString;

	@Before
	public void setUp() throws Exception {
		MockitoAnnotations.initMocks(this);
		
		this.codigoEntradaSaidaNumber = 5;
		this.codigoEntradaSaidaString = this.codigoEntradaSaidaNumber.toString();
		
		this.entitadeEntradaSaida = new Cidade();

		this.entitadeEntradaSaida.setCodigo(this.codigoEntradaSaidaNumber);
