<?php
namespace nur\data\template;

use nur\b\io\StringWriter;
use PHPUnit\Framework\TestCase;

class StreamTemplateTest extends TestCase {
  function testApply() {
    $sw = new StringWriter();
    $t = new MyTemplate($sw);
    $t["texte"] = "truc";
    $t->apply();
    self::assertSame(
      "Ceci est un TEST de truc\nqui bouge pas _et_ qui bouge\n",
      $sw->getString()
    );
    $t["texte"] = "machin";
    $t->apply();
    self::assertSame(
      "Ceci est un TEST de machin\nqui bouge pas _et_ qui bouge\n",
      $sw->getString()
    );
  }
}
class MyTemplate extends StreamTemplate {
  const INPUT = __DIR__ . "/StreamTemplateTest.txt";
  const EXPRS = [
    "TEXTE" => "texte",
    "statique" => "::get_statique",
    "dynamique" => "->getDynamique",
  ];

  static function get_statique(): string {
    return "qui bouge pas";
  }
  function getDynamique(): string {
    return "qui bouge";
  }
}