github.com/codingeasygo/util@v0.0.0-20231206062002-1ce2f004b7d9/xio/multi_test.go (about)

     1  package xio
     2  
     3  import (
     4  	"fmt"
     5  	"io/ioutil"
     6  	"testing"
     7  )
     8  
     9  func TestMultiWriter(t *testing.T) {
    10  	var n int
    11  	var err error
    12  	raw := &copyMultiTestWriter{}
    13  	writer := NewMultiWriter(ioutil.Discard, raw)
    14  	raw.n = 0
    15  	n, err = fmt.Fprintf(writer, "abc")
    16  	if err != nil || n != 3 {
    17  		t.Error(err)
    18  		return
    19  	}
    20  	raw.n = 1
    21  	_, err = fmt.Fprintf(writer, "abc")
    22  	if err == nil {
    23  		t.Error(err)
    24  		return
    25  	}
    26  	raw.n = 2
    27  	_, err = fmt.Fprintf(writer, "abc")
    28  	if err == nil {
    29  		t.Error(err)
    30  		return
    31  	}
    32  	writer.Close()
    33  }