From da66599fa39ddbff96b0844fabac161e130a2bc4 Mon Sep 17 00:00:00 2001 From: hmhealey Date: Thu, 1 Oct 2015 10:56:07 -0400 Subject: Added Preferences table to store user preferences --- store/sql_preference_store_test.go | 170 +++++++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 store/sql_preference_store_test.go (limited to 'store/sql_preference_store_test.go') diff --git a/store/sql_preference_store_test.go b/store/sql_preference_store_test.go new file mode 100644 index 000000000..d7ef26374 --- /dev/null +++ b/store/sql_preference_store_test.go @@ -0,0 +1,170 @@ +// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// See License.txt for license information. + +package store + +import ( + "github.com/mattermost/platform/model" + "testing" +) + +func TestPreferenceStoreSave(t *testing.T) { + Setup() + + p1 := model.Preference{ + UserId: model.NewId(), + Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, + Name: model.PREFERENCE_NAME_SHOWHIDE, + AltId: model.NewId(), + } + + if err := (<-store.Preference().Save(&p1)).Err; err != nil { + t.Fatal("couldn't save preference", err) + } + + if err := (<-store.Preference().Save(&p1)).Err; err == nil { + t.Fatal("shouldn't be able to save duplicate preference") + } + + p2 := model.Preference{ + UserId: model.NewId(), + Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, + Name: model.PREFERENCE_NAME_SHOWHIDE, + AltId: p1.AltId, + } + + if err := (<-store.Preference().Save(&p2)).Err; err != nil { + t.Fatal("couldn't save preference with duplicate category, name, alternate id", err) + } + + p3 := model.Preference{ + UserId: p1.UserId, + Category: model.PREFERENCE_CATEGORY_TEST, + Name: model.PREFERENCE_NAME_SHOWHIDE, + AltId: p1.AltId, + } + + if err := (<-store.Preference().Save(&p3)).Err; err != nil { + t.Fatal("couldn't save preference with duplicate user id, name, alternate id", err) + } + + p4 := model.Preference{ + UserId: p1.UserId, + Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, + Name: model.PREFERENCE_NAME_TEST, + AltId: p1.AltId, + } + + if err := (<-store.Preference().Save(&p4)).Err; err != nil { + t.Fatal("couldn't save preference with duplicate user id, category, alternate id", err) + } + + p5 := model.Preference{ + UserId: p1.UserId, + Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, + Name: model.PREFERENCE_NAME_SHOWHIDE, + AltId: model.NewId(), + } + + if err := (<-store.Preference().Save(&p5)).Err; err != nil { + t.Fatal("couldn't save preference with duplicate user id, category, name", err) + } +} + +func TestPreferenceStoreUpdate(t *testing.T) { + Setup() + + id := model.NewId() + + p1 := model.Preference{ + UserId: id, + Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, + Name: model.PREFERENCE_NAME_SHOWHIDE, + } + Must(store.Preference().Save(&p1)) + + p1.Value = "1234garbage" + if err := (<-store.Preference().Update(&p1)).Err; err != nil { + t.Fatal(err) + } + + p1.UserId = model.NewId() + if err := (<-store.Preference().Update(&p1)).Err; err == nil { + t.Fatal("update should have failed because of changed user id") + } + + p1.UserId = id + p1.Category = model.PREFERENCE_CATEGORY_TEST + if err := (<-store.Preference().Update(&p1)).Err; err == nil { + t.Fatal("update should have failed because of changed category") + } + + p1.Category = model.PREFERENCE_CATEGORY_DIRECT_CHANNELS + p1.Name = model.PREFERENCE_NAME_TEST + if err := (<-store.Preference().Update(&p1)).Err; err == nil { + t.Fatal("update should have failed because of changed name") + } + + p1.Name = model.PREFERENCE_NAME_SHOWHIDE + p1.AltId = model.NewId() + if err := (<-store.Preference().Update(&p1)).Err; err == nil { + t.Fatal("update should have failed because of changed alternate id") + } +} + +func TestPreferenceGetByName(t *testing.T) { + Setup() + + p1 := model.Preference{ + UserId: model.NewId(), + Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, + Name: model.PREFERENCE_NAME_SHOWHIDE, + AltId: model.NewId(), + } + + // same user/category/name, different alt id + p2 := model.Preference{ + UserId: p1.UserId, + Category: p1.Category, + Name: p1.Name, + AltId: model.NewId(), + } + + // same user/category/alt id, different name + p3 := model.Preference{ + UserId: p1.UserId, + Category: p1.Category, + Name: model.PREFERENCE_NAME_TEST, + AltId: p1.AltId, + } + + // same user/name/alt id, different category + p4 := model.Preference{ + UserId: p1.UserId, + Category: model.PREFERENCE_CATEGORY_TEST, + Name: p1.Name, + AltId: p1.AltId, + } + + // same name/category/alt id, different user + p5 := model.Preference{ + UserId: model.NewId(), + Category: p1.Category, + Name: p1.Name, + AltId: p1.AltId, + } + + Must(store.Preference().Save(&p1)) + Must(store.Preference().Save(&p2)) + Must(store.Preference().Save(&p3)) + Must(store.Preference().Save(&p4)) + Must(store.Preference().Save(&p5)) + + if result := <-store.Preference().GetByName(p1.UserId, p1.Category, p1.Name); result.Err != nil { + t.Fatal(result.Err) + } else if data := result.Data.([]*model.Preference); len(data) != 2 { + t.Fatal("got the wrong number of preferences") + } else if !((*data[0] == p1 && *data[1] == p2) || (*data[0] == p2 && *data[1] == p1)) { + t.Fatal("got incorrect preferences") + } +} -- cgit v1.2.3-1-g7c22 From 599644fb2fa75d1760420806c8c821959fc6b645 Mon Sep 17 00:00:00 2001 From: hmhealey Date: Mon, 5 Oct 2015 12:03:27 -0400 Subject: Renamed show_hide preference to show --- store/sql_preference_store_test.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'store/sql_preference_store_test.go') diff --git a/store/sql_preference_store_test.go b/store/sql_preference_store_test.go index d7ef26374..99b183274 100644 --- a/store/sql_preference_store_test.go +++ b/store/sql_preference_store_test.go @@ -14,7 +14,7 @@ func TestPreferenceStoreSave(t *testing.T) { p1 := model.Preference{ UserId: model.NewId(), Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, - Name: model.PREFERENCE_NAME_SHOWHIDE, + Name: model.PREFERENCE_NAME_SHOW, AltId: model.NewId(), } @@ -29,7 +29,7 @@ func TestPreferenceStoreSave(t *testing.T) { p2 := model.Preference{ UserId: model.NewId(), Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, - Name: model.PREFERENCE_NAME_SHOWHIDE, + Name: model.PREFERENCE_NAME_SHOW, AltId: p1.AltId, } @@ -40,7 +40,7 @@ func TestPreferenceStoreSave(t *testing.T) { p3 := model.Preference{ UserId: p1.UserId, Category: model.PREFERENCE_CATEGORY_TEST, - Name: model.PREFERENCE_NAME_SHOWHIDE, + Name: model.PREFERENCE_NAME_SHOW, AltId: p1.AltId, } @@ -62,7 +62,7 @@ func TestPreferenceStoreSave(t *testing.T) { p5 := model.Preference{ UserId: p1.UserId, Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, - Name: model.PREFERENCE_NAME_SHOWHIDE, + Name: model.PREFERENCE_NAME_SHOW, AltId: model.NewId(), } @@ -79,7 +79,7 @@ func TestPreferenceStoreUpdate(t *testing.T) { p1 := model.Preference{ UserId: id, Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, - Name: model.PREFERENCE_NAME_SHOWHIDE, + Name: model.PREFERENCE_NAME_SHOW, } Must(store.Preference().Save(&p1)) @@ -105,7 +105,7 @@ func TestPreferenceStoreUpdate(t *testing.T) { t.Fatal("update should have failed because of changed name") } - p1.Name = model.PREFERENCE_NAME_SHOWHIDE + p1.Name = model.PREFERENCE_NAME_SHOW p1.AltId = model.NewId() if err := (<-store.Preference().Update(&p1)).Err; err == nil { t.Fatal("update should have failed because of changed alternate id") @@ -118,7 +118,7 @@ func TestPreferenceGetByName(t *testing.T) { p1 := model.Preference{ UserId: model.NewId(), Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, - Name: model.PREFERENCE_NAME_SHOWHIDE, + Name: model.PREFERENCE_NAME_SHOW, AltId: model.NewId(), } -- cgit v1.2.3-1-g7c22 From a6cd2a79612d6d96e0e929ab769ec5e70cd35f5f Mon Sep 17 00:00:00 2001 From: hmhealey Date: Wed, 7 Oct 2015 10:19:02 -0400 Subject: Moved saving multiple user preferences into a database transaction --- store/sql_preference_store_test.go | 59 +++++++++++++++++++++++++++++++------- 1 file changed, 49 insertions(+), 10 deletions(-) (limited to 'store/sql_preference_store_test.go') diff --git a/store/sql_preference_store_test.go b/store/sql_preference_store_test.go index 99b183274..0574ee954 100644 --- a/store/sql_preference_store_test.go +++ b/store/sql_preference_store_test.go @@ -84,31 +84,70 @@ func TestPreferenceStoreUpdate(t *testing.T) { Must(store.Preference().Save(&p1)) p1.Value = "1234garbage" - if err := (<-store.Preference().Update(&p1)).Err; err != nil { - t.Fatal(err) + if result := (<-store.Preference().Update(&p1)); result.Err != nil { + t.Fatal(result.Err) + } else if result.Data.(int64) != 1 { + t.Fatal("update should have changed only 1 row") } p1.UserId = model.NewId() - if err := (<-store.Preference().Update(&p1)).Err; err == nil { - t.Fatal("update should have failed because of changed user id") + if result := (<-store.Preference().Update(&p1)); result.Err != nil { + t.Fatal(result.Err) + } else if result.Data.(int64) != 0 { + t.Fatal("update shouldn't have made changes because of changed user id") } p1.UserId = id p1.Category = model.PREFERENCE_CATEGORY_TEST - if err := (<-store.Preference().Update(&p1)).Err; err == nil { - t.Fatal("update should have failed because of changed category") + if result := (<-store.Preference().Update(&p1)); result.Err != nil { + t.Fatal(result.Err) + } else if result.Data.(int64) != 0 { + t.Fatal("update shouldn't have made changes because of changed category") } p1.Category = model.PREFERENCE_CATEGORY_DIRECT_CHANNELS p1.Name = model.PREFERENCE_NAME_TEST - if err := (<-store.Preference().Update(&p1)).Err; err == nil { - t.Fatal("update should have failed because of changed name") + if result := (<-store.Preference().Update(&p1)); result.Err != nil { + t.Fatal(result.Err) + } else if result.Data.(int64) != 0 { + t.Fatal("update shouldn't have made changes because of changed name") } p1.Name = model.PREFERENCE_NAME_SHOW p1.AltId = model.NewId() - if err := (<-store.Preference().Update(&p1)).Err; err == nil { - t.Fatal("update should have failed because of changed alternate id") + if result := (<-store.Preference().Update(&p1)); result.Err != nil { + t.Fatal(result.Err) + } else if result.Data.(int64) != 0 { + t.Fatal("update shouldn't have made changes because of changed alt id") + } +} + +func TestPreferenceSaveOrUpdate(t *testing.T) { + Setup() + + id := model.NewId() + + p1 := model.Preference{ + UserId: id, + Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, + Name: model.PREFERENCE_NAME_SHOW, + Value: "value1", + } + Must(store.Preference().SaveOrUpdate(&p1)) + + if preferences := Must(store.Preference().GetByName(p1.UserId, p1.Category, p1.Name)).([]*model.Preference); len(preferences) != 1 { + t.Fatal("got incorrect number of preferences after SaveOrUpdate") + } else if preferences[0].Value != "value1" { + t.Fatal("should have received value1 after SaveOrUpdate") + } + + p1.Value = "value2" + Must(store.Preference().SaveOrUpdate(&p1)) + + if preferences := Must(store.Preference().GetByName(p1.UserId, p1.Category, p1.Name)).([]*model.Preference); len(preferences) != 1 { + t.Fatal("got incorrect number of preferences after second SaveOrUpdate") + } else if preferences[0].Value != "value2" { + t.Fatal("should have received value2 after SaveOrUpdate") } } -- cgit v1.2.3-1-g7c22 From 5cecf1afcd1d8e561a5b2d840e5bd1b588a74a27 Mon Sep 17 00:00:00 2001 From: hmhealey Date: Fri, 9 Oct 2015 13:47:11 -0400 Subject: Made structural changes to server-side Preference code based on feedback --- store/sql_preference_store_test.go | 270 ++++++++++++------------------------- 1 file changed, 86 insertions(+), 184 deletions(-) (limited to 'store/sql_preference_store_test.go') diff --git a/store/sql_preference_store_test.go b/store/sql_preference_store_test.go index 0574ee954..6d5ec0ecd 100644 --- a/store/sql_preference_store_test.go +++ b/store/sql_preference_store_test.go @@ -8,202 +8,104 @@ import ( "testing" ) -func TestPreferenceStoreSave(t *testing.T) { - Setup() - - p1 := model.Preference{ - UserId: model.NewId(), - Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, - Name: model.PREFERENCE_NAME_SHOW, - AltId: model.NewId(), - } - - if err := (<-store.Preference().Save(&p1)).Err; err != nil { - t.Fatal("couldn't save preference", err) - } - - if err := (<-store.Preference().Save(&p1)).Err; err == nil { - t.Fatal("shouldn't be able to save duplicate preference") - } - - p2 := model.Preference{ - UserId: model.NewId(), - Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, - Name: model.PREFERENCE_NAME_SHOW, - AltId: p1.AltId, - } - - if err := (<-store.Preference().Save(&p2)).Err; err != nil { - t.Fatal("couldn't save preference with duplicate category, name, alternate id", err) - } - - p3 := model.Preference{ - UserId: p1.UserId, - Category: model.PREFERENCE_CATEGORY_TEST, - Name: model.PREFERENCE_NAME_SHOW, - AltId: p1.AltId, - } - - if err := (<-store.Preference().Save(&p3)).Err; err != nil { - t.Fatal("couldn't save preference with duplicate user id, name, alternate id", err) - } - - p4 := model.Preference{ - UserId: p1.UserId, - Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, - Name: model.PREFERENCE_NAME_TEST, - AltId: p1.AltId, - } - - if err := (<-store.Preference().Save(&p4)).Err; err != nil { - t.Fatal("couldn't save preference with duplicate user id, category, alternate id", err) - } - - p5 := model.Preference{ - UserId: p1.UserId, - Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, - Name: model.PREFERENCE_NAME_SHOW, - AltId: model.NewId(), - } - - if err := (<-store.Preference().Save(&p5)).Err; err != nil { - t.Fatal("couldn't save preference with duplicate user id, category, name", err) - } -} - -func TestPreferenceStoreUpdate(t *testing.T) { +func TestPreferenceSave(t *testing.T) { Setup() id := model.NewId() - p1 := model.Preference{ - UserId: id, - Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, - Name: model.PREFERENCE_NAME_SHOW, - } - Must(store.Preference().Save(&p1)) - - p1.Value = "1234garbage" - if result := (<-store.Preference().Update(&p1)); result.Err != nil { - t.Fatal(result.Err) - } else if result.Data.(int64) != 1 { - t.Fatal("update should have changed only 1 row") - } - - p1.UserId = model.NewId() - if result := (<-store.Preference().Update(&p1)); result.Err != nil { - t.Fatal(result.Err) - } else if result.Data.(int64) != 0 { - t.Fatal("update shouldn't have made changes because of changed user id") - } - - p1.UserId = id - p1.Category = model.PREFERENCE_CATEGORY_TEST - if result := (<-store.Preference().Update(&p1)); result.Err != nil { - t.Fatal(result.Err) - } else if result.Data.(int64) != 0 { - t.Fatal("update shouldn't have made changes because of changed category") - } - - p1.Category = model.PREFERENCE_CATEGORY_DIRECT_CHANNELS - p1.Name = model.PREFERENCE_NAME_TEST - if result := (<-store.Preference().Update(&p1)); result.Err != nil { - t.Fatal(result.Err) - } else if result.Data.(int64) != 0 { - t.Fatal("update shouldn't have made changes because of changed name") - } - - p1.Name = model.PREFERENCE_NAME_SHOW - p1.AltId = model.NewId() - if result := (<-store.Preference().Update(&p1)); result.Err != nil { - t.Fatal(result.Err) - } else if result.Data.(int64) != 0 { - t.Fatal("update shouldn't have made changes because of changed alt id") - } -} - -func TestPreferenceSaveOrUpdate(t *testing.T) { - Setup() - - id := model.NewId() - - p1 := model.Preference{ - UserId: id, - Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, - Name: model.PREFERENCE_NAME_SHOW, - Value: "value1", - } - Must(store.Preference().SaveOrUpdate(&p1)) - - if preferences := Must(store.Preference().GetByName(p1.UserId, p1.Category, p1.Name)).([]*model.Preference); len(preferences) != 1 { - t.Fatal("got incorrect number of preferences after SaveOrUpdate") - } else if preferences[0].Value != "value1" { - t.Fatal("should have received value1 after SaveOrUpdate") - } - - p1.Value = "value2" - Must(store.Preference().SaveOrUpdate(&p1)) - - if preferences := Must(store.Preference().GetByName(p1.UserId, p1.Category, p1.Name)).([]*model.Preference); len(preferences) != 1 { - t.Fatal("got incorrect number of preferences after second SaveOrUpdate") - } else if preferences[0].Value != "value2" { - t.Fatal("should have received value2 after SaveOrUpdate") + preferences := model.Preferences{ + { + UserId: id, + Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, + Name: model.PREFERENCE_NAME_SHOW, + Value: "value1a", + }, + { + UserId: id, + Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, + Name: model.PREFERENCE_NAME_TEST, + Value: "value1b", + }, + } + if count := Must(store.Preference().Save(&preferences)); count != 2 { + t.Fatal("got incorrect number of rows saved") + } + + for _, preference := range preferences { + if data := Must(store.Preference().GetByName(preference.UserId, preference.Category, preference.Name)).(model.Preferences); len(data) != 1 { + t.Fatal("got incorrect number of preferences after first Save") + } else if *preference != *data[0] { + t.Fatal("got incorrect preference after first Save") + } + } + + preferences[0].Value = "value2a" + preferences[1].Value = "value2b" + if count := Must(store.Preference().Save(&preferences)); count != 2 { + t.Fatal("got incorrect number of rows saved") + } + + for _, preference := range preferences { + if data := Must(store.Preference().GetByName(preference.UserId, preference.Category, preference.Name)).(model.Preferences); len(data) != 1 { + t.Fatal("got incorrect number of preferences after second Save") + } else if *preference != *data[0] { + t.Fatal("got incorrect preference after second Save") + } } } func TestPreferenceGetByName(t *testing.T) { Setup() - p1 := model.Preference{ - UserId: model.NewId(), - Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, - Name: model.PREFERENCE_NAME_SHOW, - AltId: model.NewId(), - } - - // same user/category/name, different alt id - p2 := model.Preference{ - UserId: p1.UserId, - Category: p1.Category, - Name: p1.Name, - AltId: model.NewId(), - } - - // same user/category/alt id, different name - p3 := model.Preference{ - UserId: p1.UserId, - Category: p1.Category, - Name: model.PREFERENCE_NAME_TEST, - AltId: p1.AltId, - } - - // same user/name/alt id, different category - p4 := model.Preference{ - UserId: p1.UserId, - Category: model.PREFERENCE_CATEGORY_TEST, - Name: p1.Name, - AltId: p1.AltId, - } - - // same name/category/alt id, different user - p5 := model.Preference{ - UserId: model.NewId(), - Category: p1.Category, - Name: p1.Name, - AltId: p1.AltId, - } - - Must(store.Preference().Save(&p1)) - Must(store.Preference().Save(&p2)) - Must(store.Preference().Save(&p3)) - Must(store.Preference().Save(&p4)) - Must(store.Preference().Save(&p5)) - - if result := <-store.Preference().GetByName(p1.UserId, p1.Category, p1.Name); result.Err != nil { + userId := model.NewId() + category := model.PREFERENCE_CATEGORY_DIRECT_CHANNELS + name := model.PREFERENCE_NAME_SHOW + altId := model.NewId() + + preferences := model.Preferences{ + { + UserId: userId, + Category: category, + Name: name, + AltId: altId, + }, + // same user/category/name, different alt id + { + UserId: userId, + Category: category, + Name: name, + AltId: model.NewId(), + }, + // same user/category/alt id, different name + { + UserId: userId, + Category: category, + Name: model.PREFERENCE_NAME_TEST, + AltId: altId, + }, + // same user/name/alt id, different category + { + UserId: userId, + Category: model.PREFERENCE_CATEGORY_TEST, + Name: name, + AltId: altId, + }, + // same name/category/alt id, different user + { + UserId: model.NewId(), + Category: category, + Name: name, + AltId: altId, + }, + } + + Must(store.Preference().Save(&preferences)) + + if result := <-store.Preference().GetByName(userId, category, name); result.Err != nil { t.Fatal(result.Err) - } else if data := result.Data.([]*model.Preference); len(data) != 2 { + } else if data := result.Data.(model.Preferences); len(data) != 2 { t.Fatal("got the wrong number of preferences") - } else if !((*data[0] == p1 && *data[1] == p2) || (*data[0] == p2 && *data[1] == p1)) { + } else if !((*data[0] == *preferences[0] && *data[1] == *preferences[1]) || (*data[0] == *preferences[1] && *data[1] == *preferences[0])) { t.Fatal("got incorrect preferences") } } -- cgit v1.2.3-1-g7c22 From 2a39e8dbfab8506b09d0d030f87cac4c079b975a Mon Sep 17 00:00:00 2001 From: hmhealey Date: Tue, 13 Oct 2015 11:52:17 -0400 Subject: Removed Preference.AltId --- store/sql_preference_store_test.go | 75 +++++++++++++++++++++++++------------- 1 file changed, 49 insertions(+), 26 deletions(-) (limited to 'store/sql_preference_store_test.go') diff --git a/store/sql_preference_store_test.go b/store/sql_preference_store_test.go index 6d5ec0ecd..1feda01d9 100644 --- a/store/sql_preference_store_test.go +++ b/store/sql_preference_store_test.go @@ -16,14 +16,14 @@ func TestPreferenceSave(t *testing.T) { preferences := model.Preferences{ { UserId: id, - Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, - Name: model.PREFERENCE_NAME_SHOW, + Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW, + Name: model.NewId(), Value: "value1a", }, { UserId: id, - Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNELS, - Name: model.PREFERENCE_NAME_TEST, + Category: model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW, + Name: model.NewId(), Value: "value1b", }, } @@ -32,9 +32,7 @@ func TestPreferenceSave(t *testing.T) { } for _, preference := range preferences { - if data := Must(store.Preference().GetByName(preference.UserId, preference.Category, preference.Name)).(model.Preferences); len(data) != 1 { - t.Fatal("got incorrect number of preferences after first Save") - } else if *preference != *data[0] { + if data := Must(store.Preference().Get(preference.UserId, preference.Category, preference.Name)).(model.Preference); preference != data { t.Fatal("got incorrect preference after first Save") } } @@ -46,66 +44,91 @@ func TestPreferenceSave(t *testing.T) { } for _, preference := range preferences { - if data := Must(store.Preference().GetByName(preference.UserId, preference.Category, preference.Name)).(model.Preferences); len(data) != 1 { - t.Fatal("got incorrect number of preferences after second Save") - } else if *preference != *data[0] { + if data := Must(store.Preference().Get(preference.UserId, preference.Category, preference.Name)).(model.Preference); preference != data { t.Fatal("got incorrect preference after second Save") } } } -func TestPreferenceGetByName(t *testing.T) { +func TestPreferenceGet(t *testing.T) { Setup() userId := model.NewId() - category := model.PREFERENCE_CATEGORY_DIRECT_CHANNELS - name := model.PREFERENCE_NAME_SHOW - altId := model.NewId() + category := model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW + name := model.PREFERENCE_NAME_TEST preferences := model.Preferences{ { UserId: userId, Category: category, Name: name, - AltId: altId, }, - // same user/category/name, different alt id + { + UserId: userId, + Category: category, + Name: model.NewId(), + }, + { + UserId: userId, + Category: model.PREFERENCE_CATEGORY_TEST, + Name: name, + }, + { + UserId: model.NewId(), + Category: category, + Name: name, + }, + } + + Must(store.Preference().Save(&preferences)) + + if result := <-store.Preference().Get(userId, category, name); result.Err != nil { + t.Fatal(result.Err) + } else if data := result.Data.(model.Preference); data != preferences[0] { + t.Fatal("got incorrect preference") + } +} + +func TestPreferenceGetCategory(t *testing.T) { + Setup() + + userId := model.NewId() + category := model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW + name := model.NewId() + + preferences := model.Preferences{ { UserId: userId, Category: category, Name: name, - AltId: model.NewId(), }, - // same user/category/alt id, different name + // same user/category, different name { UserId: userId, Category: category, - Name: model.PREFERENCE_NAME_TEST, - AltId: altId, + Name: model.NewId(), }, - // same user/name/alt id, different category + // same user/name, different category { UserId: userId, Category: model.PREFERENCE_CATEGORY_TEST, Name: name, - AltId: altId, }, - // same name/category/alt id, different user + // same name/category, different user { UserId: model.NewId(), Category: category, Name: name, - AltId: altId, }, } Must(store.Preference().Save(&preferences)) - if result := <-store.Preference().GetByName(userId, category, name); result.Err != nil { + if result := <-store.Preference().GetCategory(userId, category); result.Err != nil { t.Fatal(result.Err) } else if data := result.Data.(model.Preferences); len(data) != 2 { t.Fatal("got the wrong number of preferences") - } else if !((*data[0] == *preferences[0] && *data[1] == *preferences[1]) || (*data[0] == *preferences[1] && *data[1] == *preferences[0])) { + } else if !((data[0] == preferences[0] && data[1] == preferences[1]) || (data[0] == preferences[1] && data[1] == preferences[0])) { t.Fatal("got incorrect preferences") } } -- cgit v1.2.3-1-g7c22 From 97b2f6ffe7fa09a2188163740865322582b00b59 Mon Sep 17 00:00:00 2001 From: hmhealey Date: Tue, 13 Oct 2015 15:18:01 -0400 Subject: Made further changes based on feedback --- store/sql_preference_store_test.go | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'store/sql_preference_store_test.go') diff --git a/store/sql_preference_store_test.go b/store/sql_preference_store_test.go index 1feda01d9..76b1bcb17 100644 --- a/store/sql_preference_store_test.go +++ b/store/sql_preference_store_test.go @@ -55,7 +55,7 @@ func TestPreferenceGet(t *testing.T) { userId := model.NewId() category := model.PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW - name := model.PREFERENCE_NAME_TEST + name := model.NewId() preferences := model.Preferences{ { @@ -70,7 +70,7 @@ func TestPreferenceGet(t *testing.T) { }, { UserId: userId, - Category: model.PREFERENCE_CATEGORY_TEST, + Category: model.NewId(), Name: name, }, { @@ -87,6 +87,11 @@ func TestPreferenceGet(t *testing.T) { } else if data := result.Data.(model.Preference); data != preferences[0] { t.Fatal("got incorrect preference") } + + // make sure getting a missing preference fails + if result := <-store.Preference().Get(model.NewId(), model.NewId(), model.NewId()); result.Err == nil { + t.Fatal("no error on getting a missing preference") + } } func TestPreferenceGetCategory(t *testing.T) { @@ -111,7 +116,7 @@ func TestPreferenceGetCategory(t *testing.T) { // same user/name, different category { UserId: userId, - Category: model.PREFERENCE_CATEGORY_TEST, + Category: model.NewId(), Name: name, }, // same name/category, different user @@ -131,4 +136,11 @@ func TestPreferenceGetCategory(t *testing.T) { } else if !((data[0] == preferences[0] && data[1] == preferences[1]) || (data[0] == preferences[1] && data[1] == preferences[0])) { t.Fatal("got incorrect preferences") } + + // make sure getting a missing preference category doesn't fail + if result := <-store.Preference().GetCategory(model.NewId(), model.NewId()); result.Err != nil { + t.Fatal(result.Err) + } else if data := result.Data.(model.Preferences); len(data) != 0 { + t.Fatal("shouldn't have got any preferences") + } } -- cgit v1.2.3-1-g7c22