package main

import (
	"testing"

	. "github.com/smartystreets/goconvey/convey"
)

// func TestBroadcast(t *testing.T) {
// 	bs := NewBroadcastString()
// 	bs.WriteMessage("hello")
// 	time.Sleep(10 * time.Millisecond)
// 	c1 := bs.AddListener(nil)
// 	go func() {
// 		bs.WriteMessage("world")
// 	}()
// 	message := <-c1
// 	if message != "world" {
// 		t.Fatalf("expect message world, but got %s", message)
// 	}
// 	c2 := bs.AddListener(nil)
// 	go func() {
// 		bs.WriteMessage("tab")
// 	}()

// 	// test write multi
// 	wg := sync.WaitGroup{}
// 	wg.Add(2)
// 	go func() {
// 		message = <-c2
// 		if message != "tab" {
// 			t.Errorf("expect tab, but got %s", message)
// 		}
// 		wg.Done()
// 	}()

// 	go func() {
// 		message = <-c1
// 		if message != "tab" {
// 			t.Errorf("expect tab, but got %s", message)
// 		}
// 		wg.Done()
// 	}()
// 	wg.Wait()
// }

func TestRingBuffer(t *testing.T) {
	Convey("Write some string to ring buffer", t, func() {
		// buf := rbuf.NewFixedSizeRingBuf(5)
		// buf.Write([]byte("abcde"))
		// So(string(buf.Bytes()), ShouldEqual, "abcde")
		// buf.Advance(2)
		// buf.Write([]byte("fg"))
		// So(string(buf.Bytes()), ShouldEqual, "cdefg")
	})
}
