package notify import "testing" func TestClientPublishSendFileEventObserverOnly(t *testing.T) { client := NewClient().(*ClientCommon) var observed []FileEvent var handled []FileEvent client.setFileEventObserver(func(event FileEvent) { observed = append(observed, event) }) client.SetFileHandler(func(event FileEvent) { handled = append(handled, event) }) event := FileEvent{ Kind: EnvelopeFileChunk, Packet: FilePacket{FileID: "send-1", Size: 32}, } client.publishSendFileEvent(event) if got, want := len(observed), 1; got != want { t.Fatalf("observed count mismatch: got %d want %d", got, want) } if got, want := len(handled), 0; got != want { t.Fatalf("handled count mismatch: got %d want %d", got, want) } if got, want := observed[0].Packet.FileID, "send-1"; got != want { t.Fatalf("observed fileID mismatch: got %q want %q", got, want) } } func TestClientPublishReceivedFileEventObserverAndHandler(t *testing.T) { client := NewClient().(*ClientCommon) var observed []FileEvent var handled []FileEvent client.setFileEventObserver(func(event FileEvent) { observed = append(observed, event) }) client.SetFileHandler(func(event FileEvent) { handled = append(handled, event) }) event := FileEvent{ Kind: EnvelopeFileEnd, Packet: FilePacket{FileID: "recv-1", Size: 64}, Received: 64, Done: true, } client.publishReceivedFileEvent(event) if got, want := len(observed), 1; got != want { t.Fatalf("observed count mismatch: got %d want %d", got, want) } if got, want := len(handled), 1; got != want { t.Fatalf("handled count mismatch: got %d want %d", got, want) } if got, want := observed[0].Packet.FileID, "recv-1"; got != want { t.Fatalf("observed fileID mismatch: got %q want %q", got, want) } if got, want := handled[0].Packet.FileID, "recv-1"; got != want { t.Fatalf("handled fileID mismatch: got %q want %q", got, want) } } func TestServerPublishSendFileEventObserverOnly(t *testing.T) { server := NewServer().(*ServerCommon) var observed []FileEvent var handled []FileEvent server.setFileEventObserver(func(event FileEvent) { observed = append(observed, event) }) server.SetFileHandler(func(event FileEvent) { handled = append(handled, event) }) event := FileEvent{ Kind: EnvelopeFileMeta, Packet: FilePacket{FileID: "server-send-1", Size: 128}, } server.publishSendFileEvent(event) if got, want := len(observed), 1; got != want { t.Fatalf("observed count mismatch: got %d want %d", got, want) } if got, want := len(handled), 0; got != want { t.Fatalf("handled count mismatch: got %d want %d", got, want) } if got, want := observed[0].Packet.FileID, "server-send-1"; got != want { t.Fatalf("observed fileID mismatch: got %q want %q", got, want) } }