From f790cc36463b2c7901cf0d98a5ba0ca9d7e1199c Mon Sep 17 00:00:00 2001 From: Gabriel Lima Gomes Date: Fri, 9 Jun 2017 09:56:55 -0300 Subject: [PATCH] altera regra de estimativa valida e cria metodo para ver se tem mensagem atencao --- .../estimativa/EstimativaComPrazo.java | 17 +++++-- .../estimativa/EstimativaComPrecoEPrazo.java | 17 +++++-- .../estimativa/EstimativaComPrazoTest.java | 48 +++++++++++++++++ .../EstimativaComPrecoEPrazoTest.java | 51 +++++++++++++++++++ 4 files changed, 127 insertions(+), 6 deletions(-) create mode 100644 src/test/java/br/com/correios/estimativa/EstimativaComPrazoTest.java create mode 100644 src/test/java/br/com/correios/estimativa/EstimativaComPrecoEPrazoTest.java diff --git a/src/main/java/br/com/correios/estimativa/EstimativaComPrazo.java b/src/main/java/br/com/correios/estimativa/EstimativaComPrazo.java index 8e72cd0..fb288fe 100644 --- a/src/main/java/br/com/correios/estimativa/EstimativaComPrazo.java +++ b/src/main/java/br/com/correios/estimativa/EstimativaComPrazo.java @@ -95,15 +95,26 @@ public void setMensagemErro(String mensagemErro) { } /** - * @return se uma estimativa esta valida, ou seja, nao possui nenhum erro - * retornado pelo calculador + * @return se uma estimativa esta valida, ou seja, possui um prazo de entrega valido */ public boolean isEstimativaValida() { - return StringUtils.isBlank(codigoErro) || "0".equals(codigoErro); + return !temMensagemErro() || prazoEntrega != 0; + } + + /** + * @return Se uma estimativa possui uma mensagem de atencao, + * porem ainda esta valida + */ + public boolean possuiMensagemAtencao() { + return temMensagemErro() && prazoEntrega != 0; } @Override public String toString() { return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE); } + + private boolean temMensagemErro() { + return StringUtils.isNotBlank(codigoErro) && !"0".equals(codigoErro); + } } diff --git a/src/main/java/br/com/correios/estimativa/EstimativaComPrecoEPrazo.java b/src/main/java/br/com/correios/estimativa/EstimativaComPrecoEPrazo.java index 9e38729..d0dd913 100644 --- a/src/main/java/br/com/correios/estimativa/EstimativaComPrecoEPrazo.java +++ b/src/main/java/br/com/correios/estimativa/EstimativaComPrecoEPrazo.java @@ -147,11 +147,18 @@ public void setMensagemErro(String mensagemErro) { } /** - * @return se uma estimativa esta valida, ou seja, nao possui nenhum erro - * retornado pelo calculador + * @return se uma estimativa esta valida, ou seja, possui um prazo de entrega valido */ public boolean isEstimativaValida() { - return StringUtils.isBlank(codigoErro) || "0".equals(codigoErro); + return !temMensagemErro() || prazoEntrega != 0; + } + + /** + * @return Se uma estimativa possui uma mensagem de atencao, + * porem ainda esta valida + */ + public boolean possuiMensagemAtencao() { + return temMensagemErro() && prazoEntrega != 0; } @Override @@ -159,4 +166,8 @@ public String toString() { return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE); } + private boolean temMensagemErro() { + return StringUtils.isNotBlank(codigoErro) && !"0".equals(codigoErro); + } + } diff --git a/src/test/java/br/com/correios/estimativa/EstimativaComPrazoTest.java b/src/test/java/br/com/correios/estimativa/EstimativaComPrazoTest.java new file mode 100644 index 0000000..2e6a534 --- /dev/null +++ b/src/test/java/br/com/correios/estimativa/EstimativaComPrazoTest.java @@ -0,0 +1,48 @@ +package br.com.correios.estimativa; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Before; +import org.junit.Test; + +public class EstimativaComPrazoTest { + + private EstimativaComPrazo estimativaComPrazo; + + @Before + public void setUp() { + estimativaComPrazo = new EstimativaComPrazo(); + } + + @Test + public void deveriaMostrarEstimativaInvalidaESemMensagemDeAtencaoQuandoPrazoDeEntregaForZeroETiverMensagemErro() { + estimativaComPrazo.setPrazoEntrega(0); + estimativaComPrazo.setCodigoErro("001"); + estimativaComPrazo.setMensagemErro("Codigo de servico invalido."); + + assertFalse(estimativaComPrazo.isEstimativaValida()); + assertFalse(estimativaComPrazo.possuiMensagemAtencao()); + } + + @Test + public void deveriaMostrarEstimativaValidaEComMensagemDeAtencaoQuandoPrazoDeEntregaForValidoETiverMensagemErro() { + estimativaComPrazo.setPrazoEntrega(5); + estimativaComPrazo.setCodigoErro("010"); + estimativaComPrazo.setMensagemErro("Area de Risco"); + + assertTrue(estimativaComPrazo.isEstimativaValida()); + assertTrue(estimativaComPrazo.possuiMensagemAtencao()); + } + + @Test + public void deveriaMostrarEstimativaValidaESemMensagemDeAtencaoQuandoPrazoDeEntregaForValidoENaoTiverMensagemErro() { + estimativaComPrazo.setPrazoEntrega(5); + estimativaComPrazo.setCodigoErro("0"); + estimativaComPrazo.setMensagemErro(""); + + assertTrue(estimativaComPrazo.isEstimativaValida()); + assertFalse(estimativaComPrazo.possuiMensagemAtencao()); + } + +} diff --git a/src/test/java/br/com/correios/estimativa/EstimativaComPrecoEPrazoTest.java b/src/test/java/br/com/correios/estimativa/EstimativaComPrecoEPrazoTest.java new file mode 100644 index 0000000..10fd427 --- /dev/null +++ b/src/test/java/br/com/correios/estimativa/EstimativaComPrecoEPrazoTest.java @@ -0,0 +1,51 @@ +package br.com.correios.estimativa; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Before; +import org.junit.Test; + +public class EstimativaComPrecoEPrazoTest { + + private EstimativaComPrecoEPrazo estimativaComPrecoEPrazo; + + @Before + public void setUp() { + estimativaComPrecoEPrazo = new EstimativaComPrecoEPrazo(); + } + + @Test + public void deveriaMostrarEstimativaInvalidaESemMensagemDeAtencaoQuandoPrazoDeEntregaForZeroETiverMensagemErro() { + estimativaComPrecoEPrazo.setValor("0"); + estimativaComPrecoEPrazo.setPrazoEntrega(0); + estimativaComPrecoEPrazo.setCodigoErro("001"); + estimativaComPrecoEPrazo.setMensagemErro("Codigo de servico invalido."); + + assertFalse(estimativaComPrecoEPrazo.isEstimativaValida()); + assertFalse(estimativaComPrecoEPrazo.possuiMensagemAtencao()); + } + + @Test + public void deveriaMostrarEstimativaValidaEComMensagemDeAtencaoQuandoPrazoDeEntregaForValidoETiverMensagemErro() { + estimativaComPrecoEPrazo.setValor("17,20"); + estimativaComPrecoEPrazo.setPrazoEntrega(5); + estimativaComPrecoEPrazo.setCodigoErro("010"); + estimativaComPrecoEPrazo.setMensagemErro("Area de Risco"); + + assertTrue(estimativaComPrecoEPrazo.isEstimativaValida()); + assertTrue(estimativaComPrecoEPrazo.possuiMensagemAtencao()); + } + + @Test + public void deveriaMostrarEstimativaValidaESemMensagemDeAtencaoQuandoPrazoDeEntregaForValidoENaoTiverMensagemErro() { + estimativaComPrecoEPrazo.setValor("17,20"); + estimativaComPrecoEPrazo.setPrazoEntrega(5); + estimativaComPrecoEPrazo.setCodigoErro("0"); + estimativaComPrecoEPrazo.setMensagemErro(""); + + assertTrue(estimativaComPrecoEPrazo.isEstimativaValida()); + assertFalse(estimativaComPrecoEPrazo.possuiMensagemAtencao()); + } + +}