seekia/internal/myDatastores/myList/myList_test.go

83 lines
1.8 KiB
Go

package myList_test
import "seekia/internal/myDatastores/myList"
import "seekia/internal/appUsers"
import "seekia/internal/helpers"
import "seekia/internal/localFilesystem"
import "testing"
import "slices"
//TODO: Add concurrency tests
func TestMyList(t *testing.T){
err := localFilesystem.InitializeAppDatastores()
if (err != nil){
t.Fatalf("Failed to initialize app datastores: " + err.Error())
}
err = appUsers.InitializeAppUserForTests()
if (err != nil){
t.Fatalf("Failed to initalize app user for tests: " + err.Error())
}
newList := make([]string, 0, 100)
for i:=1; i < 100; i++{
newItem := helpers.ConvertIntToString(i)
newList = append(newList, newItem)
}
newListObject, err := myList.CreateNewList("TestList")
if (err != nil){
t.Fatalf("Failed to create new myList object: " + err.Error())
}
for _, item := range newList{
err := newListObject.AddListItem(item)
if (err != nil){
t.Fatalf("Failed to add list item: " + err.Error())
}
}
retrievedList, err := newListObject.GetList()
if (err != nil){
t.Fatalf("Failed to get list: " + err.Error())
}
areIdentical := slices.Equal(newList, retrievedList)
if (areIdentical == false){
t.Fatalf("Stored list does not match retrieved list.")
}
err = newListObject.DeleteListItem("1")
if (err != nil){
t.Fatalf("Failed to delete list item: " + err.Error())
}
retrievedList, err = newListObject.GetList()
if (err != nil){
t.Fatalf("Failed to get list: " + err.Error())
}
for index, element := range retrievedList{
expectedValue := newList[index+1]
if (element != expectedValue){
t.Fatalf("Retrieved list does not match after deleting item.")
}
}
err = newListObject.DeleteList()
if (err != nil){
t.Fatalf("Failed to delete list: " + err.Error())
}
}