code.gitea.io/gitea@v1.19.3/modules/packages/multi_hasher_test.go (about)

     1  // Copyright 2022 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package packages
     5  
     6  import (
     7  	"encoding/hex"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/assert"
    11  )
    12  
    13  const (
    14  	expectedMD5    = "e3bef03c5f3b7f6b3ab3e3053ed71e9c"
    15  	expectedSHA1   = "060b3b99f88e96085b4a68e095bc9e3d1d91e1bc"
    16  	expectedSHA256 = "6ccce4863b70f258d691f59609d31b4502e1ba5199942d3bc5d35d17a4ce771d"
    17  	expectedSHA512 = "7f70e439ba8c52025c1f06cdf6ae443c4b8ed2e90059cdb9bbbf8adf80846f185a24acca9245b128b226d61753b0d7ed46580a69c8999eeff3bc13a4d0bd816c"
    18  )
    19  
    20  func TestMultiHasherSums(t *testing.T) {
    21  	t.Run("Sums", func(t *testing.T) {
    22  		h := NewMultiHasher()
    23  		h.Write([]byte("gitea"))
    24  
    25  		hashMD5, hashSHA1, hashSHA256, hashSHA512 := h.Sums()
    26  
    27  		assert.Equal(t, expectedMD5, hex.EncodeToString(hashMD5))
    28  		assert.Equal(t, expectedSHA1, hex.EncodeToString(hashSHA1))
    29  		assert.Equal(t, expectedSHA256, hex.EncodeToString(hashSHA256))
    30  		assert.Equal(t, expectedSHA512, hex.EncodeToString(hashSHA512))
    31  	})
    32  
    33  	t.Run("State", func(t *testing.T) {
    34  		h := NewMultiHasher()
    35  		h.Write([]byte("git"))
    36  
    37  		state, err := h.MarshalBinary()
    38  		assert.NoError(t, err)
    39  
    40  		h2 := NewMultiHasher()
    41  		err = h2.UnmarshalBinary(state)
    42  		assert.NoError(t, err)
    43  
    44  		h2.Write([]byte("ea"))
    45  
    46  		hashMD5, hashSHA1, hashSHA256, hashSHA512 := h2.Sums()
    47  
    48  		assert.Equal(t, expectedMD5, hex.EncodeToString(hashMD5))
    49  		assert.Equal(t, expectedSHA1, hex.EncodeToString(hashSHA1))
    50  		assert.Equal(t, expectedSHA256, hex.EncodeToString(hashSHA256))
    51  		assert.Equal(t, expectedSHA512, hex.EncodeToString(hashSHA512))
    52  	})
    53  }