go.charczuk.com@v0.0.0-20240327042549-bc490516bd1a/projects/kana-server/pkg/model/manager_test.go (about) 1 /* 2 3 Copyright (c) 2023 - Present. Will Charczuk. All rights reserved. 4 Use of this source code is governed by a MIT license that can be found in the LICENSE file at the root of the repository. 5 6 */ 7 8 package model_test 9 10 import ( 11 "context" 12 "testing" 13 14 "go.charczuk.com/projects/kana-server/pkg/model" 15 "go.charczuk.com/projects/kana-server/pkg/types" 16 "go.charczuk.com/sdk/apputil" 17 "go.charczuk.com/sdk/assert" 18 ) 19 20 func Test_Model_AllQuizzes(t *testing.T) { 21 mgr, done := apputil.NewTest(t) 22 defer done() 23 24 u0 := apputil.CreateTestUser(t, mgr) 25 u1 := apputil.CreateTestUser(t, mgr) 26 27 q0 := CreateTestQuiz(t, mgr, u0) 28 q1 := CreateTestQuiz(t, mgr, u0) 29 q2 := CreateTestQuiz(t, mgr, u0) 30 q3 := CreateTestQuiz(t, mgr, u1) 31 32 all, err := model.Manager{BaseManager: mgr.BaseManager}.AllQuzzes(context.Background(), u0.ID) 33 assert.ItsNil(t, err) 34 assert.ItsLen(t, all, 3) 35 assert.ItsAny(t, all, func(v *types.Quiz) bool { return v.ID.Equal(q0.ID) }) 36 assert.ItsAny(t, all, func(v *types.Quiz) bool { return v.ID.Equal(q1.ID) }) 37 assert.ItsAny(t, all, func(v *types.Quiz) bool { return v.ID.Equal(q2.ID) }) 38 assert.ItsNone(t, all, func(v *types.Quiz) bool { return v.ID.Equal(q3.ID) }) 39 assert.ItsAll(t, all, func(v *types.Quiz) bool { return len(v.Results) > 0 }) 40 assert.ItsAll(t, all, func(v *types.Quiz) bool { 41 for _, qr := range v.Results { 42 if !qr.QuizID.Equal(v.ID) { 43 return false 44 } 45 } 46 return true 47 }) 48 }