1defmodule ZoneInfoParserTest do
2  use ExUnit.Case, async: true
3  alias Timex.Timezone.Local
4
5  @seconds1 :calendar.datetime_to_gregorian_seconds({{2014,3,24},{0,0,0}})
6  @seconds2 :calendar.datetime_to_gregorian_seconds({{2014,2,24},{0,0,0}})
7
8  test "parse_tzfile with TZIF v1" do
9    # TZIF Version 1
10    chicago = System.cwd |> Path.join("test/include/tzif/America/Chicago")
11    assert {:ok, "CDT"} = chicago |> File.read! |> Local.parse_tzfile(@seconds1)
12    assert {:ok, "CST"} = chicago |> File.read! |> Local.parse_tzfile(@seconds2)
13
14    # TZIF Version 1
15    new_york = System.cwd |> Path.join("test/include/tzif/America/New_York")
16    assert {:ok, "EDT"} = new_york |> File.read! |> Local.parse_tzfile(@seconds1)
17    assert {:ok, "EST"} = new_york |> File.read! |> Local.parse_tzfile(@seconds2)
18  end
19
20  test "parse_tzfile with TZIF v2" do
21    # TZIF Version 2
22    chicago = System.cwd |> Path.join("test/include/tzif2/America/Chicago")
23    assert {:ok, "CDT"} = chicago |> File.read! |> Local.parse_tzfile(@seconds1)
24    assert {:ok, "CST"} = chicago |> File.read! |> Local.parse_tzfile(@seconds2)
25
26    # TZIF Version 2
27    new_york = System.cwd |> Path.join("test/include/tzif2/America/New_York")
28    assert {:ok, "EDT"} = new_york |> File.read! |> Local.parse_tzfile(@seconds1)
29    assert {:ok, "EST"} = new_york |> File.read! |> Local.parse_tzfile(@seconds2)
30  end
31end
32