github.com/bitcubate/cryptojournal@v1.2.5-0.20171102134152-f578b3d788ab/src/lib/templates/fragmenta_resources/fragmenta_resource_test.go.tmpl (about) 1 // Tests for the [[ .fragmenta_resources ]] package 2 package [[ .fragmenta_resources ]] 3 4 import ( 5 "testing" 6 7 "github.com/bitcubate/cryptojournal/src/lib/resource" 8 ) 9 10 var testName = "foo" 11 12 func TestSetup(t *testing.T) { 13 err := resource.SetupTestDatabase(2) 14 if err != nil { 15 t.Fatalf("[[ .fragmenta_resources ]]: Setup db failed %s", err) 16 } 17 } 18 19 // Test Create method 20 func TestCreate[[ .Fragmenta_Resources ]](t *testing.T) { 21 [[ .fragmenta_resource ]]Params := map[string]string{ 22 "name": testName, 23 "status": "100", 24 } 25 26 id, err := New().Create([[ .fragmenta_resource ]]Params) 27 if err != nil { 28 t.Fatalf("[[ .fragmenta_resources ]]: Create [[ .fragmenta_resource ]] failed :%s", err) 29 } 30 31 [[ .fragmenta_resource ]], err := Find(id) 32 if err != nil { 33 t.Fatalf("[[ .fragmenta_resources ]]: Create [[ .fragmenta_resource ]] find failed") 34 } 35 36 if [[ .fragmenta_resource ]].Name != testName { 37 t.Fatalf("[[ .fragmenta_resources ]]: Create [[ .fragmenta_resource ]] name failed expected:%s got:%s", testName, [[ .fragmenta_resource ]].Name) 38 } 39 40 } 41 42 // Test Index (List) method 43 func TestList[[ .Fragmenta_Resources ]](t *testing.T) { 44 45 // Get all [[ .fragmenta_resources ]] (we should have at least one) 46 results, err := FindAll(Query()) 47 if err != nil { 48 t.Fatalf("[[ .fragmenta_resources ]]: List no [[ .fragmenta_resource ]] found :%s", err) 49 } 50 51 if len(results) < 1 { 52 t.Fatalf("[[ .fragmenta_resources ]]: List no [[ .fragmenta_resources ]] found :%s", err) 53 } 54 55 } 56 57 // Test Update method 58 func TestUpdate[[ .Fragmenta_Resources ]](t *testing.T) { 59 60 // Get the last [[ .fragmenta_resource ]] (created in TestCreate[[ .Fragmenta_Resources ]] above) 61 [[ .fragmenta_resource ]], err := FindFirst("name=?", testName) 62 if err != nil { 63 t.Fatalf("[[ .fragmenta_resources ]]: Update no [[ .fragmenta_resource ]] found :%s", err) 64 } 65 66 name := "bar" 67 [[ .fragmenta_resource ]]Params := map[string]string{"name": name} 68 err = [[ .fragmenta_resource ]].Update([[ .fragmenta_resource ]]Params) 69 if err != nil { 70 t.Fatalf("[[ .fragmenta_resources ]]: Update [[ .fragmenta_resource ]] failed :%s", err) 71 } 72 73 // Fetch the [[ .fragmenta_resource ]] again from db 74 [[ .fragmenta_resource ]], err = Find([[ .fragmenta_resource ]].ID) 75 if err != nil { 76 t.Fatalf("[[ .fragmenta_resources ]]: Update [[ .fragmenta_resource ]] fetch failed :%s", [[ .fragmenta_resource ]].Name) 77 } 78 79 if [[ .fragmenta_resource ]].Name != name { 80 t.Fatalf("[[ .fragmenta_resources ]]: Update [[ .fragmenta_resource ]] failed :%s", [[ .fragmenta_resource ]].Name) 81 } 82 83 } 84 85 // TestQuery tests trying to find published resources 86 func TestQuery(t *testing.T) { 87 88 results, err := FindAll(Published()) 89 if err != nil { 90 t.Fatalf("[[ .fragmenta_resources ]]: error getting [[ .fragmenta_resources ]] :%s", err) 91 } 92 if len(results) == 0 { 93 t.Fatalf("[[ .fragmenta_resources ]]: published [[ .fragmenta_resources ]] not found :%s", err) 94 } 95 96 results, err = FindAll(Query().Where("id>=? AND id <=?", 0, 100)) 97 if err != nil || len(results) == 0 { 98 t.Fatalf("[[ .fragmenta_resources ]]: no [[ .fragmenta_resource ]] found :%s", err) 99 } 100 if len(results) > 1 { 101 t.Fatalf("[[ .fragmenta_resources ]]: more than one [[ .fragmenta_resource ]] found for where :%s", err) 102 } 103 104 } 105 106 // Test Destroy method 107 func TestDestroy[[ .Fragmenta_Resources ]](t *testing.T) { 108 109 results, err := FindAll(Query()) 110 if err != nil || len(results) == 0 { 111 t.Fatalf("[[ .fragmenta_resources ]]: Destroy no [[ .fragmenta_resource ]] found :%s", err) 112 } 113 [[ .fragmenta_resource ]] := results[0] 114 count := len(results) 115 116 err = [[ .fragmenta_resource ]].Destroy() 117 if err != nil { 118 t.Fatalf("[[ .fragmenta_resources ]]: Destroy [[ .fragmenta_resource ]] failed :%s", err) 119 } 120 121 // Check new length of [[ .fragmenta_resources ]] returned 122 results, err = FindAll(Query()) 123 if err != nil { 124 t.Fatalf("[[ .fragmenta_resources ]]: Destroy error getting results :%s", err) 125 } 126 127 // length should be one less than previous 128 if len(results) != count-1 { 129 t.Fatalf("[[ .fragmenta_resources ]]: Destroy [[ .fragmenta_resource ]] count wrong :%d", len(results)) 130 } 131 132 } 133 134 135 // TestAllowedParams should always return some params 136 func TestAllowedParams(t *testing.T) { 137 if len(AllowedParams()) == 0 { 138 t.Fatalf("[[ .fragmenta_resources ]]: no allowed params") 139 } 140 }