collection_test.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package file
  2. import (
  3. "os"
  4. "git.andreafazzi.eu/andrea/probo/models"
  5. "git.andreafazzi.eu/andrea/probo/store"
  6. "github.com/remogatto/prettytest"
  7. )
  8. type collectionTestSuite struct {
  9. prettytest.Suite
  10. }
  11. func (t *collectionTestSuite) TestCreateCollection() {
  12. quizStore := store.NewQuizStore()
  13. quizStore.Create(
  14. &models.Quiz{
  15. Question: &models.Question{Text: "Question text #tag1 #tag3."},
  16. Answers: []*models.Answer{
  17. {Text: "Answer 1"},
  18. {Text: "Answer 2"},
  19. {Text: "Answer 3"},
  20. {Text: "Answer 4"},
  21. },
  22. })
  23. quizStore.Create(
  24. &models.Quiz{
  25. Question: &models.Question{Text: "Question text #tag2."},
  26. Answers: []*models.Answer{
  27. {Text: "Answer 1"},
  28. {Text: "Answer 2"},
  29. {Text: "Answer 3"},
  30. {Text: "Answer 4"},
  31. },
  32. })
  33. quizStore.Create(
  34. &models.Quiz{
  35. Question: &models.Question{Text: "Question text #tag3."},
  36. Answers: []*models.Answer{
  37. {Text: "Answer 1"},
  38. {Text: "Answer 2"},
  39. {Text: "Answer 3"},
  40. {Text: "Answer 4"},
  41. },
  42. })
  43. store, err := NewDefaultCollectionFileStore()
  44. t.Nil(err)
  45. c := new(models.Collection)
  46. c.Name = "MyCollection"
  47. quizStore.FilterInCollection(c, &models.Filter{
  48. Tags: []*models.Tag{
  49. {Name: "#tag3"},
  50. },
  51. })
  52. _, err = store.Create(c)
  53. exists, err := os.Stat(store.GetPath(c))
  54. t.Nil(err)
  55. t.Not(t.Nil(exists))
  56. t.Equal(2, len(c.Quizzes))
  57. defer os.Remove(store.GetPath(c))
  58. }