/*******************************************************************************
* Copyright 2006 - 2012 Vienna University of Technology,
* Department of Software Technology and Interactive Systems, IFS
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package eu.scape_project.planning.converters;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import javax.faces.application.FacesMessage;
import javax.faces.convert.ConverterException;
import org.junit.Test;
import eu.scape_project.planning.converters.NumberConverter;
public class NumberConverterTest {
private NumberConverter numberConverter;
public NumberConverterTest(){
this.numberConverter = new NumberConverter();
}
@Test
public void getAsObject_nullValueThrowsException() {
try {
numberConverter.getAsObject(null, null, null);
}
catch (ConverterException e) {
FacesMessage fMessage = e.getFacesMessage();
assertEquals("Please enter a value", fMessage.getSummary());
assertEquals(FacesMessage.SEVERITY_ERROR, fMessage.getSeverity());
return;
}
fail("Exception is expected.");
}
@Test
public void getAsObject_emptyValueThrowsException() {
try {
numberConverter.getAsObject(null, null, "");
}
catch (ConverterException e) {
FacesMessage fMessage = e.getFacesMessage();
assertEquals("Please enter a value", fMessage.getSummary());
assertEquals(FacesMessage.SEVERITY_ERROR, fMessage.getSeverity());
return;
}
fail("Exception is expected.");
}
@Test
public void getAsObject_nonNumericValueThrowsException() {
try {
numberConverter.getAsObject(null, null, "12abcd34");
}
catch (ConverterException e) {
FacesMessage fMessage = e.getFacesMessage();
assertEquals("Please enter a numeric value", fMessage.getSummary());
assertEquals(FacesMessage.SEVERITY_ERROR, fMessage.getSeverity());
return;
}
fail("Exception is expected.");
}
@Test
public void getAsObject_moreThanOneSeparatorThrowsException() {
try {
numberConverter.getAsObject(null, null, "12.000,50");
}
catch (ConverterException e) {
FacesMessage fMessage = e.getFacesMessage();
assertEquals("Please use . as comma and do not use grouping", fMessage.getSummary());
assertEquals(FacesMessage.SEVERITY_ERROR, fMessage.getSeverity());
return;
}
fail("Exception is expected.");
}
@Test
public void getAsObject_integerNumberConvertsCorrectly() {
Double result = (Double) numberConverter.getAsObject(null, null, "545");
assertEquals(545, result, 0.000001);
}
@Test
public void getAsObject_negativeIntegerNumberConvertsCorrectly() {
Double result = (Double) numberConverter.getAsObject(null, null, "-545");
assertEquals(-545, result, 0.000001);
}
@Test
public void getAsObject_floatNumberSeparatedByDotConvertsCorrectly() {
Double result = (Double) numberConverter.getAsObject(null, null, "545.123456");
assertEquals(545.123456, result, 0.000001);
}
@Test
public void getAsObject_floatNumberSeparatedByCommaConvertsCorrectly() {
Double result = (Double) numberConverter.getAsObject(null, null, "545,123456");
assertEquals(545.123456, result, 0.000001);
}
@Test
public void getAsString_positiveIntegerAddsComma() {
String result = numberConverter.getAsString(null, null, 35d);
assertEquals("35.0" , result);
}
@Test
public void getAsString_negativeIntegerAddsComma() {
String result = numberConverter.getAsString(null, null, -35d);
assertEquals("-35.0" , result);
}
@Test
public void getAsString_DoubleWith1DecimalConvertsOk() {
String result = numberConverter.getAsString(null, null, -35.1d);
assertEquals("-35.1" , result);
}
@Test
public void getAsString_DoubleWith8DecimalConvertsOk() {
String result = numberConverter.getAsString(null, null, -35000.12345678d);
assertEquals("-35000.12345678" , result);
}
}