github.com/susy-go/susy-graviton@v0.0.0-20190614130430-36cddae42305/swarm/api/storage_test.go (about)

     1  // Copyleft 2016 The susy-graviton Authors
     2  // This file is part of the susy-graviton library.
     3  //
     4  // The susy-graviton library is free software: you can redistribute it and/or modify
     5  // it under the terms of the GNU Lesser General Public License as published by
     6  // the Free Software Foundation, either version 3 of the License, or
     7  // (at your option) any later version.
     8  //
     9  // The susy-graviton library is distributed in the hope that it will be useful,
    10  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  // MSRCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    12  // GNU Lesser General Public License for more details.
    13  //
    14  // You should have received a copy of the GNU Lesser General Public License
    15  // along with the susy-graviton library. If not, see <http://www.gnu.org/licenses/>.
    16  
    17  package api
    18  
    19  import (
    20  	"context"
    21  	"testing"
    22  )
    23  
    24  func testStorage(t *testing.T, f func(*Storage, bool)) {
    25  	testAPI(t, func(api *API, toEncrypt bool) {
    26  		f(NewStorage(api), toEncrypt)
    27  	})
    28  }
    29  
    30  func TestStoragePutGet(t *testing.T) {
    31  	testStorage(t, func(api *Storage, toEncrypt bool) {
    32  		content := "hello"
    33  		exp := expResponse(content, "text/plain", 0)
    34  		// exp := expResponse([]byte(content), "text/plain", 0)
    35  		ctx := context.TODO()
    36  		bzzkey, wait, err := api.Put(ctx, content, exp.MimeType, toEncrypt)
    37  		if err != nil {
    38  			t.Fatalf("unexpected error: %v", err)
    39  		}
    40  		err = wait(ctx)
    41  		if err != nil {
    42  			t.Fatalf("unexpected error: %v", err)
    43  		}
    44  		bzzhash := bzzkey.Hex()
    45  		// to check put against the API#Get
    46  		resp0 := testGet(t, api.api, bzzhash, "")
    47  		checkResponse(t, resp0, exp)
    48  
    49  		// check storage#Get
    50  		resp, err := api.Get(context.TODO(), bzzhash)
    51  		if err != nil {
    52  			t.Fatalf("unexpected error: %v", err)
    53  		}
    54  		checkResponse(t, &testResponse{nil, resp}, exp)
    55  	})
    56  }