tme

Toggl like Time Manager
git clone git://gtms.dev:tme
Log | Files | Refs

time_test.go (1042B)


      1 package main
      2 
      3 import (
      4 	"testing"
      5 	"time"
      6 )
      7 
      8 func TestParseArg(t *testing.T) {
      9 	layout := "15:4:5 2/1/2006"
     10 	context, _ := time.Parse(layout, "1:1:1 1/1/2001")
     11 	var check = func(raw string, expected string) {
     12 		t.Helper()
     13 		t.Run("", func(b *testing.T) {
     14 			b.Helper()
     15 			tmeTime := NewTime(context)
     16 			expected, _ := time.Parse(layout, expected)
     17 			parsed, err := tmeTime.ParseArg(raw)
     18 			if err != nil {
     19 				b.Fatal(err)
     20 			}
     21 
     22 			if !parsed.Equal(expected) {
     23 				b.Errorf("Parsed %v; Expected %v", parsed, expected)
     24 			}
     25 		})
     26 	}
     27 
     28 	check("5", "5:0:0 1/1/2001")
     29 	check("5:5", "5:5:0 1/1/2001")
     30 	check("5:5:5", "5:5:5 1/1/2001")
     31 	check("5:5 5", "5:5:0 5/1/2001")
     32 	check("5:5 5/5", "5:5:0 5/5/2001")
     33 	check("5:5 5/5/2005", "5:5:0 5/5/2005")
     34 
     35 	check("5/5", "0:0:0 5/5/2001")
     36 	check("5/5/2005", "0:0:0 5/5/2005")
     37 	check("5/2005", "0:0:0 1/5/2005")
     38 
     39 	check("5:05", "5:5:0 1/1/2001")
     40 	check("05:05", "5:5:0 1/1/2001")
     41 	check("05:5 05/5/2005", "5:5:0 5/5/2005")
     42 	check("5:5 5/05/2005", "5:5:0 5/5/2005")
     43 	check("5:05 5/05/2005", "5:5:0 5/5/2005")
     44 }