Exemplo n.º 1
0
func TestGetUsers(t *testing.T) {
	log, stats := loggerAndStats()
	auth, storage := authAndStore(log, stats)

	testCases := map[string][]string{
		"doc1": []string{
			"user1", "user2", "user3",
		},
		"doc2": []string{
			"user4", "user5", "user6",
		},
		"doc3": []string{
			"user1", "user4", "user7",
		},
	}

	for docID := range testCases {
		doc := store.Document{}
		doc.ID = docID
		doc.Content = "hello world"
		if err := storage.Create(doc); err != nil {
			t.Error(err)
		}
	}

	curator, err := New(NewConfig(), log, stats, auth, storage)
	if err != nil {
		t.Error(err)
		return
	}
	defer curator.Close()

	for docID, users := range testCases {
		for _, userID := range users {
			if _, err := curator.EditDocument(userID, "", docID, time.Second); err != nil {
				t.Error(err)
			}
		}
	}

	getUsers, err := curator.GetUsers(time.Second)
	if err != nil {
		t.Error(err)
		return
	}

	if !reflect.DeepEqual(getUsers, testCases) {
		t.Errorf("GetUsers not matched, %v != %v", getUsers, testCases)
	}
}