### Question:
HSBC extends AbstractBanco implements Banco { @Override public String geraCodigoDeBarrasPara(Boleto boleto) { StringBuilder campoLivre = new StringBuilder(); String codigoAgencia = boleto.getBeneficiario().getCodigoBeneficiario(); campoLivre.append(leftPadWithZeros(codigoAgencia, 7)); campoLivre.append(getNossoNumeroFormatado(boleto.getBeneficiario())); campoLivre.append(getDataFormatoJuliano(boleto.getDatas().getVencimento(), 4)); campoLivre.append(HSBC.CODIGO_APLICATIVO); return new CodigoDeBarrasBuilder(boleto).comCampoLivre(campoLivre); }  @Override String getNumeroFormatadoComDigito(); @Override String geraCodigoDeBarrasPara(Boleto boleto); String getDataFormatoJuliano(Calendar vencimento, int tipo); @Override String getCarteiraFormatado(Beneficiario beneficiario); @Override String getCodigoBeneficiarioFormatado(Beneficiario beneficiario); @Override URL getImage(); @Override String getNossoNumeroFormatado(Beneficiario beneficiario); @Override String getNumeroFormatado(); @Override String getAgenciaECodigoBeneficiario(Beneficiario beneficiario); @Override String getNossoNumeroECodigoDocumento(Boleto boleto);  }### Answer:
@Test public void testLinhaDoBancoHSBC() { String codigoDeBarras = boleto.getBanco().geraCodigoDeBarrasPara(this.boleto); assertEquals("39994.14620 39000.000149 76147.030324 5 55940000338300", new GeradorDeLinhaDigitavel().geraLinhaDigitavelPara(codigoDeBarras,this.banco)); }
@Test public void testCodigoDeBarraDoBancoHSBC() { this.boleto = this.boleto.comBanco(this.banco); String codigoDeBarras = this.banco.geraCodigoDeBarrasPara(this.boleto); assertEquals("39995559400003383004146239000000147614703032", codigoDeBarras); }