
@Test
void comisionAlquiler_esDosMeses() {
Inmueble i = new Inmueble("Av X 123", Jurisdiccion.CABA);
Operacion op = new Operacion(i, new EstadoAlquiler(24, 150_000));
assertEquals(300_000.0, op.comision(), 0.0001);
}@Test
void comisionVenta_esDosPorciento() {
Inmueble i = new Inmueble("Calle Y 456", Jurisdiccion.BSAS);
Operacion op = new Operacion(i, new EstadoVenta(20_000_000));
assertEquals(400_000.0, op.comision(), 0.0001);
}@Test
void cantidadOperaciones() {
Inmobiliaria inm = new Inmobiliaria();
inm.registrar(new Operacion(new Inmueble("A", Jurisdiccion.CABA), new EstadoVenta(10_000_000)));
inm.registrar(new Operacion(new Inmueble("B", Jurisdiccion.BSAS), new EstadoAlquiler(12, 100_000)));
assertEquals(2, inm.cantidadOperaciones());
}@Test
void totalComisionesPorJurisdiccion_filtraYSuma() {
Inmobiliaria inm = new Inmobiliaria();
// CABA: 2 meses de 150k = 300kinm.registrar(new Operacion(new Inmueble("CABA-1", Jurisdiccion.CABA), new EstadoAlquiler(24, 150_000)));
// BSAS: 2% de 20M = 400kinm.registrar(new Operacion(new Inmueble("BSAS-1", Jurisdiccion.BSAS), new EstadoVenta(20_000_000)));
// CABA: 2% de 10M = 200kinm.registrar(new Operacion(new Inmueble("CABA-2", Jurisdiccion.CABA), new EstadoVenta(10_000_000)));
assertEquals(500_000.0, inm.totalComisionesPorJurisdiccion(Jurisdiccion.CABA), 0.0001);
assertEquals(400_000.0, inm.totalComisionesPorJurisdiccion(Jurisdiccion.BSAS), 0.0001);
}@Test
void totalComisiones_sumaTodo() {
Inmobiliaria inm = new Inmobiliaria();
inm.registrar(new Operacion(new Inmueble("1", Jurisdiccion.CABA), new EstadoAlquiler(24, 150_000))); // 300k
inm.registrar(new Operacion(new Inmueble("2", Jurisdiccion.BSAS), new EstadoVenta(20_000_000))); // 400k
assertEquals(700_000.0, inm.totalComisiones(), 0.0001);
}@Test
void cambiarEstado_modificaComision() {
Operacion op = new Operacion(
new Inmueble("Av Z 999", Jurisdiccion.CABA),
new EstadoAlquiler(12, 100_000)
);assertEquals(200_000.0, op.comision(), 0.0001);
op.setEstado(new EstadoVenta(10_000_000));
assertEquals(200_000.0, op.comision(), 0.0001); // 2% de 10M
}
