storj/pkg/netstate/server_test.go
Natalie Villasana 1a06c2b0c7 adding grpc interface to network state (#33)
* adds proto files for netstate crud

* moves netstate grpc client lib into pkg/netstate where grpc netstate service is defined

* starts adding grpc client and server tests

* moves creation of grpc server into cmd/netstate/main.go, removes pkg/netstate/service.go, adds more client testing

* changed all 'Path' and 'Value' fields from strings to bytes, updated tests

* changes Get and Delete in proto file to receive 'requests' instead of 'file paths', adds tests for Get, List, and Delete

* changes netstate-routes to get 'fileValue' bytes not 'fileInfo'

* adds example rpc client in 'examples' and adds more specific debug logs

* adds readmes for netstate rpc services and updates netstate-routes
2018-05-14 18:31:26 -06:00

56 lines
931 B
Go

// Copyright (C) 2018 Storj Labs, Inc.
// See LICENSE for copying information.
package netstate
import (
"bytes"
"storj.io/storj/storage/boltdb"
)
type mockDB struct {
timesCalled int
puts []boltdb.File
filePaths [][]byte
}
func (m *mockDB) Put(f boltdb.File) error {
m.timesCalled++
m.puts = append(m.puts, f)
return nil
}
func (m *mockDB) Get(path []byte) ([]byte, error) {
m.timesCalled++
for _, file := range m.puts {
if bytes.Equal(path, file.Path) {
return file.Value, nil
}
}
panic("failed to get the given file")
}
func (m *mockDB) List() ([][]byte, error) {
m.timesCalled++
for _, file := range m.puts {
m.filePaths = append(m.filePaths, file.Path)
}
return m.filePaths, nil
}
func (m *mockDB) Delete(path []byte) error {
m.timesCalled++
for i, file := range m.puts {
if bytes.Equal(path, file.Path) {
m.puts = append(m.puts[:i], m.puts[i+1:]...)
}
}
return nil
}