package calendar

import (
	"fmt"
	"testing"
	"time"
)

func TestWarsawDate(t *testing.T) {
	makeTime := func(s string) EventTime {
		t.Helper()
		warsaw, err := time.LoadLocation("Europe/Warsaw")
		if err != nil {
			t.Fatalf("could not get Warsaw timezone: %v", err)
		}
		ti, err := time.ParseInLocation("2006/01/02 15:04", s, warsaw)
		if err != nil {
			t.Fatal("could not parse test time %q: %v", s, err)
		}
		return EventTime{
			Time: ti,
		}
	}
	makeDay := func(s string) EventTime {
		t.Helper()
		ti, err := time.Parse("2006/01/02", s)
		if err != nil {
			t.Fatal("could not parse test day %q: %v", s, err)
		}
		return EventTime{
			Time:     ti,
			WholeDay: true,
		}
	}
	for i, te := range []struct {
		start EventTime
		end   EventTime
		want  string
	}{
		{
			makeTime("2021/03/14 13:37"), makeTime("2021/04/20 21:37"),
			"2021/03/14 13:37 - 2021/04/20 21:37",
		},
		{
			makeTime("2021/04/20 13:37"), makeTime("2021/04/20 21:37"),
			"2021/04/20 13:37 - 21:37",
		},
		{
			makeDay("2021/06/01"), makeDay("2021/07/01"),
			"2021/06/01 - 30",
		},
		{
			makeDay("2021/03/14"), makeDay("2021/04/21"),
			"2021/03/14 - 2021/04/20",
		},
		{
			makeDay("2021/04/20"), makeDay("2021/04/21"),
			"2021/04/20",
		},
	} {
		te := te
		t.Run(fmt.Sprintf("%d", i), func(t *testing.T) {
			ev := UpcomingEvent{
				Start: &te.start,
				End:   &te.end,
			}
			got := ev.WarsawDate()
			if got != te.want {
				t.Fatalf("wanted %q, got %q", te.want, got)
			}
		})
	}
}
