package main import ( "log" "testing" "time" ) func TestSession(t *testing.T) { id := "testopenid" procedure := "test procedure" //delete any existing deleteSession(id) path := getSessionPath(id) AssertEqual(t, isFileExist(path), false, "Session file should not exist") //create new original := createEmptySession(id, 100) original.Procedure = procedure original.Save() //wait 1 sec log.Print("wait for 1 sec for testing timestamp ......") time.Sleep(1 * time.Second) log.Print("......waiting done") //read back , check state s, _ := getCurrentSesssion(id) AssertEqual(t, s.Procedure, procedure, "") now := int32(time.Now().Unix()) //check timing AssertEqual(t, s.Expire > now, true, "Expire should be in future") AssertEqual(t, s.UpdateAt < now, true, "Update should be in pass") AssertEqual(t, s.CreateAt == s.UpdateAt, true, "Update should be equal to create") AssertEqual(t, isExpired(now), false, "current time should not be expired") //update existing session s.setKvPair("key", "value") s.setKvPair("key1", "value1") //timeing should be exactly 1s diff AssertEqual(t, s.CreateAt+1 == s.UpdateAt, true, "second Update should be bigger create") s.Save() n, _ := getCurrentSesssion(id) AssertEqual(t, n.KvPair["key"], "value", "key = value ") AssertEqual(t, n.KvPair["key1"], "value1", "key1 = value1") //delete session, for clean up deleteSession(id) path = getSessionPath(id) AssertEqual(t, isFileExist(path), false, "Session file should not exist") }