package main import ( "testing" "time" ) func TestChatState(t *testing.T) { openID := "id" procedure := "getUserBasicProfile" s := chatState{} s.Name = "waiting for username" s.Expire = int32(time.Now().Unix() + 200) s.Save = map[string]string{ "txt": "What is your date of birth?", "icon": "/mnt/data/abc.jpg", } s.response = "somexml less than 2018bytes" //save n, err := setCurrentState(openID, procedure, s) AssertEqual(t, err, nil, "save state should be successful") //read out m, _ := getCurrentState(openID, procedure) //compare AssertEqual(t, m.Name, n.Name, "Name should be equal") AssertEqual(t, m.Expire, n.Expire, "Expire should be equal") AssertEqual(t, m.Save["txt"], s.Save["txt"], "Message[txt] should be equal") AssertEqual(t, m.Save["icon"], s.Save["icon"], "Message[icon] should be equal") AssertEqual(t, m.OpenID, openID, "openID should be "+openID) AssertEqual(t, m.response, "", "response should be empty") AssertEqual(t, m.Procedure, procedure, "procedure should be "+procedure) AssertEqual(t, m.Save["txt"], n.Save["txt"], "Message[txt] should be equal") AssertEqual(t, m.Save["icon"], n.Save["icon"], "Message[icon] should be equal") err = deleteChatState(openID, procedure) AssertEqual(t, err, nil, "delete chatState should be good") } func TestStartProcedure(t *testing.T) { openID := "id" s := startProcedure(openID, "TestDummy") AssertEqual(t, s != nil, true, "TestDummy should return error") s = startProcedure(openID, "TestEcho") AssertEqual(t, s, nil, "TestEqual should return success") }