github.com/cloudwego/hertz@v0.9.3/pkg/common/test/mock/writer_test.go (about) 1 /* 2 * Copyright 2022 CloudWeGo Authors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package mock 18 19 import ( 20 "bytes" 21 "testing" 22 23 "github.com/cloudwego/hertz/pkg/common/test/assert" 24 ) 25 26 func TestExtWriter(t *testing.T) { 27 b1 := []byte("abcdef4343") 28 buf := new(bytes.Buffer) 29 isFinal := false 30 w := &ExtWriter{ 31 Buf: buf, 32 IsFinal: &isFinal, 33 } 34 35 // write 36 n, err := w.Write(b1) 37 assert.DeepEqual(t, nil, err) 38 assert.DeepEqual(t, len(b1), n) 39 40 // flush 41 err = w.Flush() 42 assert.DeepEqual(t, nil, err) 43 assert.DeepEqual(t, b1, w.Buf.Bytes()) 44 45 // setbody 46 b2 := []byte("abc") 47 w.SetBody([]byte(b2)) 48 err = w.Flush() 49 assert.DeepEqual(t, nil, err) 50 assert.DeepEqual(t, b2, w.Buf.Bytes()) 51 52 w.Finalize() 53 assert.DeepEqual(t, true, *(w.IsFinal)) 54 }