|
@@ -1,35 +1,36 @@
|
|
|
package fs
|
|
|
|
|
|
import (
|
|
|
+ "fmt"
|
|
|
"testing"
|
|
|
|
|
|
"github.com/google/go-cmp/cmp"
|
|
|
)
|
|
|
|
|
|
func TestMailFileString(t *testing.T) {
|
|
|
- var message_nums = []int{0, 1, 2, 3, 4}
|
|
|
- var results []MailFile
|
|
|
clock := mockClock{}
|
|
|
- oracle := newOracle(clock)
|
|
|
- for range message_nums {
|
|
|
- req := NewMailFileRequest()
|
|
|
- oracle <- req
|
|
|
- results = append(results, req.Response())
|
|
|
- }
|
|
|
- for i := range message_nums[1:] {
|
|
|
- timestamp_c := results[0].timestamp != results[i].timestamp
|
|
|
- pid_c := results[0].pid != results[i].pid
|
|
|
- hostname_c := results[0].hostname != results[i].hostname
|
|
|
+ timestamp := clock.Now()
|
|
|
+ progressive := 4
|
|
|
+ pid := 1312
|
|
|
+ hostname := "myplace"
|
|
|
+ name := "main_account" // known md5sum: f2cf513ad46d4d9b9684103e468803a0
|
|
|
+ uid := 33243
|
|
|
+ mf := &MailFile{timestamp: timestamp, progressive: progressive, pid: pid, hostname: hostname}
|
|
|
+ mf.SetFlags([]Flag{Seen, Answered})
|
|
|
+ mf.SetMd5FromName(name)
|
|
|
+ mf.SetUid(uid)
|
|
|
|
|
|
- if timestamp_c || pid_c || hostname_c {
|
|
|
- t.Logf("timestamp_c: %+v\n", timestamp_c)
|
|
|
- t.Logf("pid_c: %+v\n", pid_c)
|
|
|
- t.Logf("hostname_c: %+v\n", hostname_c)
|
|
|
- t.Errorf("Mismatching timestamps, %+v\n", cmp.Diff(results[0], results[i], cmp.AllowUnexported(MailFile{})))
|
|
|
- }
|
|
|
+ expect := fmt.Sprintf(
|
|
|
+ "%d_%d.%d.%s,U=%d,FMD5=f2cf513ad46d4d9b9684103e468803a0:2,RS",
|
|
|
+ timestamp.Unix(),
|
|
|
+ progressive,
|
|
|
+ pid,
|
|
|
+ hostname,
|
|
|
+ uid)
|
|
|
+ result := fmt.Sprint(mf)
|
|
|
|
|
|
- if results[i].progressive != i {
|
|
|
- t.Errorf("Unexpected progressive -> have: %d | expect: %d\n", results[i].progressive, i)
|
|
|
- }
|
|
|
+ if expect != result {
|
|
|
+ t.Errorf("Mismatch\n\tExpect: %s\n\tResult: %s\n", expect, result)
|
|
|
+ t.Logf("diff: %s", cmp.Diff(expect, result))
|
|
|
}
|
|
|
}
|