storer_test.go 1.29 KB
Newer Older
acud's avatar
acud committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
package mock_test

import (
	"bytes"
	"context"
	"testing"

	"github.com/ethersphere/bee/pkg/storage"
	"github.com/ethersphere/bee/pkg/storage/mock"
	"github.com/ethersphere/bee/pkg/swarm"
)

func TestMockStorer(t *testing.T) {
	s := mock.NewStorer()

	keyFound, err := swarm.ParseHexAddress("aabbcc")
	if err != nil {
		t.Fatal(err)
	}
	keyNotFound, err := swarm.ParseHexAddress("bbccdd")
	if err != nil {
		t.Fatal(err)
	}

	valueFound := []byte("data data data")

	ctx := context.Background()
28
	if _, err := s.Get(ctx, storage.ModeGetRequest, keyFound); err != storage.ErrNotFound {
acud's avatar
acud committed
29 30 31
		t.Fatalf("expected ErrNotFound, got %v", err)
	}

32
	if _, err := s.Get(ctx, storage.ModeGetRequest, keyNotFound); err != storage.ErrNotFound {
acud's avatar
acud committed
33 34 35
		t.Fatalf("expected ErrNotFound, got %v", err)
	}

36
	if _, err := s.Put(ctx, storage.ModePutUpload, swarm.NewChunk(keyFound, valueFound)); err != nil {
acud's avatar
acud committed
37 38 39
		t.Fatalf("expected not error but got: %v", err)
	}

40
	if chunk, err := s.Get(ctx, storage.ModeGetRequest, keyFound); err != nil {
41
		t.Fatalf("expected no error but got: %v", err)
42 43
	} else if !bytes.Equal(chunk.Data(), valueFound) {
		t.Fatalf("expected value %s but got %s", valueFound, chunk.Data())
acud's avatar
acud committed
44
	}
45

46 47 48 49 50 51 52
	has, err := s.Has(ctx, keyFound)
	if err != nil {
		t.Fatal(err)
	}
	if !has {
		t.Fatal("expected mock store to have key")
	}
acud's avatar
acud committed
53
}