Skip to content

Commit 1880b6f

Browse files
committed
Test parse
1 parent 68ec1b1 commit 1880b6f

File tree

2 files changed

+131
-1
lines changed

2 files changed

+131
-1
lines changed

http_test.go

+93-1
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@ package parsefield
33
import (
44
"bytes"
55
"encoding/json"
6+
"fmt"
7+
"github.com/MonaxGT/parsefields/storage"
68
"io/ioutil"
79
"net/http"
810
"net/http/httptest"
911
"sync"
1012
"testing"
13+
"time"
1114

12-
"fmt"
1315
"github.com/julienschmidt/httprouter"
1416
)
1517

@@ -21,6 +23,49 @@ type Body struct {
2123
LogName string `json:"event_log_name,omitempty"`
2224
}
2325

26+
type MockReindexer struct {
27+
mockInsertFields func() error
28+
mockRestoreEvents func() error
29+
}
30+
31+
func (s *MockReindexer) Open(url string) error {
32+
panic("implement me")
33+
}
34+
35+
func (s *MockReindexer) InsertEvents(event *storage.Events) error {
36+
panic("implement me")
37+
}
38+
39+
func (s *MockReindexer) RestoreFields() ([]*storage.Fields, error) {
40+
panic("implement me")
41+
}
42+
43+
func (s *MockReindexer) RestoreEvents() ([]*storage.Events, error) {
44+
if s.mockRestoreEvents != nil {
45+
return nil,s.mockRestoreEvents()
46+
}
47+
return nil,nil
48+
}
49+
50+
func (s *MockReindexer) DeleteEvents(logname string, eventid int32) error {
51+
panic("implement me")
52+
}
53+
54+
func (s *MockReindexer) DeleteFields(field string) error {
55+
panic("implement me")
56+
}
57+
58+
func (s *MockReindexer) GetByEvent(logname string, eventid int32) ([]byte, error) {
59+
panic("implement me")
60+
}
61+
62+
func (s *MockReindexer) InsertFields(field *storage.Fields) error {
63+
if s.mockInsertFields != nil {
64+
return s.mockInsertFields()
65+
}
66+
return nil
67+
}
68+
2469
func TestJSONHandler(t *testing.T) {
2570
var fields sync.Map
2671
var events sync.Map
@@ -344,3 +389,50 @@ func TestEventsBodyHandler(t *testing.T) {
344389
}
345390
}
346391
}
392+
393+
func TestServe(t *testing.T) {
394+
c := Config{}
395+
go func() {
396+
for {
397+
select {
398+
case <-time.After(2 * time.Second):
399+
return
400+
default:
401+
err := c.Serve(":8123")
402+
if err != nil {
403+
t.Error(err)
404+
}
405+
}
406+
}
407+
}()
408+
409+
}
410+
411+
func TestDB (t *testing.T) {
412+
var db storage.Database
413+
var fields sync.Map
414+
var events sync.Map
415+
ms := &MockReindexer{
416+
mockInsertFields: func() error {
417+
return nil
418+
},
419+
mockRestoreEvents: func() error {
420+
return nil
421+
},
422+
}
423+
db = ms
424+
c := Config{
425+
Fields: &fields,
426+
Events: &events,
427+
DB: db,
428+
}
429+
err := c.DB.InsertFields(&storage.Fields{})
430+
if err!= nil {
431+
t.Error(err)
432+
}
433+
_, err = c.DB.RestoreEvents()
434+
if err!= nil {
435+
t.Error(err)
436+
}
437+
438+
}

parse_test.go

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package parsefield
2+
3+
import (
4+
"sync"
5+
"testing"
6+
)
7+
8+
func TestParse(t *testing.T) {
9+
var fields sync.Map
10+
var events sync.Map
11+
c := &Config{
12+
Fields: &fields,
13+
Events: &events,
14+
}
15+
body := []byte(`{"event_id":1,"event_log_name":"sysmon"}`)
16+
err := c.parse(body)
17+
if err != nil {
18+
t.Error(err)
19+
}
20+
21+
}
22+
23+
func TestParseMulti (t *testing.T) {
24+
var fields sync.Map
25+
var events sync.Map
26+
c := &Config{
27+
Fields: &fields,
28+
Events: &events,
29+
}
30+
body := []byte(`[{"event_id":1,"event_log_name":"sysmon"},{"event_id":2,"event_log_name":"security"}]`)
31+
err := c.parseMulti(body)
32+
if err != nil {
33+
t.Error(err)
34+
}
35+
}
36+
37+
38+

0 commit comments

Comments
 (0)