gte/internal/process/fetch_test.go

85 lines
2.3 KiB
Go
Raw Normal View History

2021-06-25 09:14:27 +02:00
package process_test
import (
2021-08-25 06:52:48 +02:00
"sort"
2021-06-25 09:14:27 +02:00
"testing"
2024-03-08 09:20:40 +01:00
"code.ewintr.nl/go-kit/test"
"code.ewintr.nl/gte/internal/process"
"code.ewintr.nl/gte/internal/storage"
"code.ewintr.nl/gte/internal/task"
"code.ewintr.nl/gte/pkg/mstore"
2021-06-25 09:14:27 +02:00
)
2021-09-03 07:12:16 +02:00
func TestFetchProcess(t *testing.T) {
2021-06-25 09:14:27 +02:00
task1 := &task.Task{
Id: "id1",
Version: 1,
Action: "action1",
Folder: task.FOLDER_NEW,
}
task2 := &task.Task{
Id: "id2",
Version: 1,
Action: "action2",
Folder: task.FOLDER_UNPLANNED,
}
2022-10-25 15:59:09 +02:00
task3 := &task.Task{
Id: "id3",
Version: 1,
Action: "action3",
Folder: task.FOLDER_PLANNED,
}
2021-06-25 09:14:27 +02:00
2021-09-01 06:52:21 +02:00
localTask1 := &task.LocalTask{Task: *task1, LocalUpdate: &task.LocalUpdate{}, LocalStatus: task.STATUS_FETCHED}
localTask2 := &task.LocalTask{Task: *task2, LocalUpdate: &task.LocalUpdate{}, LocalStatus: task.STATUS_FETCHED}
2022-10-25 15:59:09 +02:00
localTask3 := &task.LocalTask{Task: *task3, LocalUpdate: &task.LocalUpdate{}, LocalStatus: task.STATUS_FETCHED}
2021-08-20 09:06:35 +02:00
2021-06-25 09:14:27 +02:00
mstorer, err := mstore.NewMemory(task.KnownFolders)
test.OK(t, err)
test.OK(t, mstorer.Add(task1.Folder, task1.FormatSubject(), task1.FormatBody()))
test.OK(t, mstorer.Add(task2.Folder, task2.FormatSubject(), task2.FormatBody()))
2022-10-25 15:59:09 +02:00
test.OK(t, mstorer.Add(task3.Folder, task3.FormatSubject(), task3.FormatBody()))
2021-06-25 09:14:27 +02:00
remote := storage.NewRemoteRepository(mstorer)
local := storage.NewMemory()
2022-10-25 15:59:09 +02:00
t.Run("all", func(t *testing.T) {
syncer := process.NewFetch(remote, local)
actResult, err := syncer.Process()
test.OK(t, err)
test.Equals(t, 3, actResult.Count)
actTasks, err := local.FindAll()
test.OK(t, err)
for _, a := range actTasks {
a.LocalId = 0
a.Message = nil
}
exp := task.ById([]*task.LocalTask{localTask1, localTask2, localTask3})
sExp := task.ById(exp)
sAct := task.ById(actTasks)
sort.Sort(sAct)
sort.Sort(sExp)
test.Equals(t, sExp, sAct)
})
t.Run("planned", func(t *testing.T) {
syncer := process.NewFetch(remote, local, task.FOLDER_PLANNED)
actResult, err := syncer.Process()
test.OK(t, err)
test.Equals(t, 1, actResult.Count)
actTasks, err := local.FindAll()
test.OK(t, err)
for _, a := range actTasks {
a.LocalId = 0
a.Message = nil
}
exp := task.ById([]*task.LocalTask{localTask3})
sExp := task.ById(exp)
sAct := task.ById(actTasks)
sort.Sort(sAct)
sort.Sort(sExp)
test.Equals(t, sExp, sAct)
})
2021-06-25 09:14:27 +02:00
}