/* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 org.apache.harmony.tests.java.nio.charset;
import java.nio.BufferOverflowException;
import java.nio.BufferUnderflowException;
import java.nio.charset.CoderResult;
import java.nio.charset.MalformedInputException;
import java.nio.charset.UnmappableCharacterException;
import junit.framework.TestCase;
/**
* Test class java.nio.charset.CoderResult.
*/
public class CoderResultTest extends TestCase {
/*
* @see TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
}
/*
* @see TestCase#tearDown()
*/
protected void tearDown() throws Exception {
super.tearDown();
}
/*
* Test the constant OVERFLOW and UNDERFLOW.
*/
public void testConstants() throws Exception {
assertNotSame(CoderResult.OVERFLOW, CoderResult.UNDERFLOW);
assertNotNull(CoderResult.OVERFLOW);
assertFalse(CoderResult.OVERFLOW.isError());
assertFalse(CoderResult.OVERFLOW.isMalformed());
assertFalse(CoderResult.OVERFLOW.isUnderflow());
assertFalse(CoderResult.OVERFLOW.isUnmappable());
assertTrue(CoderResult.OVERFLOW.isOverflow());
assertTrue(CoderResult.OVERFLOW.toString().indexOf("OVERFLOW") != -1);
try {
CoderResult.OVERFLOW.throwException();
fail("Should throw BufferOverflowException");
} catch (BufferOverflowException ex) {
// expected
}
try {
CoderResult.OVERFLOW.length();
fail("Should throw UnsupportedOperationException");
} catch (UnsupportedOperationException ex) {
// expected
}
assertNotNull(CoderResult.UNDERFLOW);
assertFalse(CoderResult.UNDERFLOW.isError());
assertFalse(CoderResult.UNDERFLOW.isMalformed());
assertTrue(CoderResult.UNDERFLOW.isUnderflow());
assertFalse(CoderResult.UNDERFLOW.isUnmappable());
assertFalse(CoderResult.UNDERFLOW.isOverflow());
assertTrue(CoderResult.UNDERFLOW.toString().indexOf("UNDERFLOW") != -1);
try {
CoderResult.UNDERFLOW.throwException();
fail("Should throw BufferOverflowException");
} catch (BufferUnderflowException ex) {
// expected
}
try {
CoderResult.UNDERFLOW.length();
fail("Should throw UnsupportedOperationException");
} catch (UnsupportedOperationException ex) {
// expected
}
}
/**
* Test method isError().
*
*/
public void testIsError() {
assertFalse(CoderResult.UNDERFLOW.isError());
assertFalse(CoderResult.OVERFLOW.isError());
assertTrue(CoderResult.malformedForLength(1).isError());
assertTrue(CoderResult.unmappableForLength(1).isError());
}
/**
* Test method isMalformed().
*
*/
public void testIsMalformed() {
assertFalse(CoderResult.UNDERFLOW.isMalformed());
assertFalse(CoderResult.OVERFLOW.isMalformed());
assertTrue(CoderResult.malformedForLength(1).isMalformed());
assertFalse(CoderResult.unmappableForLength(1).isMalformed());
}
/**
* Test method isMalformed().
*
*/
public void testIsUnmappable() {
assertFalse(CoderResult.UNDERFLOW.isUnmappable());
assertFalse(CoderResult.OVERFLOW.isUnmappable());
assertFalse(CoderResult.malformedForLength(1).isUnmappable());
assertTrue(CoderResult.unmappableForLength(1).isUnmappable());
}
/**
* Test method isOverflow().
*
*/
public void testIsOverflow() {
assertFalse(CoderResult.UNDERFLOW.isOverflow());
assertTrue(CoderResult.OVERFLOW.isOverflow());
assertFalse(CoderResult.malformedForLength(1).isOverflow());
assertFalse(CoderResult.unmappableForLength(1).isOverflow());
}
/**
* Test method isUnderflow().
*
*/
public void testIsUnderflow() {
assertTrue(CoderResult.UNDERFLOW.isUnderflow());
assertFalse(CoderResult.OVERFLOW.isUnderflow());
assertFalse(CoderResult.malformedForLength(1).isUnderflow());
assertFalse(CoderResult.unmappableForLength(1).isUnderflow());
}
/**
* Test method length().
*
*/
public void testLength() {
try {
CoderResult.UNDERFLOW.length();
fail("Should throw UnsupportedOperationException");
} catch (UnsupportedOperationException ex) {
// expected
}
try {
CoderResult.OVERFLOW.length();
fail("Should throw UnsupportedOperationException");
} catch (UnsupportedOperationException ex) {
// expected
}
assertEquals(CoderResult.malformedForLength(1).length(), 1);
assertEquals(CoderResult.unmappableForLength(1).length(), 1);
}
/**
* Test method malformedForLength(int).
*
*/
public void testMalformedForLength() {
assertNotNull(CoderResult.malformedForLength(Integer.MAX_VALUE));
assertNotNull(CoderResult.malformedForLength(1));
assertSame(CoderResult.malformedForLength(1), CoderResult
.malformedForLength(1));
assertNotSame(CoderResult.malformedForLength(1), CoderResult
.unmappableForLength(1));
assertNotSame(CoderResult.malformedForLength(2), CoderResult
.malformedForLength(1));
try {
CoderResult.malformedForLength(-1);
fail("Should throw IllegalArgumentException");
} catch (IllegalArgumentException ex) {
// expected
}
try {
CoderResult.malformedForLength(0);
fail("Should throw IllegalArgumentException");
} catch (IllegalArgumentException ex) {
// expected
}
}
/**
* Test method unmappableForLength(int).
*
*/
public void testUnmappableForLength() {
assertNotNull(CoderResult.unmappableForLength(Integer.MAX_VALUE));
assertNotNull(CoderResult.unmappableForLength(1));
assertSame(CoderResult.unmappableForLength(1), CoderResult
.unmappableForLength(1));
assertNotSame(CoderResult.unmappableForLength(2), CoderResult
.unmappableForLength(1));
try {
CoderResult.unmappableForLength(-1);
fail("Should throw IllegalArgumentException");
} catch (IllegalArgumentException ex) {
// expected
}
try {
CoderResult.unmappableForLength(0);
fail("Should throw IllegalArgumentException");
} catch (IllegalArgumentException ex) {
// expected
}
}
/**
* Test method throwException().
*
*/
public void testThrowException() throws Exception {
try {
CoderResult.OVERFLOW.throwException();
fail("Should throw BufferOverflowException");
} catch (BufferOverflowException ex) {
// expected
}
try {
CoderResult.UNDERFLOW.throwException();
fail("Should throw BufferOverflowException");
} catch (BufferUnderflowException ex) {
// expected
}
try {
CoderResult.malformedForLength(1).throwException();
fail("Should throw MalformedInputException");
} catch (MalformedInputException ex) {
assertEquals(ex.getInputLength(), 1);
}
try {
CoderResult.unmappableForLength(1).throwException();
fail("Should throw UnmappableCharacterException");
} catch (UnmappableCharacterException ex) {
assertEquals(ex.getInputLength(), 1);
}
}
/**
* Test method toString().
*
*/
public void testToString() throws Exception {
assertTrue(CoderResult.OVERFLOW.toString().indexOf("OVERFLOW") != -1);
assertTrue(CoderResult.UNDERFLOW.toString().indexOf("UNDERFLOW") != -1);
assertTrue(CoderResult.malformedForLength(666).toString()
.indexOf("666") != -1);
assertTrue(CoderResult.unmappableForLength(666).toString().indexOf(
"666") != -1);
}
}