@Test(expected = IllegalStateException.class)
 public void naoDevePermitirAliquotaImpostoICMSSTNulo() {
   final NFNotaInfoItemImpostoICMSSN900 icms900 = new NFNotaInfoItemImpostoICMSSN900();
   icms900.setAliquotaAplicavelCalculoCreditoSN(new BigDecimal("99.99"));
   icms900.setModalidadeBCICMSST(NFNotaInfoItemModalidadeBCICMSST.LISTA_NEGATIVA);
   icms900.setModalidadeDeterminacaoBCICMS(NFNotaInfoItemImpostoICMSModalidadeBaseCalculo.MVA);
   icms900.setOrigem(NFOrigem.NACIONAL);
   icms900.setPercentualAliquotaImposto(new BigDecimal("99.99"));
   icms900.setPercentualMargemValorAdicionadoICMSST(new BigDecimal("99.99"));
   icms900.setPercentualReducaoBC(new BigDecimal("99.99"));
   icms900.setPercentualReducaoBCICMSST(new BigDecimal("99.99"));
   icms900.setSituacaoOperacaoSN(NFNotaSituacaoOperacionalSimplesNacional.IMUNE);
   icms900.setValorBCICMS(new BigDecimal("999999999999.99"));
   icms900.setValorBCICMSST(new BigDecimal("999999999999.99"));
   icms900.setValorCreditoICMSSN(new BigDecimal("999999999999.99"));
   icms900.setValorICMS(new BigDecimal("999999999999.99"));
   icms900.setValorICMSST(new BigDecimal("999999999999.99"));
   icms900.toString();
 }
  @Test
  public void deveGerarXMLDeAcordoComOPadraoEstabelecido() {
    final NFNotaInfoItemImpostoICMSSN900 icms900 = new NFNotaInfoItemImpostoICMSSN900();
    icms900.setAliquotaAplicavelCalculoCreditoSN(new BigDecimal("99.99"));
    icms900.setPercentualAliquotaImpostoICMSST(new BigDecimal("99.99"));
    icms900.setModalidadeBCICMSST(NFNotaInfoItemModalidadeBCICMSST.LISTA_NEGATIVA);
    icms900.setModalidadeDeterminacaoBCICMS(NFNotaInfoItemImpostoICMSModalidadeBaseCalculo.MVA);
    icms900.setOrigem(NFOrigem.NACIONAL);
    icms900.setPercentualAliquotaImposto(new BigDecimal("99.99"));
    icms900.setPercentualMargemValorAdicionadoICMSST(new BigDecimal("99.99"));
    icms900.setPercentualReducaoBC(new BigDecimal("99.99"));
    icms900.setPercentualReducaoBCICMSST(new BigDecimal("99.99"));
    icms900.setSituacaoOperacaoSN(NFNotaSituacaoOperacionalSimplesNacional.IMUNE);
    icms900.setValorBCICMS(new BigDecimal("999999999999.99"));
    icms900.setValorBCICMSST(new BigDecimal("999999999999.99"));
    icms900.setValorCreditoICMSSN(new BigDecimal("999999999999.99"));
    icms900.setValorICMS(new BigDecimal("999999999999.99"));
    icms900.setValorICMSST(new BigDecimal("999999999999.99"));

    final String xmlEsperado =
        "<NFNotaInfoItemImpostoICMSSN900><orig>0</orig><CSOSN>300</CSOSN><modBC>0</modBC><vBC>999999999999.99</vBC><pRedBC>99.99</pRedBC><pICMS>99.99</pICMS><vICMS>999999999999.99</vICMS><modBCST>1</modBCST><pMVAST>99.99</pMVAST><pRedBCST>99.99</pRedBCST><vBCST>999999999999.99</vBCST><pICMSST>99.99</pICMSST><vICMSST>999999999999.99</vICMSST><pCredSN>99.99</pCredSN><vCredICMSSN>999999999999.99</vCredICMSSN></NFNotaInfoItemImpostoICMSSN900>";
    Assert.assertEquals(xmlEsperado, icms900.toString());
  }