1 /* 2 * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 /* 27 * Copyright (c) 2008-2012, Stephen Colebourne & Michael Nascimento Santos 28 * 29 * All rights reserved. 30 * 31 * Redistribution and use in source and binary forms, with or without 32 * modification, are permitted provided that the following conditions are met: 33 * 34 * * Redistributions of source code must retain the above copyright notice, 35 * this list of conditions and the following disclaimer. 36 * 37 * * Redistributions in binary form must reproduce the above copyright notice, 38 * this list of conditions and the following disclaimer in the documentation 39 * and/or other materials provided with the distribution. 40 * 41 * * Neither the name of JSR-310 nor the names of its contributors 42 * may be used to endorse or promote products derived from this software 43 * without specific prior written permission. 44 * 45 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 46 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 47 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 48 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 49 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 50 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 51 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 52 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 53 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 54 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 55 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 56 */ 57 package tck.java.time.temporal.serial; 58 59 import static java.time.temporal.ChronoField.ALIGNED_DAY_OF_WEEK_IN_MONTH; 60 import static java.time.temporal.ChronoField.ALIGNED_DAY_OF_WEEK_IN_YEAR; 61 import static java.time.temporal.ChronoField.ALIGNED_WEEK_OF_MONTH; 62 import static java.time.temporal.ChronoField.ALIGNED_WEEK_OF_YEAR; 63 import static java.time.temporal.ChronoField.AMPM_OF_DAY; 64 import static java.time.temporal.ChronoField.CLOCK_HOUR_OF_AMPM; 65 import static java.time.temporal.ChronoField.CLOCK_HOUR_OF_DAY; 66 import static java.time.temporal.ChronoField.DAY_OF_MONTH; 67 import static java.time.temporal.ChronoField.DAY_OF_WEEK; 68 import static java.time.temporal.ChronoField.DAY_OF_YEAR; 69 import static java.time.temporal.ChronoField.EPOCH_DAY; 70 import static java.time.temporal.ChronoField.HOUR_OF_AMPM; 71 import static java.time.temporal.ChronoField.HOUR_OF_DAY; 72 import static java.time.temporal.ChronoField.MICRO_OF_DAY; 73 import static java.time.temporal.ChronoField.MICRO_OF_SECOND; 74 import static java.time.temporal.ChronoField.MILLI_OF_DAY; 75 import static java.time.temporal.ChronoField.MILLI_OF_SECOND; 76 import static java.time.temporal.ChronoField.MINUTE_OF_DAY; 77 import static java.time.temporal.ChronoField.MINUTE_OF_HOUR; 78 import static java.time.temporal.ChronoField.MONTH_OF_YEAR; 79 import static java.time.temporal.ChronoField.NANO_OF_DAY; 80 import static java.time.temporal.ChronoField.NANO_OF_SECOND; 81 import static java.time.temporal.ChronoField.PROLEPTIC_MONTH; 82 import static java.time.temporal.ChronoField.SECOND_OF_DAY; 83 import static java.time.temporal.ChronoField.SECOND_OF_MINUTE; 84 import static java.time.temporal.ChronoField.YEAR; 85 import static java.time.temporal.ChronoField.YEAR_OF_ERA; 86 import static java.time.temporal.ChronoField.ERA; 87 88 import java.io.IOException; 89 import java.time.temporal.ChronoField; 90 91 import org.testng.annotations.DataProvider; 92 import org.testng.annotations.Test; 93 94 import tck.java.time.AbstractTCKTest; 95 96 /** 97 * Test serialization of ChronoField. 98 */ 99 @Test 100 public class TCKChronoFieldSerialization extends AbstractTCKTest { 101 102 //----------------------------------------------------------------------- 103 // List of Fields 104 //----------------------------------------------------------------------- 105 @DataProvider(name="fieldBased") data_fieldBased()106 Object[][] data_fieldBased() { 107 return new Object[][] { 108 {DAY_OF_WEEK}, 109 {ALIGNED_DAY_OF_WEEK_IN_MONTH}, 110 {ALIGNED_DAY_OF_WEEK_IN_YEAR}, 111 {DAY_OF_MONTH}, 112 {DAY_OF_YEAR}, 113 {EPOCH_DAY}, 114 {ALIGNED_WEEK_OF_MONTH}, 115 {ALIGNED_WEEK_OF_YEAR}, 116 {MONTH_OF_YEAR}, 117 {PROLEPTIC_MONTH}, 118 {YEAR_OF_ERA}, 119 {YEAR}, 120 {ERA}, 121 122 {AMPM_OF_DAY}, 123 {CLOCK_HOUR_OF_DAY}, 124 {HOUR_OF_DAY}, 125 {CLOCK_HOUR_OF_AMPM}, 126 {HOUR_OF_AMPM}, 127 {MINUTE_OF_DAY}, 128 {MINUTE_OF_HOUR}, 129 {SECOND_OF_DAY}, 130 {SECOND_OF_MINUTE}, 131 {MILLI_OF_DAY}, 132 {MILLI_OF_SECOND}, 133 {MICRO_OF_DAY}, 134 {MICRO_OF_SECOND}, 135 {NANO_OF_DAY}, 136 {NANO_OF_SECOND}, 137 }; 138 } 139 140 @Test(dataProvider = "fieldBased") test_fieldSerializable(ChronoField field)141 public void test_fieldSerializable(ChronoField field) throws IOException, ClassNotFoundException { 142 assertSerializableSame(field); 143 } 144 145 } 146