| /* ==================================================================== |
| 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.poi.xssf.usermodel; |
| |
| import static org.junit.Assert.*; |
| |
| import org.apache.poi.ss.usermodel.DataValidationConstraint; |
| import org.apache.poi.ss.usermodel.DataValidationConstraint.ValidationType; |
| import org.apache.poi.ss.usermodel.DataValidationConstraint.OperatorType; |
| import org.junit.Test; |
| |
| public class TestXSSFDataValidationConstraint { |
| static final int listType = ValidationType.LIST; |
| static final int ignoredType = OperatorType.IGNORED; |
| |
| // See bug 59719 |
| @Test |
| public void listLiteralsQuotesAreStripped_formulaConstructor() { |
| // literal list, using formula constructor |
| String literal = "\"one, two, three\""; |
| String[] expected = new String[] { "one", "two", "three" }; |
| DataValidationConstraint constraint = new XSSFDataValidationConstraint(listType, ignoredType, literal, null); |
| assertArrayEquals(expected, constraint.getExplicitListValues()); |
| // Excel and DataValidationConstraint parser ignore (strip) whitespace; quotes should still be intact |
| // FIXME: whitespace wasn't stripped |
| assertEquals(literal, constraint.getFormula1()); |
| } |
| |
| @Test |
| public void listLiteralsQuotesAreStripped_arrayConstructor() { |
| // literal list, using array constructor |
| String literal = "\"one, two, three\""; |
| String[] expected = new String[] { "one", "two", "three" }; |
| DataValidationConstraint constraint = new XSSFDataValidationConstraint(expected); |
| assertArrayEquals(expected, constraint.getExplicitListValues()); |
| // Excel and DataValidationConstraint parser ignore (strip) whitespace; quotes should still be intact |
| assertEquals(literal.replace(" ", ""), constraint.getFormula1()); |
| } |
| |
| @Test |
| public void rangeReference() { |
| // (unnamed range) reference list |
| String reference = "A1:A5"; |
| DataValidationConstraint constraint = new XSSFDataValidationConstraint(listType, ignoredType, reference, null); |
| assertNull(constraint.getExplicitListValues()); |
| assertEquals("A1:A5", constraint.getFormula1()); |
| } |
| |
| @Test |
| public void namedRangeReference() { |
| // named range list |
| String namedRange = "MyNamedRange"; |
| DataValidationConstraint constraint = new XSSFDataValidationConstraint(listType, ignoredType, namedRange, null); |
| assertNull(constraint.getExplicitListValues()); |
| assertEquals("MyNamedRange", constraint.getFormula1()); |
| } |
| |
| } |