Skip to content

Instantly share code, notes, and snippets.

package com.blogspot.plagelao.contracttest.implementaciones;
import com.blogspot.plagelao.contracttest.ContratoParaColecciones;
import java.util.Collection;
import java.util.HashSet;
import junit.framework.Test;
public class HashSetTest extends ContratoParaColecciones {
public HashSetTest() {
package com.blogspot.plagelao.contracttest;
import java.util.Collection;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
public abstract class ContratoParaColecciones {
public ContratoParaColecciones() {
package com.blogspot.plagelao.contracttest.implementaciones;
import com.blogspot.plagelao.contracttest.ContratoParaColecciones;
import java.util.ArrayList;
import java.util.Collection;
public class ArrayListTest extends ContratoParaColecciones {
public ArrayListTest() {
}
@Test
public void insertarElMismoElementoDosVecesAumentaLaLongitudEnDosUniddes() {
Object objeto = new Object();
collection.add(objeto);
assertEquals("Añadir un elemento aumenta en 1 su tamaño", 1, collection.size());
collection.add(objeto);
assertEquals("Añadir de nuevo el mismo elemento aumenta en 1 su tamaño", 2, collection.size());
}
@plagelao
plagelao / Banco.java
Created November 17, 2010 20:08
Banco que casi cumple con la D
public class Banco {
private final OperacionesBancarias operacionesBancarias;
public Banco(OperacionesBancarias operacionesBancarias) {
this.operacionesBancarias = operacionesBancarias;
}
public Cuenta obtenerCuenta(String usuario, Pin pin) {
String token = operacionesBancarias.autenticarUsuario(usuario, pin);
@plagelao
plagelao / Banco.java
Created November 17, 2010 19:04
Banco que viola la D de S.O.L.I.D.
public class Banco {
private final Conector conector;
private final GeneradorToken generadorToken;
public Banco(Conector conector, GeneradorToken generadorToken) {
this.conector = conector;
this.generadorToken = generadorToken;
}
@plagelao
plagelao / Banco.java
Created November 18, 2010 01:25
Banco que no viola la inversión de dependencias
public class Banco {
private final OperacionesBancarias operacionesBancarias;
public Banco(OperacionesBancarias operacionesBancarias) {
this.operacionesBancarias = operacionesBancarias;
}
public Cuenta obtenerCuenta(String usuario, Pin pin) {
Token token = operacionesBancarias.autenticarUsuario(usuario, pin);
@plagelao
plagelao / Banco.java
Created November 19, 2010 16:06
Banco capaz de avisar a quien quiera escucharle de los eventos que se generan
public class Banco {
private final OperacionesBancarias operacionesBancarias;
private final InteresadoEnAccesoACuenta suscriptor;
public Banco(OperacionesBancarias operacionesBancarias,
InteresadoEnAccesoACuenta suscriptor) {
this.operacionesBancarias = operacionesBancarias;
this.suscriptor = suscriptor;
}
@plagelao
plagelao / Cajero.java
Created November 19, 2010 13:11
Interfaz de usuario que se preocupa de la validación
public class Cajero {
public void muestraLaPantallaPrincipal() {
try {
Banco banco = new Banco(new OperacionesBancariasBancoManolito());
Credenciales credenciales = obtenCredenciales();
Cuenta cuenta = banco.obtenerCuenta(credenciales);
muestraInformacionDeLacuenta(cuenta);
} catch (AccesoInvalidadoPorMultiplesReintentosFallidos e) {
@plagelao
plagelao / GUIContraBanco.java
Created November 19, 2010 16:15
Interfaz de usuario que cumple la SOLID
public class Cajero implements InteresadoEnAccesoACuenta {
public void muestraLaPantallaPrincipal() {
Banco banco = new Banco(new OperacionesBancariasBancoManolito(),
this);
banco.obtenerCuenta(obtenCredenciales());
}
public void cuentaObtenida(Cuenta cuenta) {
mostrarInformacionDeLacuenta(cuenta);