Olá pessoal, estou com uma dúvida no exercício citado, que traz o seguinte:
1) Será que nosso programa funciona para um determinado dia que ocorrer apenas uma única negociação?
Vamos escrever o teste, e ver o que acontece:
public class TestaCandlestickFactoryComUmaNegociacaoApenas {
public static void main(String[] args) {
Calendar hoje = Calendar.getInstance();
Negociacao negociacao1 = new Negociacao(40.5, 100, hoje);
List<Negociacao> negociacoes = Arrays.asList(negociacao1);
CandlestickFactory fabrica = new CandlestickFactory();
Candlestick candle = fabrica.constroiCandleParaData(hoje, negociacoes);
System.out.println(candle.getAbertura());
System.out.println(candle.getFechamento());
System.out.println(candle.getMinimo());
System.out.println(candle.getMaximo());
System.out.println(candle.getVolume());
}
}
Ao final do exercício, o seguinte é afirmado: A saída deve indicar 40.5 como todos os valores, e 4050.0 como volume. Tudo parece bem?
Porém, pelas minhas contas, o volume deveria ser 40.5 mesmo…pois na fabrica (CandlestickFactory), o método constroiCandleParaData faz o seguinte:
for (Negociacao negociacao : negociacoes) {
volume += negociacao.getPreco();
Como só tem uma negociação cujo preço é 40.5, o volume deveria ser o mesmo valor, não?
Alguém pode me ajudar aí a ver onde tô comendo mosca? 
