<?php
namespace nulib\schema\types;

use nulib\schema\_scalar\ScalarWrapper;
use nulib\schema\Schema;
use nulib\tests\TestCase;

class unionTest extends TestCase {
  function testUnionTypes() {
    ## l'ordre des types doit être respecté
    
    # string puis int
    /** @var ScalarWrapper $siw */
    Schema::nw($si, null, "string|int", $sis, $siw);

    $siw->set("12");
    self::assertSame("12", $si);
    $siw->set(12);
    self::assertSame(12, $si);

    # int puis string
    /** @var ScalarWrapper $isw */
    Schema::nw($is, null, "int|string", $iss, $isw);

    $isw->set("12");
    self::assertSame("12", $is);
    $isw->set(12);
    self::assertSame(12, $is);
  }
}
