github.com/braveheart12/insolar-09-08-19@v0.8.7/functest/dump_test.go (about)

     1  // +build functest
     2  
     3  /*
     4   *    Copyright 2019 Insolar Technologies
     5   *
     6   *    Licensed under the Apache License, Version 2.0 (the "License");
     7   *    you may not use this file except in compliance with the License.
     8   *    You may obtain a copy of the License at
     9   *
    10   *        http://www.apache.org/licenses/LICENSE-2.0
    11   *
    12   *    Unless required by applicable law or agreed to in writing, software
    13   *    distributed under the License is distributed on an "AS IS" BASIS,
    14   *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    15   *    See the License for the specific language governing permissions and
    16   *    limitations under the License.
    17   */
    18  
    19  package functest
    20  
    21  import (
    22  	"encoding/base64"
    23  	"encoding/json"
    24  	"testing"
    25  
    26  	"github.com/insolar/insolar/testutils"
    27  	"github.com/stretchr/testify/require"
    28  )
    29  
    30  func TestDumpAllUsers(t *testing.T) {
    31  	_ = createMember(t, "Member")
    32  
    33  	result, err := signedRequest(&root, "DumpAllUsers")
    34  	require.NoError(t, err)
    35  	require.NotNil(t, result)
    36  }
    37  
    38  func TestDumpUser(t *testing.T) {
    39  	member := createMember(t, "Member")
    40  
    41  	resp, err := signedRequest(&root, "DumpUserInfo", member.ref)
    42  	require.NoError(t, err)
    43  
    44  	data, err := base64.StdEncoding.DecodeString(resp.(string))
    45  	require.NoError(t, err)
    46  
    47  	result := struct {
    48  		Member string
    49  		Wallet int
    50  	}{}
    51  	err = json.Unmarshal(data, &result)
    52  	require.NoError(t, err)
    53  	require.Equal(t, "Member", result.Member)
    54  	require.Equal(t, 1000*1000*1000, result.Wallet)
    55  }
    56  
    57  func TestDumpUserWrongRef(t *testing.T) {
    58  	_, err := signedRequest(&root, "DumpUserInfo", testutils.RandomRef().String())
    59  	require.Contains(t, err.Error(), "[ DumpUserInfo ] Problem with making request: [ getUserInfoMap ] Can't get implementation")
    60  }
    61  
    62  func TestDumpAllUsersNoRoot(t *testing.T) {
    63  	member := createMember(t, "Member")
    64  
    65  	_, err := signedRequest(member, "DumpAllUsers")
    66  	require.Contains(t, err.Error(), "[ DumpAllUsers ] Only root can call this method")
    67  }
    68  
    69  // todo fix this deadlock
    70  func _TestDumpUserYourself(t *testing.T) {
    71  	member := createMember(t, "Member")
    72  
    73  	_, err := signedRequest(member, "DumpUserInfo", member.ref)
    74  	require.NoError(t, err)
    75  }
    76  
    77  func TestDumpUserOther(t *testing.T) {
    78  	member1 := createMember(t, "Member1")
    79  	member2 := createMember(t, "Member2")
    80  
    81  	_, err := signedRequest(member1, "DumpUserInfo", member2.ref)
    82  	require.Contains(t, err.Error(), "[ DumpUserInfo ] You can dump only yourself")
    83  }