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  }