/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.datamodel.types.internal; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import org.easymock.EasyMock; import org.junit.Test; import de.rcenvironment.core.datamodel.api.DataType; import de.rcenvironment.core.datamodel.api.TypedDatum; /** * Test cases for {@link SmallTableTDImpl}. * * @author Doreen Seider */ public class SmallTableTDImplTest { /** * Tests if invalid data types for cells are rejected as expected. */ @Test public void testHandlingOfValidAndInvalidDataTypesOfCells() { SmallTableTDImpl smallTable = new SmallTableTDImpl(new TypedDatum[1][1]); DataType[] validDataTypes = { DataType.Integer, DataType.ShortText, DataType.Float, DataType.Boolean, DataType.DateTime, DataType.Empty }; DataType[] invalidDataTypes = { DataType.Vector, DataType.Matrix, DataType.SmallTable, DataType.FileReference, DataType.BigTable, DataType.DirectoryReference, DataType.DirectoryReference }; for (DataType validDataType : validDataTypes) { smallTable.setTypedDatumForCell(createTypedDatumMocks(validDataType), 0, 0); } for (DataType invalidDataType : invalidDataTypes) { try { smallTable.setTypedDatumForCell(createTypedDatumMocks(invalidDataType), 0, 0); fail("IllegalArgumentException expected for data type: " + invalidDataType); } catch (IllegalArgumentException e) { assertTrue(e.getMessage().contains("is not allowed")); } } } private TypedDatum createTypedDatumMocks(DataType dataType) { TypedDatum typedDatumMock = EasyMock.createStrictMock(TypedDatum.class); EasyMock.expect(typedDatumMock.getDataType()).andStubReturn(dataType); EasyMock.replay(typedDatumMock); return typedDatumMock; } }