github.com/hasnat/dolt/go@v0.0.0-20210628190320-9eb5d843fbb7/store/chunks/chunk_test.go (about)

     1  // Copyright 2019 Dolthub, Inc.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  //
    15  // This file incorporates work covered by the following copyright and
    16  // permission notice:
    17  //
    18  // Copyright 2016 Attic Labs, Inc. All rights reserved.
    19  // Licensed under the Apache License, version 2.0:
    20  // http://www.apache.org/licenses/LICENSE-2.0
    21  
    22  package chunks
    23  
    24  import (
    25  	"testing"
    26  
    27  	"github.com/stretchr/testify/assert"
    28  )
    29  
    30  func TestChunk(t *testing.T) {
    31  	c := NewChunk([]byte("abc"))
    32  	h := c.Hash()
    33  	// See http://www.di-mgt.com.au/sha_testvectors.html
    34  	assert.Equal(t, "rmnjb8cjc5tblj21ed4qs821649eduie", h.String())
    35  }
    36  
    37  func TestChunkWriteAfterCloseFails(t *testing.T) {
    38  	assert := assert.New(t)
    39  	input := "abc"
    40  	w := NewChunkWriter()
    41  	_, err := w.Write([]byte(input))
    42  	assert.NoError(err)
    43  
    44  	assert.NoError(w.Close())
    45  	assert.Panics(func() { w.Write([]byte(input)) }, "Write() after Close() should barf!")
    46  }
    47  
    48  func TestChunkWriteAfterChunkFails(t *testing.T) {
    49  	assert := assert.New(t)
    50  	input := "abc"
    51  	w := NewChunkWriter()
    52  	_, err := w.Write([]byte(input))
    53  	assert.NoError(err)
    54  
    55  	_ = w.Chunk()
    56  	assert.Panics(func() { w.Write([]byte(input)) }, "Write() after Chunk() should barf!")
    57  }
    58  
    59  func TestChunkChunkCloses(t *testing.T) {
    60  	assert := assert.New(t)
    61  	input := "abc"
    62  	w := NewChunkWriter()
    63  	_, err := w.Write([]byte(input))
    64  	assert.NoError(err)
    65  
    66  	w.Chunk()
    67  	assert.Panics(func() { w.Write([]byte(input)) }, "Write() after Close() should barf!")
    68  }