@Test public void ataqueDe10ElfosNoturnosA10AnosSo3AtacamE29AnoesRecebemAtaques() { ExercitoDeElfos exercito = new ExercitoDeElfos(); ArrayList<Dwarf> dwarves = new ArrayList<Dwarf>(); for (int i = 0; i < 10; i++) { dwarves.add(new Dwarf("" + i)); exercito.alistarElfo(new ElfoNoturno("" + i)); } exercito.reunirElfosVivoEAtacarDwarves(dwarves); for (int i = 0; i < 10; i++) { if (i == 9) { assertEquals(90.0, dwarves.get(i).getVida(), .0); break; } assertEquals(80.0, dwarves.get(i).getVida(), .0); } exercito.reunirElfosVivoEAtacarDwarves(dwarves); for (int i = 0; i < 10; i++) { if (i == 9) { assertEquals(70.0, dwarves.get(i).getVida(), .0); break; } assertEquals(60.0, dwarves.get(i).getVida(), .0); } }
@Test public void ataqueDe5ElfosACincoAnoes() { ExercitoDeElfos exercito = new ExercitoDeElfos(); ArrayList<Dwarf> dwarves = new ArrayList<Dwarf>(); for (int i = 0; i < 5; i++) { dwarves.add(new Dwarf("" + i)); exercito.alistarElfo(new ElfoVerde("" + i)); } exercito.reunirElfosVivoEAtacarDwarves(dwarves); for (int i = 0; i < 5; i++) { assertEquals(60.0, dwarves.get(i).getVida(), .0); } }
@Test public void ataqueDe6ElfosACincoAnoesMasUmElfoEstaMortoENaoAtaca() { ExercitoDeElfos exercito = new ExercitoDeElfos(); ArrayList<Dwarf> dwarves = new ArrayList<Dwarf>(); for (int i = 0; i < 5; i++) { dwarves.add(new Dwarf("" + i)); exercito.alistarElfo(new ElfoVerde("" + i)); } Elfo elfinhoSpec = new Elfo("Elfinho"); elfinhoSpec.perderVida(200); // E Morreu... exercito.alistarElfo(elfinhoSpec); exercito.reunirElfosVivoEAtacarDwarves(dwarves); for (int i = 0; i < 5; i++) { assertEquals(60.0, dwarves.get(i).getVida(), .0); } }
@Test public void ataqueDe6ElfosA6AnoesResultaEmUmAtaqueDeCadaIntercalado() { ExercitoDeElfos exercito = new ExercitoDeElfos(); ArrayList<Dwarf> dwarves = new ArrayList<Dwarf>(); for (int i = 3; i < 6; i++) { dwarves.add(new Dwarf("" + i)); exercito.alistarElfo(new ElfoNoturno("" + i)); } for (int i = 0; i < 3; i++) { dwarves.add(new Dwarf("" + i)); exercito.alistarElfo(new ElfoVerde("" + i)); } exercito.alterarEstrategiaDeAtaque(new EstrategiaIntercalada()); exercito.reunirElfosVivoEAtacarDwarves(dwarves); for (int i = 0; i < 36; i++) { assertEquals( true, i % 2 == 0 ? exercito.getOrdemDoUltimoAtaque().get(i) instanceof ElfoVerde : exercito.getOrdemDoUltimoAtaque().get(i) instanceof ElfoNoturno); } }
@Test public void ataqueDe4ElfosA4AnoesResultaEm8PrimeirosAtaquesDeElfosVerdesE8UltimosEmAtaquesDeElfosNoturnos() { ExercitoDeElfos exercito = new ExercitoDeElfos(); ArrayList<Dwarf> dwarves = new ArrayList<Dwarf>(); for (int i = 2; i < 4; i++) { dwarves.add(new Dwarf("" + i)); exercito.alistarElfo(new ElfoNoturno("" + i)); } for (int i = 0; i < 2; i++) { dwarves.add(new Dwarf("" + i)); exercito.alistarElfo(new ElfoVerde("" + i)); } exercito.alterarEstrategiaDeAtaque(new EstrategiaGreenFirst()); exercito.reunirElfosVivoEAtacarDwarves(dwarves); for (int i = 0; i < 16; i++) { assertEquals( true, i < 8 ? exercito.getOrdemDoUltimoAtaque().get(i) instanceof ElfoVerde : exercito.getOrdemDoUltimoAtaque().get(i) instanceof ElfoNoturno); } }