github.com/sixexorg/magnetic-ring@v0.0.0-20191119090307-31705a21e419/events/event_test.go (about)

     1  /*
     2   * Copyright (C) 2018 The ontology Authors
     3   * This file is part of The ontology library.
     4   *
     5   * The ontology is free software: you can redistribute it and/or modify
     6   * it under the terms of the GNU Lesser General Public License as published by
     7   * the Free Software Foundation, either version 3 of the License, or
     8   * (at your option) any later version.
     9   *
    10   * The ontology is distributed in the hope that it will be useful,
    11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
    12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13   * GNU Lesser General Public License for more details.
    14   *
    15   * You should have received a copy of the GNU Lesser General Public License
    16   * along with The ontology.  If not, see <http://www.gnu.org/licenses/>.
    17   */
    18  
    19  package events
    20  
    21  import (
    22  	"fmt"
    23  	"testing"
    24  )
    25  
    26  func TestNewEvent(t *testing.T) {
    27  	event := NewEvent()
    28  
    29  	var subscriber1 EventFunc = func(v interface{}) {
    30  		fmt.Println("subscriber1 event func.")
    31  	}
    32  
    33  	var subscriber2 EventFunc = func(v interface{}) {
    34  		fmt.Println("subscriber2 event func.")
    35  	}
    36  
    37  	fmt.Println("Subscribe...")
    38  	sub1 := event.Subscribe(EventReplyTx, subscriber1)
    39  	event.Subscribe(EventSaveBlock, subscriber2)
    40  
    41  	fmt.Println("Notify...")
    42  	event.Notify(EventReplyTx, nil)
    43  
    44  	fmt.Println("Notify All...")
    45  	event.NotifyAll()
    46  
    47  	event.UnSubscribe(EventReplyTx, sub1)
    48  	fmt.Println("Notify All after unsubscribe sub1...")
    49  	event.NotifyAll()
    50  
    51  }