/
artist_test.go
72 lines (67 loc) · 1.58 KB
/
artist_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// Copyright (c) 2013 Jason McVetta. This is Free Software, released under the
// terms of the AGPL v3. See www.gnu.org/licenses/agpl-3.0.html for details.
// Resist intellectual serfdom - the ownership of ideas is akin to slavery.
package lgtts
import (
"github.com/bmizerany/assert"
"github.com/jmcvetta/restclient"
"net/http/httptest"
"testing"
)
var ggEmail = "jason.mcvetta+test-gg.allin@gmail.com"
var ggAllin = ArtistRequest{
Name: "GG Allin",
Email: ggEmail,
Hometown: "NYC",
Zip: "11011",
Description: "Pretty fuckin' cool",
}
func newArtist(hserv *httptest.Server) (*Artist, error) {
url := hserv.URL + "/api/v1/artists"
a := Artist{}
rr := restclient.RequestResponse{
Url: url,
Method: "POST",
Data: &ggAllin,
Result: &a,
ExpectedStatus: 200,
}
_, err := restclient.Do(&rr)
return &a, err
}
func TestNewArtist(t *testing.T) {
hserv := setupTest(t)
defer hserv.Close()
//
// Create a new artist
//
_, err := newArtist(hserv)
if err != nil {
t.Fatal(err)
}
//
// Confirm DB record
//
query := "SELECT COUNT(*) FROM artist WHERE email=$1"
cnt, err := dbmap.SelectInt(query, ggEmail)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, int64(1), cnt, "One and only one artist with this email.")
//
// Create with invalid request
//
rr := restclient.RequestResponse{
Url: hserv.URL + "/api/v1/artists",
Method: "POST",
Data: "foobar",
ExpectedStatus: 400,
}
_, err = restclient.Do(&rr)
if err != nil {
t.Fatal(err)
}
//
// Try to use duplicate email
//
}