github.com/cihub/seelog@v0.0.0-20170130134532-f561c5e57575/dispatch_splitdispatcher_test.go (about)

     1  // Copyright (c) 2012 - Cloud Instruments Co., Ltd.
     2  //
     3  // All rights reserved.
     4  //
     5  // Redistribution and use in source and binary forms, with or without
     6  // modification, are permitted provided that the following conditions are met:
     7  //
     8  // 1. Redistributions of source code must retain the above copyright notice, this
     9  //    list of conditions and the following disclaimer.
    10  // 2. Redistributions in binary form must reproduce the above copyright notice,
    11  //    this list of conditions and the following disclaimer in the documentation
    12  //    and/or other materials provided with the distribution.
    13  //
    14  // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
    15  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    16  // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    17  // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
    18  // ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    19  // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    20  // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    21  // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    22  // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    23  // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    24  
    25  package seelog
    26  
    27  import (
    28  	"fmt"
    29  	"testing"
    30  )
    31  
    32  var onlyMessageFormatForTest *formatter
    33  
    34  func init() {
    35  	var err error
    36  	onlyMessageFormatForTest, err = NewFormatter("%Msg")
    37  	if err != nil {
    38  		fmt.Println("Can not create only message format: " + err.Error())
    39  	}
    40  }
    41  
    42  func TestsplitDispatcher(t *testing.T) {
    43  	writer1, _ := newBytesVerifier(t)
    44  	writer2, _ := newBytesVerifier(t)
    45  	spliter, err := NewSplitDispatcher(onlyMessageFormatForTest, []interface{}{writer1, writer2})
    46  	if err != nil {
    47  		t.Error(err)
    48  		return
    49  	}
    50  
    51  	context, err := currentContext(nil)
    52  	if err != nil {
    53  		t.Error(err)
    54  		return
    55  	}
    56  
    57  	bytes := []byte("Hello")
    58  
    59  	writer1.ExpectBytes(bytes)
    60  	writer2.ExpectBytes(bytes)
    61  	spliter.Dispatch(string(bytes), TraceLvl, context, func(err error) {})
    62  	writer1.MustNotExpect()
    63  	writer2.MustNotExpect()
    64  }