001 /* 002 * Copyright 2001-2005 Stephen Colebourne 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.joda.time.format; 017 018 import java.util.ArrayList; 019 import java.util.Arrays; 020 import java.util.Collection; 021 import java.util.Collections; 022 import java.util.List; 023 024 import junit.framework.TestCase; 025 import junit.framework.TestSuite; 026 027 import org.joda.time.DateTimeFieldType; 028 import org.joda.time.Partial; 029 030 /** 031 * This class is a Junit unit test for ISODateTimeFormat. 032 * 033 * @author Stephen Colebourne 034 */ 035 public class TestISODateTimeFormat_Fields extends TestCase { 036 037 public static void main(String[] args) { 038 junit.textui.TestRunner.run(suite()); 039 } 040 041 public static TestSuite suite() { 042 return new TestSuite(TestISODateTimeFormat_Fields.class); 043 } 044 045 public TestISODateTimeFormat_Fields(String name) { 046 super(name); 047 } 048 049 protected void setUp() throws Exception { 050 } 051 052 protected void tearDown() throws Exception { 053 } 054 055 //----------------------------------------------------------------------- 056 public void testForFields_null() { 057 try { 058 ISODateTimeFormat.forFields((Collection) null, true, true); 059 fail(); 060 } catch (IllegalArgumentException ex) {} 061 } 062 063 //----------------------------------------------------------------------- 064 public void testForFields_empty() { 065 try { 066 ISODateTimeFormat.forFields(new ArrayList(), true, true); 067 fail(); 068 } catch (IllegalArgumentException ex) {} 069 } 070 071 //----------------------------------------------------------------------- 072 //----------------------------------------------------------------------- 073 //----------------------------------------------------------------------- 074 public void testForFields_calBased_YMD() { 075 DateTimeFieldType[] fields = new DateTimeFieldType[] { 076 DateTimeFieldType.year(), 077 DateTimeFieldType.monthOfYear(), 078 DateTimeFieldType.dayOfMonth(), 079 }; 080 int[] values = new int[] {2005, 6, 25}; 081 List types = new ArrayList(Arrays.asList(fields)); 082 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 083 assertEquals("2005-06-25", f.print(new Partial(fields, values))); 084 assertEquals(0, types.size()); 085 086 types = new ArrayList(Arrays.asList(fields)); 087 f = ISODateTimeFormat.forFields(types, true, false); 088 assertEquals("2005-06-25", f.print(new Partial(fields, values))); 089 assertEquals(0, types.size()); 090 091 types = new ArrayList(Arrays.asList(fields)); 092 f = ISODateTimeFormat.forFields(types, false, true); 093 assertEquals("20050625", f.print(new Partial(fields, values))); 094 assertEquals(0, types.size()); 095 096 types = new ArrayList(Arrays.asList(fields)); 097 f = ISODateTimeFormat.forFields(types, false, false); 098 assertEquals("20050625", f.print(new Partial(fields, values))); 099 assertEquals(0, types.size()); 100 } 101 102 //----------------------------------------------------------------------- 103 public void testForFields_calBased_YMD_unmodifiable() { 104 DateTimeFieldType[] fields = new DateTimeFieldType[] { 105 DateTimeFieldType.year(), 106 DateTimeFieldType.monthOfYear(), 107 DateTimeFieldType.dayOfMonth(), 108 }; 109 int[] values = new int[] {2005, 6, 25}; 110 List types = Collections.unmodifiableList(new ArrayList(Arrays.asList(fields))); 111 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 112 assertEquals("2005-06-25", f.print(new Partial(fields, values))); 113 assertEquals(3, types.size()); 114 115 types = Arrays.asList(fields); 116 f = ISODateTimeFormat.forFields(types, true, true); 117 assertEquals("2005-06-25", f.print(new Partial(fields, values))); 118 assertEquals(3, types.size()); 119 } 120 121 //----------------------------------------------------------------------- 122 public void testForFields_calBased_YMD_duplicates() { 123 DateTimeFieldType[] fields = new DateTimeFieldType[] { 124 DateTimeFieldType.year(), 125 DateTimeFieldType.monthOfYear(), 126 DateTimeFieldType.dayOfMonth(), 127 }; 128 DateTimeFieldType[] dupFields = new DateTimeFieldType[] { 129 DateTimeFieldType.year(), 130 DateTimeFieldType.monthOfYear(), 131 DateTimeFieldType.dayOfMonth(), 132 DateTimeFieldType.monthOfYear(), 133 }; 134 int[] values = new int[] {2005, 6, 25}; 135 List types = new ArrayList(Arrays.asList(dupFields)); 136 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 137 assertEquals("2005-06-25", f.print(new Partial(fields, values))); 138 assertEquals(0, types.size()); 139 140 types = Arrays.asList(dupFields); 141 f = ISODateTimeFormat.forFields(types, true, true); 142 assertEquals("2005-06-25", f.print(new Partial(fields, values))); 143 assertEquals(4, types.size()); 144 } 145 146 //----------------------------------------------------------------------- 147 public void testForFields_calBased_Y() { 148 DateTimeFieldType[] fields = new DateTimeFieldType[] { 149 DateTimeFieldType.year(), 150 }; 151 int[] values = new int[] {2005}; 152 List types = new ArrayList(Arrays.asList(fields)); 153 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 154 assertEquals("2005", f.print(new Partial(fields, values))); 155 assertEquals(0, types.size()); 156 157 types = new ArrayList(Arrays.asList(fields)); 158 f = ISODateTimeFormat.forFields(types, true, false); 159 assertEquals("2005", f.print(new Partial(fields, values))); 160 assertEquals(0, types.size()); 161 162 types = new ArrayList(Arrays.asList(fields)); 163 f = ISODateTimeFormat.forFields(types, false, true); 164 assertEquals("2005", f.print(new Partial(fields, values))); 165 assertEquals(0, types.size()); 166 167 types = new ArrayList(Arrays.asList(fields)); 168 f = ISODateTimeFormat.forFields(types, false, false); 169 assertEquals("2005", f.print(new Partial(fields, values))); 170 assertEquals(0, types.size()); 171 } 172 173 //----------------------------------------------------------------------- 174 public void testForFields_calBased_M() { 175 DateTimeFieldType[] fields = new DateTimeFieldType[] { 176 DateTimeFieldType.monthOfYear(), 177 }; 178 int[] values = new int[] {6}; 179 List types = new ArrayList(Arrays.asList(fields)); 180 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 181 assertEquals("--06", f.print(new Partial(fields, values))); 182 assertEquals(0, types.size()); 183 184 types = new ArrayList(Arrays.asList(fields)); 185 f = ISODateTimeFormat.forFields(types, true, false); 186 assertEquals("--06", f.print(new Partial(fields, values))); 187 assertEquals(0, types.size()); 188 189 types = new ArrayList(Arrays.asList(fields)); 190 f = ISODateTimeFormat.forFields(types, false, true); 191 assertEquals("--06", f.print(new Partial(fields, values))); 192 assertEquals(0, types.size()); 193 194 types = new ArrayList(Arrays.asList(fields)); 195 f = ISODateTimeFormat.forFields(types, false, false); 196 assertEquals("--06", f.print(new Partial(fields, values))); 197 assertEquals(0, types.size()); 198 } 199 200 //----------------------------------------------------------------------- 201 public void testForFields_calBased_D() { 202 DateTimeFieldType[] fields = new DateTimeFieldType[] { 203 DateTimeFieldType.dayOfMonth(), 204 }; 205 int[] values = new int[] {25}; 206 List types = new ArrayList(Arrays.asList(fields)); 207 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 208 assertEquals("---25", f.print(new Partial(fields, values))); 209 assertEquals(0, types.size()); 210 211 types = new ArrayList(Arrays.asList(fields)); 212 f = ISODateTimeFormat.forFields(types, true, false); 213 assertEquals("---25", f.print(new Partial(fields, values))); 214 assertEquals(0, types.size()); 215 216 types = new ArrayList(Arrays.asList(fields)); 217 f = ISODateTimeFormat.forFields(types, false, true); 218 assertEquals("---25", f.print(new Partial(fields, values))); 219 assertEquals(0, types.size()); 220 221 types = new ArrayList(Arrays.asList(fields)); 222 f = ISODateTimeFormat.forFields(types, false, false); 223 assertEquals("---25", f.print(new Partial(fields, values))); 224 assertEquals(0, types.size()); 225 } 226 227 //----------------------------------------------------------------------- 228 public void testForFields_calBased_YM() { 229 DateTimeFieldType[] fields = new DateTimeFieldType[] { 230 DateTimeFieldType.year(), 231 DateTimeFieldType.monthOfYear(), 232 }; 233 int[] values = new int[] {2005, 6}; 234 List types = new ArrayList(Arrays.asList(fields)); 235 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 236 assertEquals("2005-06", f.print(new Partial(fields, values))); 237 assertEquals(0, types.size()); 238 239 types = new ArrayList(Arrays.asList(fields)); 240 f = ISODateTimeFormat.forFields(types, true, false); 241 assertEquals("2005-06", f.print(new Partial(fields, values))); 242 assertEquals(0, types.size()); 243 244 types = new ArrayList(Arrays.asList(fields)); 245 f = ISODateTimeFormat.forFields(types, false, true); 246 assertEquals("2005-06", f.print(new Partial(fields, values))); 247 assertEquals(0, types.size()); 248 249 types = new ArrayList(Arrays.asList(fields)); 250 f = ISODateTimeFormat.forFields(types, false, false); 251 assertEquals("2005-06", f.print(new Partial(fields, values))); 252 assertEquals(0, types.size()); 253 } 254 255 //----------------------------------------------------------------------- 256 public void testForFields_calBased_MD() { 257 DateTimeFieldType[] fields = new DateTimeFieldType[] { 258 DateTimeFieldType.monthOfYear(), 259 DateTimeFieldType.dayOfMonth(), 260 }; 261 int[] values = new int[] {6, 25}; 262 List types = new ArrayList(Arrays.asList(fields)); 263 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 264 assertEquals("--06-25", f.print(new Partial(fields, values))); 265 assertEquals(0, types.size()); 266 267 types = new ArrayList(Arrays.asList(fields)); 268 f = ISODateTimeFormat.forFields(types, true, false); 269 assertEquals("--06-25", f.print(new Partial(fields, values))); 270 assertEquals(0, types.size()); 271 272 types = new ArrayList(Arrays.asList(fields)); 273 f = ISODateTimeFormat.forFields(types, false, true); 274 assertEquals("--0625", f.print(new Partial(fields, values))); 275 assertEquals(0, types.size()); 276 277 types = new ArrayList(Arrays.asList(fields)); 278 f = ISODateTimeFormat.forFields(types, false, false); 279 assertEquals("--0625", f.print(new Partial(fields, values))); 280 assertEquals(0, types.size()); 281 } 282 283 //----------------------------------------------------------------------- 284 public void testForFields_calBased_YD() { 285 DateTimeFieldType[] fields = new DateTimeFieldType[] { 286 DateTimeFieldType.year(), 287 DateTimeFieldType.dayOfMonth(), 288 }; 289 int[] values = new int[] {2005, 25}; 290 List types = new ArrayList(Arrays.asList(fields)); 291 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, false); 292 assertEquals("2005--25", f.print(new Partial(fields, values))); 293 assertEquals(0, types.size()); 294 295 types = new ArrayList(Arrays.asList(fields)); 296 f = ISODateTimeFormat.forFields(types, false, false); 297 assertEquals("2005--25", f.print(new Partial(fields, values))); 298 assertEquals(0, types.size()); 299 300 types = new ArrayList(Arrays.asList(fields)); 301 try { 302 ISODateTimeFormat.forFields(types, true, true); 303 fail(); 304 } catch (IllegalArgumentException ex) {} 305 306 types = new ArrayList(Arrays.asList(fields)); 307 try { 308 ISODateTimeFormat.forFields(types, false, true); 309 fail(); 310 } catch (IllegalArgumentException ex) {} 311 } 312 313 //----------------------------------------------------------------------- 314 //----------------------------------------------------------------------- 315 //----------------------------------------------------------------------- 316 public void testForFields_weekBased_YWD() { 317 DateTimeFieldType[] fields = new DateTimeFieldType[] { 318 DateTimeFieldType.weekyear(), 319 DateTimeFieldType.weekOfWeekyear(), 320 DateTimeFieldType.dayOfWeek(), 321 }; 322 int[] values = new int[] {2005, 8, 5}; 323 List types = new ArrayList(Arrays.asList(fields)); 324 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 325 assertEquals("2005-W08-5", f.print(new Partial(fields, values))); 326 assertEquals(0, types.size()); 327 328 types = new ArrayList(Arrays.asList(fields)); 329 f = ISODateTimeFormat.forFields(types, true, false); 330 assertEquals("2005-W08-5", f.print(new Partial(fields, values))); 331 assertEquals(0, types.size()); 332 333 types = new ArrayList(Arrays.asList(fields)); 334 f = ISODateTimeFormat.forFields(types, false, true); 335 assertEquals("2005W085", f.print(new Partial(fields, values))); 336 assertEquals(0, types.size()); 337 338 types = new ArrayList(Arrays.asList(fields)); 339 f = ISODateTimeFormat.forFields(types, false, false); 340 assertEquals("2005W085", f.print(new Partial(fields, values))); 341 assertEquals(0, types.size()); 342 } 343 344 //----------------------------------------------------------------------- 345 public void testForFields_weekBased_Y() { 346 DateTimeFieldType[] fields = new DateTimeFieldType[] { 347 DateTimeFieldType.weekyear(), 348 }; 349 int[] values = new int[] {2005}; 350 List types = new ArrayList(Arrays.asList(fields)); 351 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 352 assertEquals("2005", f.print(new Partial(fields, values))); 353 assertEquals(0, types.size()); 354 355 types = new ArrayList(Arrays.asList(fields)); 356 f = ISODateTimeFormat.forFields(types, true, false); 357 assertEquals("2005", f.print(new Partial(fields, values))); 358 assertEquals(0, types.size()); 359 360 types = new ArrayList(Arrays.asList(fields)); 361 f = ISODateTimeFormat.forFields(types, false, true); 362 assertEquals("2005", f.print(new Partial(fields, values))); 363 assertEquals(0, types.size()); 364 365 types = new ArrayList(Arrays.asList(fields)); 366 f = ISODateTimeFormat.forFields(types, false, false); 367 assertEquals("2005", f.print(new Partial(fields, values))); 368 assertEquals(0, types.size()); 369 } 370 371 //----------------------------------------------------------------------- 372 public void testForFields_weekBased_W() { 373 DateTimeFieldType[] fields = new DateTimeFieldType[] { 374 DateTimeFieldType.weekOfWeekyear(), 375 }; 376 int[] values = new int[] {8}; 377 List types = new ArrayList(Arrays.asList(fields)); 378 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 379 assertEquals("-W08", f.print(new Partial(fields, values))); 380 assertEquals(0, types.size()); 381 382 types = new ArrayList(Arrays.asList(fields)); 383 f = ISODateTimeFormat.forFields(types, true, false); 384 assertEquals("-W08", f.print(new Partial(fields, values))); 385 assertEquals(0, types.size()); 386 387 types = new ArrayList(Arrays.asList(fields)); 388 f = ISODateTimeFormat.forFields(types, false, true); 389 assertEquals("-W08", f.print(new Partial(fields, values))); 390 assertEquals(0, types.size()); 391 392 types = new ArrayList(Arrays.asList(fields)); 393 f = ISODateTimeFormat.forFields(types, false, false); 394 assertEquals("-W08", f.print(new Partial(fields, values))); 395 assertEquals(0, types.size()); 396 } 397 398 //----------------------------------------------------------------------- 399 public void testForFields_weekBased_D() { 400 DateTimeFieldType[] fields = new DateTimeFieldType[] { 401 DateTimeFieldType.dayOfWeek(), 402 }; 403 int[] values = new int[] {5}; 404 List types = new ArrayList(Arrays.asList(fields)); 405 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 406 assertEquals("-W-5", f.print(new Partial(fields, values))); 407 assertEquals(0, types.size()); 408 409 types = new ArrayList(Arrays.asList(fields)); 410 f = ISODateTimeFormat.forFields(types, true, false); 411 assertEquals("-W-5", f.print(new Partial(fields, values))); 412 assertEquals(0, types.size()); 413 414 types = new ArrayList(Arrays.asList(fields)); 415 f = ISODateTimeFormat.forFields(types, false, true); 416 assertEquals("-W-5", f.print(new Partial(fields, values))); 417 assertEquals(0, types.size()); 418 419 types = new ArrayList(Arrays.asList(fields)); 420 f = ISODateTimeFormat.forFields(types, false, false); 421 assertEquals("-W-5", f.print(new Partial(fields, values))); 422 assertEquals(0, types.size()); 423 } 424 425 //----------------------------------------------------------------------- 426 public void testForFields_weekBased_YW() { 427 DateTimeFieldType[] fields = new DateTimeFieldType[] { 428 DateTimeFieldType.weekyear(), 429 DateTimeFieldType.weekOfWeekyear(), 430 }; 431 int[] values = new int[] {2005, 8}; 432 List types = new ArrayList(Arrays.asList(fields)); 433 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 434 assertEquals("2005-W08", f.print(new Partial(fields, values))); 435 assertEquals(0, types.size()); 436 437 types = new ArrayList(Arrays.asList(fields)); 438 f = ISODateTimeFormat.forFields(types, true, false); 439 assertEquals("2005-W08", f.print(new Partial(fields, values))); 440 assertEquals(0, types.size()); 441 442 types = new ArrayList(Arrays.asList(fields)); 443 f = ISODateTimeFormat.forFields(types, false, true); 444 assertEquals("2005W08", f.print(new Partial(fields, values))); 445 assertEquals(0, types.size()); 446 447 types = new ArrayList(Arrays.asList(fields)); 448 f = ISODateTimeFormat.forFields(types, false, false); 449 assertEquals("2005W08", f.print(new Partial(fields, values))); 450 assertEquals(0, types.size()); 451 } 452 453 //----------------------------------------------------------------------- 454 public void testForFields_weekBased_WD() { 455 DateTimeFieldType[] fields = new DateTimeFieldType[] { 456 DateTimeFieldType.weekOfWeekyear(), 457 DateTimeFieldType.dayOfWeek(), 458 }; 459 int[] values = new int[] {8, 5}; 460 List types = new ArrayList(Arrays.asList(fields)); 461 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 462 assertEquals("-W08-5", f.print(new Partial(fields, values))); 463 assertEquals(0, types.size()); 464 465 types = new ArrayList(Arrays.asList(fields)); 466 f = ISODateTimeFormat.forFields(types, true, false); 467 assertEquals("-W08-5", f.print(new Partial(fields, values))); 468 assertEquals(0, types.size()); 469 470 types = new ArrayList(Arrays.asList(fields)); 471 f = ISODateTimeFormat.forFields(types, false, true); 472 assertEquals("-W085", f.print(new Partial(fields, values))); 473 assertEquals(0, types.size()); 474 475 types = new ArrayList(Arrays.asList(fields)); 476 f = ISODateTimeFormat.forFields(types, false, false); 477 assertEquals("-W085", f.print(new Partial(fields, values))); 478 assertEquals(0, types.size()); 479 } 480 481 //----------------------------------------------------------------------- 482 public void testForFields_weekBased_YD() { 483 DateTimeFieldType[] fields = new DateTimeFieldType[] { 484 DateTimeFieldType.weekyear(), 485 DateTimeFieldType.dayOfWeek(), 486 }; 487 int[] values = new int[] {2005, 5}; 488 List types = new ArrayList(Arrays.asList(fields)); 489 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, false); 490 assertEquals("2005-W-5", f.print(new Partial(fields, values))); 491 assertEquals(0, types.size()); 492 493 types = new ArrayList(Arrays.asList(fields)); 494 f = ISODateTimeFormat.forFields(types, false, false); 495 assertEquals("2005W-5", f.print(new Partial(fields, values))); 496 assertEquals(0, types.size()); 497 498 types = new ArrayList(Arrays.asList(fields)); 499 try { 500 ISODateTimeFormat.forFields(types, true, true); 501 fail(); 502 } catch (IllegalArgumentException ex) {} 503 504 types = new ArrayList(Arrays.asList(fields)); 505 try { 506 ISODateTimeFormat.forFields(types, false, true); 507 fail(); 508 } catch (IllegalArgumentException ex) {} 509 } 510 511 //----------------------------------------------------------------------- 512 //----------------------------------------------------------------------- 513 //----------------------------------------------------------------------- 514 public void testForFields_ordinalBased_YD() { 515 DateTimeFieldType[] fields = new DateTimeFieldType[] { 516 DateTimeFieldType.year(), 517 DateTimeFieldType.dayOfYear(), 518 }; 519 int[] values = new int[] {2005, 177}; 520 List types = new ArrayList(Arrays.asList(fields)); 521 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 522 assertEquals("2005-177", f.print(new Partial(fields, values))); 523 assertEquals(0, types.size()); 524 525 types = new ArrayList(Arrays.asList(fields)); 526 f = ISODateTimeFormat.forFields(types, true, false); 527 assertEquals("2005-177", f.print(new Partial(fields, values))); 528 assertEquals(0, types.size()); 529 530 types = new ArrayList(Arrays.asList(fields)); 531 f = ISODateTimeFormat.forFields(types, false, true); 532 assertEquals("2005177", f.print(new Partial(fields, values))); 533 assertEquals(0, types.size()); 534 535 types = new ArrayList(Arrays.asList(fields)); 536 f = ISODateTimeFormat.forFields(types, false, false); 537 assertEquals("2005177", f.print(new Partial(fields, values))); 538 assertEquals(0, types.size()); 539 } 540 541 //----------------------------------------------------------------------- 542 public void testForFields_ordinalBased_Y() { 543 DateTimeFieldType[] fields = new DateTimeFieldType[] { 544 DateTimeFieldType.year(), 545 }; 546 int[] values = new int[] {2005}; 547 List types = new ArrayList(Arrays.asList(fields)); 548 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 549 assertEquals("2005", f.print(new Partial(fields, values))); 550 assertEquals(0, types.size()); 551 552 types = new ArrayList(Arrays.asList(fields)); 553 f = ISODateTimeFormat.forFields(types, true, false); 554 assertEquals("2005", f.print(new Partial(fields, values))); 555 assertEquals(0, types.size()); 556 557 types = new ArrayList(Arrays.asList(fields)); 558 f = ISODateTimeFormat.forFields(types, false, true); 559 assertEquals("2005", f.print(new Partial(fields, values))); 560 assertEquals(0, types.size()); 561 562 types = new ArrayList(Arrays.asList(fields)); 563 f = ISODateTimeFormat.forFields(types, false, false); 564 assertEquals("2005", f.print(new Partial(fields, values))); 565 assertEquals(0, types.size()); 566 } 567 568 //----------------------------------------------------------------------- 569 public void testForFields_ordinalBased_D() { 570 DateTimeFieldType[] fields = new DateTimeFieldType[] { 571 DateTimeFieldType.dayOfYear(), 572 }; 573 int[] values = new int[] {177}; 574 List types = new ArrayList(Arrays.asList(fields)); 575 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 576 assertEquals("-177", f.print(new Partial(fields, values))); 577 assertEquals(0, types.size()); 578 579 types = new ArrayList(Arrays.asList(fields)); 580 f = ISODateTimeFormat.forFields(types, true, false); 581 assertEquals("-177", f.print(new Partial(fields, values))); 582 assertEquals(0, types.size()); 583 584 types = new ArrayList(Arrays.asList(fields)); 585 f = ISODateTimeFormat.forFields(types, false, true); 586 assertEquals("-177", f.print(new Partial(fields, values))); 587 assertEquals(0, types.size()); 588 589 types = new ArrayList(Arrays.asList(fields)); 590 f = ISODateTimeFormat.forFields(types, false, false); 591 assertEquals("-177", f.print(new Partial(fields, values))); 592 assertEquals(0, types.size()); 593 } 594 595 //----------------------------------------------------------------------- 596 //----------------------------------------------------------------------- 597 //----------------------------------------------------------------------- 598 public void testForFields_time_HMSm() { 599 DateTimeFieldType[] fields = new DateTimeFieldType[] { 600 DateTimeFieldType.hourOfDay(), 601 DateTimeFieldType.minuteOfHour(), 602 DateTimeFieldType.secondOfMinute(), 603 DateTimeFieldType.millisOfSecond(), 604 }; 605 int[] values = new int[] {10, 20, 30, 40}; 606 List types = new ArrayList(Arrays.asList(fields)); 607 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 608 assertEquals("10:20:30.040", f.print(new Partial(fields, values))); 609 assertEquals(0, types.size()); 610 611 types = new ArrayList(Arrays.asList(fields)); 612 f = ISODateTimeFormat.forFields(types, true, false); 613 assertEquals("10:20:30.040", f.print(new Partial(fields, values))); 614 assertEquals(0, types.size()); 615 616 types = new ArrayList(Arrays.asList(fields)); 617 f = ISODateTimeFormat.forFields(types, false, true); 618 assertEquals("102030.040", f.print(new Partial(fields, values))); 619 assertEquals(0, types.size()); 620 621 types = new ArrayList(Arrays.asList(fields)); 622 f = ISODateTimeFormat.forFields(types, false, false); 623 assertEquals("102030.040", f.print(new Partial(fields, values))); 624 assertEquals(0, types.size()); 625 } 626 627 //----------------------------------------------------------------------- 628 public void testForFields_time_HMS() { 629 DateTimeFieldType[] fields = new DateTimeFieldType[] { 630 DateTimeFieldType.hourOfDay(), 631 DateTimeFieldType.minuteOfHour(), 632 DateTimeFieldType.secondOfMinute(), 633 }; 634 int[] values = new int[] {10, 20, 30}; 635 List types = new ArrayList(Arrays.asList(fields)); 636 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 637 assertEquals("10:20:30", f.print(new Partial(fields, values))); 638 assertEquals(0, types.size()); 639 640 types = new ArrayList(Arrays.asList(fields)); 641 f = ISODateTimeFormat.forFields(types, true, false); 642 assertEquals("10:20:30", f.print(new Partial(fields, values))); 643 assertEquals(0, types.size()); 644 645 types = new ArrayList(Arrays.asList(fields)); 646 f = ISODateTimeFormat.forFields(types, false, true); 647 assertEquals("102030", f.print(new Partial(fields, values))); 648 assertEquals(0, types.size()); 649 650 types = new ArrayList(Arrays.asList(fields)); 651 f = ISODateTimeFormat.forFields(types, false, false); 652 assertEquals("102030", f.print(new Partial(fields, values))); 653 assertEquals(0, types.size()); 654 } 655 656 //----------------------------------------------------------------------- 657 public void testForFields_time_HM() { 658 DateTimeFieldType[] fields = new DateTimeFieldType[] { 659 DateTimeFieldType.hourOfDay(), 660 DateTimeFieldType.minuteOfHour(), 661 }; 662 int[] values = new int[] {10, 20}; 663 List types = new ArrayList(Arrays.asList(fields)); 664 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 665 assertEquals("10:20", f.print(new Partial(fields, values))); 666 assertEquals(0, types.size()); 667 668 types = new ArrayList(Arrays.asList(fields)); 669 f = ISODateTimeFormat.forFields(types, true, false); 670 assertEquals("10:20", f.print(new Partial(fields, values))); 671 assertEquals(0, types.size()); 672 673 types = new ArrayList(Arrays.asList(fields)); 674 f = ISODateTimeFormat.forFields(types, false, true); 675 assertEquals("1020", f.print(new Partial(fields, values))); 676 assertEquals(0, types.size()); 677 678 types = new ArrayList(Arrays.asList(fields)); 679 f = ISODateTimeFormat.forFields(types, false, false); 680 assertEquals("1020", f.print(new Partial(fields, values))); 681 assertEquals(0, types.size()); 682 } 683 684 //----------------------------------------------------------------------- 685 public void testForFields_time_H() { 686 DateTimeFieldType[] fields = new DateTimeFieldType[] { 687 DateTimeFieldType.hourOfDay(), 688 }; 689 int[] values = new int[] {10}; 690 List types = new ArrayList(Arrays.asList(fields)); 691 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 692 assertEquals("10", f.print(new Partial(fields, values))); 693 assertEquals(0, types.size()); 694 695 types = new ArrayList(Arrays.asList(fields)); 696 f = ISODateTimeFormat.forFields(types, true, false); 697 assertEquals("10", f.print(new Partial(fields, values))); 698 assertEquals(0, types.size()); 699 700 types = new ArrayList(Arrays.asList(fields)); 701 f = ISODateTimeFormat.forFields(types, false, true); 702 assertEquals("10", f.print(new Partial(fields, values))); 703 assertEquals(0, types.size()); 704 705 types = new ArrayList(Arrays.asList(fields)); 706 f = ISODateTimeFormat.forFields(types, false, false); 707 assertEquals("10", f.print(new Partial(fields, values))); 708 assertEquals(0, types.size()); 709 } 710 711 //----------------------------------------------------------------------- 712 public void testForFields_time_MSm() { 713 DateTimeFieldType[] fields = new DateTimeFieldType[] { 714 DateTimeFieldType.minuteOfHour(), 715 DateTimeFieldType.secondOfMinute(), 716 DateTimeFieldType.millisOfSecond(), 717 }; 718 int[] values = new int[] {20, 30, 40}; 719 List types = new ArrayList(Arrays.asList(fields)); 720 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 721 assertEquals("-20:30.040", f.print(new Partial(fields, values))); 722 assertEquals(0, types.size()); 723 724 types = new ArrayList(Arrays.asList(fields)); 725 f = ISODateTimeFormat.forFields(types, true, false); 726 assertEquals("-20:30.040", f.print(new Partial(fields, values))); 727 assertEquals(0, types.size()); 728 729 types = new ArrayList(Arrays.asList(fields)); 730 f = ISODateTimeFormat.forFields(types, false, true); 731 assertEquals("-2030.040", f.print(new Partial(fields, values))); 732 assertEquals(0, types.size()); 733 734 types = new ArrayList(Arrays.asList(fields)); 735 f = ISODateTimeFormat.forFields(types, false, false); 736 assertEquals("-2030.040", f.print(new Partial(fields, values))); 737 assertEquals(0, types.size()); 738 } 739 740 //----------------------------------------------------------------------- 741 public void testForFields_time_MS() { 742 DateTimeFieldType[] fields = new DateTimeFieldType[] { 743 DateTimeFieldType.minuteOfHour(), 744 DateTimeFieldType.secondOfMinute(), 745 }; 746 int[] values = new int[] {20, 30}; 747 List types = new ArrayList(Arrays.asList(fields)); 748 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 749 assertEquals("-20:30", f.print(new Partial(fields, values))); 750 assertEquals(0, types.size()); 751 752 types = new ArrayList(Arrays.asList(fields)); 753 f = ISODateTimeFormat.forFields(types, true, false); 754 assertEquals("-20:30", f.print(new Partial(fields, values))); 755 assertEquals(0, types.size()); 756 757 types = new ArrayList(Arrays.asList(fields)); 758 f = ISODateTimeFormat.forFields(types, false, true); 759 assertEquals("-2030", f.print(new Partial(fields, values))); 760 assertEquals(0, types.size()); 761 762 types = new ArrayList(Arrays.asList(fields)); 763 f = ISODateTimeFormat.forFields(types, false, false); 764 assertEquals("-2030", f.print(new Partial(fields, values))); 765 assertEquals(0, types.size()); 766 } 767 768 //----------------------------------------------------------------------- 769 public void testForFields_time_M() { 770 DateTimeFieldType[] fields = new DateTimeFieldType[] { 771 DateTimeFieldType.minuteOfHour(), 772 }; 773 int[] values = new int[] {20}; 774 List types = new ArrayList(Arrays.asList(fields)); 775 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 776 assertEquals("-20", f.print(new Partial(fields, values))); 777 assertEquals(0, types.size()); 778 779 types = new ArrayList(Arrays.asList(fields)); 780 f = ISODateTimeFormat.forFields(types, true, false); 781 assertEquals("-20", f.print(new Partial(fields, values))); 782 assertEquals(0, types.size()); 783 784 types = new ArrayList(Arrays.asList(fields)); 785 f = ISODateTimeFormat.forFields(types, false, true); 786 assertEquals("-20", f.print(new Partial(fields, values))); 787 assertEquals(0, types.size()); 788 789 types = new ArrayList(Arrays.asList(fields)); 790 f = ISODateTimeFormat.forFields(types, false, false); 791 assertEquals("-20", f.print(new Partial(fields, values))); 792 assertEquals(0, types.size()); 793 } 794 795 //----------------------------------------------------------------------- 796 public void testForFields_time_Sm() { 797 DateTimeFieldType[] fields = new DateTimeFieldType[] { 798 DateTimeFieldType.secondOfMinute(), 799 DateTimeFieldType.millisOfSecond(), 800 }; 801 int[] values = new int[] {30, 40}; 802 List types = new ArrayList(Arrays.asList(fields)); 803 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 804 assertEquals("--30.040", f.print(new Partial(fields, values))); 805 assertEquals(0, types.size()); 806 807 types = new ArrayList(Arrays.asList(fields)); 808 f = ISODateTimeFormat.forFields(types, true, false); 809 assertEquals("--30.040", f.print(new Partial(fields, values))); 810 assertEquals(0, types.size()); 811 812 types = new ArrayList(Arrays.asList(fields)); 813 f = ISODateTimeFormat.forFields(types, false, true); 814 assertEquals("--30.040", f.print(new Partial(fields, values))); 815 assertEquals(0, types.size()); 816 817 types = new ArrayList(Arrays.asList(fields)); 818 f = ISODateTimeFormat.forFields(types, false, false); 819 assertEquals("--30.040", f.print(new Partial(fields, values))); 820 assertEquals(0, types.size()); 821 } 822 823 //----------------------------------------------------------------------- 824 public void testForFields_time_S() { 825 DateTimeFieldType[] fields = new DateTimeFieldType[] { 826 DateTimeFieldType.secondOfMinute(), 827 }; 828 int[] values = new int[] {30}; 829 List types = new ArrayList(Arrays.asList(fields)); 830 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 831 assertEquals("--30", f.print(new Partial(fields, values))); 832 assertEquals(0, types.size()); 833 834 types = new ArrayList(Arrays.asList(fields)); 835 f = ISODateTimeFormat.forFields(types, true, false); 836 assertEquals("--30", f.print(new Partial(fields, values))); 837 assertEquals(0, types.size()); 838 839 types = new ArrayList(Arrays.asList(fields)); 840 f = ISODateTimeFormat.forFields(types, false, true); 841 assertEquals("--30", f.print(new Partial(fields, values))); 842 assertEquals(0, types.size()); 843 844 types = new ArrayList(Arrays.asList(fields)); 845 f = ISODateTimeFormat.forFields(types, false, false); 846 assertEquals("--30", f.print(new Partial(fields, values))); 847 assertEquals(0, types.size()); 848 } 849 850 //----------------------------------------------------------------------- 851 public void testForFields_time_m() { 852 DateTimeFieldType[] fields = new DateTimeFieldType[] { 853 DateTimeFieldType.millisOfSecond(), 854 }; 855 int[] values = new int[] {40}; 856 List types = new ArrayList(Arrays.asList(fields)); 857 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, false); 858 assertEquals("---.040", f.print(new Partial(fields, values))); 859 assertEquals(0, types.size()); 860 861 types = new ArrayList(Arrays.asList(fields)); 862 f = ISODateTimeFormat.forFields(types, false, false); 863 assertEquals("---.040", f.print(new Partial(fields, values))); 864 assertEquals(0, types.size()); 865 866 types = new ArrayList(Arrays.asList(fields)); 867 try { 868 ISODateTimeFormat.forFields(types, true, true); 869 fail(); 870 } catch (IllegalArgumentException ex) {} 871 872 types = new ArrayList(Arrays.asList(fields)); 873 try { 874 ISODateTimeFormat.forFields(types, false, true); 875 fail(); 876 } catch (IllegalArgumentException ex) {} 877 } 878 879 //----------------------------------------------------------------------- 880 public void testForFields_time_Hm() { 881 DateTimeFieldType[] fields = new DateTimeFieldType[] { 882 DateTimeFieldType.hourOfDay(), 883 DateTimeFieldType.millisOfSecond(), 884 }; 885 int[] values = new int[] {10, 40}; 886 List types = new ArrayList(Arrays.asList(fields)); 887 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, false); 888 assertEquals("10--.040", f.print(new Partial(fields, values))); 889 assertEquals(0, types.size()); 890 891 types = new ArrayList(Arrays.asList(fields)); 892 f = ISODateTimeFormat.forFields(types, false, false); 893 assertEquals("10--.040", f.print(new Partial(fields, values))); 894 assertEquals(0, types.size()); 895 896 types = new ArrayList(Arrays.asList(fields)); 897 try { 898 ISODateTimeFormat.forFields(types, true, true); 899 fail(); 900 } catch (IllegalArgumentException ex) {} 901 902 types = new ArrayList(Arrays.asList(fields)); 903 try { 904 ISODateTimeFormat.forFields(types, false, true); 905 fail(); 906 } catch (IllegalArgumentException ex) {} 907 } 908 909 //----------------------------------------------------------------------- 910 public void testForFields_time_HS() { 911 DateTimeFieldType[] fields = new DateTimeFieldType[] { 912 DateTimeFieldType.hourOfDay(), 913 DateTimeFieldType.secondOfMinute(), 914 }; 915 int[] values = new int[] {10, 30}; 916 List types = new ArrayList(Arrays.asList(fields)); 917 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, false); 918 assertEquals("10-30", f.print(new Partial(fields, values))); 919 assertEquals(0, types.size()); 920 921 types = new ArrayList(Arrays.asList(fields)); 922 f = ISODateTimeFormat.forFields(types, false, false); 923 assertEquals("10-30", f.print(new Partial(fields, values))); 924 assertEquals(0, types.size()); 925 926 types = new ArrayList(Arrays.asList(fields)); 927 try { 928 ISODateTimeFormat.forFields(types, true, true); 929 fail(); 930 } catch (IllegalArgumentException ex) {} 931 932 types = new ArrayList(Arrays.asList(fields)); 933 try { 934 ISODateTimeFormat.forFields(types, false, true); 935 fail(); 936 } catch (IllegalArgumentException ex) {} 937 } 938 939 //----------------------------------------------------------------------- 940 public void testForFields_time_Mm() { 941 DateTimeFieldType[] fields = new DateTimeFieldType[] { 942 DateTimeFieldType.minuteOfHour(), 943 DateTimeFieldType.millisOfSecond(), 944 }; 945 int[] values = new int[] {20, 40}; 946 List types = new ArrayList(Arrays.asList(fields)); 947 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, false); 948 assertEquals("-20-.040", f.print(new Partial(fields, values))); 949 assertEquals(0, types.size()); 950 951 types = new ArrayList(Arrays.asList(fields)); 952 f = ISODateTimeFormat.forFields(types, false, false); 953 assertEquals("-20-.040", f.print(new Partial(fields, values))); 954 assertEquals(0, types.size()); 955 956 types = new ArrayList(Arrays.asList(fields)); 957 try { 958 ISODateTimeFormat.forFields(types, true, true); 959 fail(); 960 } catch (IllegalArgumentException ex) {} 961 962 types = new ArrayList(Arrays.asList(fields)); 963 try { 964 ISODateTimeFormat.forFields(types, false, true); 965 fail(); 966 } catch (IllegalArgumentException ex) {} 967 } 968 969 //----------------------------------------------------------------------- 970 public void testForFields_time_HSm() { 971 DateTimeFieldType[] fields = new DateTimeFieldType[] { 972 DateTimeFieldType.hourOfDay(), 973 DateTimeFieldType.secondOfMinute(), 974 DateTimeFieldType.millisOfSecond(), 975 }; 976 int[] values = new int[] {10, 30, 40}; 977 List types = new ArrayList(Arrays.asList(fields)); 978 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, false); 979 assertEquals("10-30.040", f.print(new Partial(fields, values))); 980 assertEquals(0, types.size()); 981 982 types = new ArrayList(Arrays.asList(fields)); 983 f = ISODateTimeFormat.forFields(types, false, false); 984 assertEquals("10-30.040", f.print(new Partial(fields, values))); 985 assertEquals(0, types.size()); 986 987 types = new ArrayList(Arrays.asList(fields)); 988 try { 989 ISODateTimeFormat.forFields(types, true, true); 990 fail(); 991 } catch (IllegalArgumentException ex) {} 992 993 types = new ArrayList(Arrays.asList(fields)); 994 try { 995 ISODateTimeFormat.forFields(types, false, true); 996 fail(); 997 } catch (IllegalArgumentException ex) {} 998 } 999 1000 //----------------------------------------------------------------------- 1001 public void testForFields_time_HMm() { 1002 DateTimeFieldType[] fields = new DateTimeFieldType[] { 1003 DateTimeFieldType.hourOfDay(), 1004 DateTimeFieldType.minuteOfHour(), 1005 DateTimeFieldType.millisOfSecond(), 1006 }; 1007 int[] values = new int[] {10, 20, 40}; 1008 List types = new ArrayList(Arrays.asList(fields)); 1009 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, false); 1010 assertEquals("10:20-.040", f.print(new Partial(fields, values))); 1011 assertEquals(0, types.size()); 1012 1013 types = new ArrayList(Arrays.asList(fields)); 1014 f = ISODateTimeFormat.forFields(types, false, false); 1015 assertEquals("1020-.040", f.print(new Partial(fields, values))); 1016 assertEquals(0, types.size()); 1017 1018 types = new ArrayList(Arrays.asList(fields)); 1019 try { 1020 ISODateTimeFormat.forFields(types, true, true); 1021 fail(); 1022 } catch (IllegalArgumentException ex) {} 1023 1024 types = new ArrayList(Arrays.asList(fields)); 1025 try { 1026 ISODateTimeFormat.forFields(types, false, true); 1027 fail(); 1028 } catch (IllegalArgumentException ex) {} 1029 } 1030 1031 //----------------------------------------------------------------------- 1032 //----------------------------------------------------------------------- 1033 //----------------------------------------------------------------------- 1034 public void testForFields_datetime_YMDH() { 1035 DateTimeFieldType[] fields = new DateTimeFieldType[] { 1036 DateTimeFieldType.year(), 1037 DateTimeFieldType.monthOfYear(), 1038 DateTimeFieldType.dayOfMonth(), 1039 DateTimeFieldType.hourOfDay(), 1040 }; 1041 int[] values = new int[] {2005, 6, 25, 12}; 1042 List types = new ArrayList(Arrays.asList(fields)); 1043 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 1044 assertEquals("2005-06-25T12", f.print(new Partial(fields, values))); 1045 assertEquals(0, types.size()); 1046 1047 types = new ArrayList(Arrays.asList(fields)); 1048 f = ISODateTimeFormat.forFields(types, true, false); 1049 assertEquals("2005-06-25T12", f.print(new Partial(fields, values))); 1050 assertEquals(0, types.size()); 1051 1052 types = new ArrayList(Arrays.asList(fields)); 1053 f = ISODateTimeFormat.forFields(types, false, true); 1054 assertEquals("20050625T12", f.print(new Partial(fields, values))); 1055 assertEquals(0, types.size()); 1056 1057 types = new ArrayList(Arrays.asList(fields)); 1058 f = ISODateTimeFormat.forFields(types, false, false); 1059 assertEquals("20050625T12", f.print(new Partial(fields, values))); 1060 assertEquals(0, types.size()); 1061 } 1062 1063 //----------------------------------------------------------------------- 1064 public void testForFields_datetime_DH() { 1065 DateTimeFieldType[] fields = new DateTimeFieldType[] { 1066 DateTimeFieldType.dayOfMonth(), 1067 DateTimeFieldType.hourOfDay(), 1068 }; 1069 int[] values = new int[] {25, 12}; 1070 List types = new ArrayList(Arrays.asList(fields)); 1071 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, true); 1072 assertEquals("---25T12", f.print(new Partial(fields, values))); 1073 assertEquals(0, types.size()); 1074 1075 types = new ArrayList(Arrays.asList(fields)); 1076 f = ISODateTimeFormat.forFields(types, true, false); 1077 assertEquals("---25T12", f.print(new Partial(fields, values))); 1078 assertEquals(0, types.size()); 1079 1080 types = new ArrayList(Arrays.asList(fields)); 1081 f = ISODateTimeFormat.forFields(types, false, true); 1082 assertEquals("---25T12", f.print(new Partial(fields, values))); 1083 assertEquals(0, types.size()); 1084 1085 types = new ArrayList(Arrays.asList(fields)); 1086 f = ISODateTimeFormat.forFields(types, false, false); 1087 assertEquals("---25T12", f.print(new Partial(fields, values))); 1088 assertEquals(0, types.size()); 1089 } 1090 1091 //----------------------------------------------------------------------- 1092 public void testForFields_datetime_YH() { 1093 DateTimeFieldType[] fields = new DateTimeFieldType[] { 1094 DateTimeFieldType.year(), 1095 DateTimeFieldType.hourOfDay(), 1096 }; 1097 int[] values = new int[] {2005, 12}; 1098 List types = new ArrayList(Arrays.asList(fields)); 1099 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, false); 1100 assertEquals("2005T12", f.print(new Partial(fields, values))); 1101 assertEquals(0, types.size()); 1102 1103 types = new ArrayList(Arrays.asList(fields)); 1104 f = ISODateTimeFormat.forFields(types, false, false); 1105 assertEquals("2005T12", f.print(new Partial(fields, values))); 1106 assertEquals(0, types.size()); 1107 1108 types = new ArrayList(Arrays.asList(fields)); 1109 try { 1110 ISODateTimeFormat.forFields(types, true, true); 1111 fail(); 1112 } catch (IllegalArgumentException ex) {} 1113 1114 types = new ArrayList(Arrays.asList(fields)); 1115 try { 1116 ISODateTimeFormat.forFields(types, false, true); 1117 fail(); 1118 } catch (IllegalArgumentException ex) {} 1119 } 1120 1121 //----------------------------------------------------------------------- 1122 public void testForFields_datetime_DM() { 1123 DateTimeFieldType[] fields = new DateTimeFieldType[] { 1124 DateTimeFieldType.dayOfMonth(), 1125 DateTimeFieldType.minuteOfHour(), 1126 }; 1127 int[] values = new int[] {25, 20}; 1128 List types = new ArrayList(Arrays.asList(fields)); 1129 DateTimeFormatter f = ISODateTimeFormat.forFields(types, true, false); 1130 assertEquals("---25T-20", f.print(new Partial(fields, values))); 1131 assertEquals(0, types.size()); 1132 1133 types = new ArrayList(Arrays.asList(fields)); 1134 f = ISODateTimeFormat.forFields(types, false, false); 1135 assertEquals("---25T-20", f.print(new Partial(fields, values))); 1136 assertEquals(0, types.size()); 1137 1138 types = new ArrayList(Arrays.asList(fields)); 1139 try { 1140 ISODateTimeFormat.forFields(types, true, true); 1141 fail(); 1142 } catch (IllegalArgumentException ex) {} 1143 1144 types = new ArrayList(Arrays.asList(fields)); 1145 try { 1146 ISODateTimeFormat.forFields(types, false, true); 1147 fail(); 1148 } catch (IllegalArgumentException ex) {} 1149 } 1150 1151 }