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 }