diff --git a/ers/ers_test.go b/ers/ers_test.go new file mode 100644 index 000000000..556558f3b --- /dev/null +++ b/ers/ers_test.go @@ -0,0 +1,52 @@ +/* +Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments +Copyright (C) ITsysCOM GmbH + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see +*/ + +package ers + +import ( + "reflect" + "testing" + + "github.com/cgrates/cgrates/config" + "github.com/cgrates/cgrates/engine" +) + +func TestERsNewERService(t *testing.T) { + cfg, _ := config.NewDefaultCGRConfig() + fltrS := &engine.FilterS{} + expected := &ERService{cfg: cfg, + filterS: fltrS, + rdrs: make(map[string]EventReader), + rdrPaths: make(map[string]string), + stopLsn: make(map[string]chan struct{}), + rdrEvents: make(chan *erEvent), + rdrErr: make(chan error), + exitChan: nil, + sS: nil} + rcv := NewERService(cfg, fltrS, nil, nil) + + if !reflect.DeepEqual(expected.cfg, rcv.cfg) { + t.Errorf("Expecting: <%+v>, received: <%+v>", expected.cfg, rcv.cfg) + } else if !reflect.DeepEqual(expected.filterS, rcv.filterS) { + t.Errorf("Expecting: <%+v>, received: <%+v>", expected.filterS, rcv.filterS) + } +} + +func TestERsAddReader(t *testing.T) { + +} diff --git a/ers/readers_test.go b/ers/readers_test.go new file mode 100644 index 000000000..404bf2653 --- /dev/null +++ b/ers/readers_test.go @@ -0,0 +1,88 @@ +/* +Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments +Copyright (C) ITsysCOM GmbH + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see +*/ + +package ers + +import ( + "reflect" + "testing" + + "github.com/cgrates/cgrates/config" + "github.com/cgrates/cgrates/engine" + "github.com/cgrates/cgrates/utils" +) + +func TestNewInvalidReader(t *testing.T) { + + cfg, _ := config.NewDefaultCGRConfig() + reader := cfg.ERsCfg().Readers[0] + reader.Type = "Invalid" + reader.ID = "InvaidReader" + cfg.ERsCfg().Readers = append(cfg.ERsCfg().Readers, reader) + if len(cfg.ERsCfg().Readers) != 2 { + t.Errorf("Expecting: <2>, received: <%+v>", len(cfg.ERsCfg().Readers)) + } + if _, err := NewEventReader(cfg, 1, nil, nil, &engine.FilterS{}, nil); err == nil || err.Error() != "unsupported reader type: " { + t.Errorf("Expecting: >, received: <%+v>", err) + } +} + +func TestNewCsvReader(t *testing.T) { + + cfg, _ := config.NewDefaultCGRConfig() + fltr := &engine.FilterS{} + reader := cfg.ERsCfg().Readers[0] + reader.Type = utils.MetaFileCSV + reader.ID = "file_reader" + cfg.ERsCfg().Readers = append(cfg.ERsCfg().Readers, reader) + if len(cfg.ERsCfg().Readers) != 2 { + t.Errorf("Expecting: <2>, received: <%+v>", len(cfg.ERsCfg().Readers)) + } + expected, err := NewCSVFileER(cfg, 1, nil, nil, fltr, nil) + if err != nil { + t.Errorf("Expecting: , received: <%+v>", err) + } + if rcv, err := NewEventReader(cfg, 1, nil, nil, fltr, nil); err != nil { + t.Errorf("Expecting: , received: <%+v>", err) + } else if !reflect.DeepEqual(expected, rcv) { + + t.Errorf("Expecting: <%+v>, received: <%+v>", expected, rcv) + } +} + +func TestNewKafkaReader(t *testing.T) { + + cfg, _ := config.NewDefaultCGRConfig() + fltr := &engine.FilterS{} + reader := cfg.ERsCfg().Readers[0] + reader.Type = utils.MetaKafkajsonMap + reader.ID = "file_reader" + cfg.ERsCfg().Readers = append(cfg.ERsCfg().Readers, reader) + if len(cfg.ERsCfg().Readers) != 2 { + t.Errorf("Expecting: <2>, received: <%+v>", len(cfg.ERsCfg().Readers)) + } + expected, err := NewKafkaER(cfg, 1, nil, nil, fltr, nil) + if err != nil { + t.Errorf("Expecting: , received: <%+v>", err) + } + if rcv, err := NewEventReader(cfg, 1, nil, nil, fltr, nil); err != nil { + t.Errorf("Expecting: , received: <%+v>", err) + } else if !reflect.DeepEqual(expected, rcv) { + t.Errorf("Expecting: <%+v>, received: <%+v>", expected, rcv) + } +}