@@ -54,36 +54,57 @@ var _ = Describe("Filtering Drain Writer", func() {
5454 Expect (err ).To (HaveOccurred ())
5555 })
5656
57- It ("sends logs when source_type tag is missing" , func () {
58- binding := syslog.Binding {
59- DrainData : syslog .LOGS ,
60- }
61- fakeWriter := & fakeWriter {}
62- drainWriter , err := syslog .NewFilteringDrainWriter (binding , fakeWriter )
63- Expect (err ).NotTo (HaveOccurred ())
57+ Context ("when source_type tag is missing" , func () {
58+ var envelope * loggregator_v2.Envelope
6459
65- envelope := & loggregator_v2.Envelope {
66- Message : & loggregator_v2.Envelope_Log {
67- Log : & loggregator_v2.Log {
68- Payload : []byte ("test log" ),
60+ BeforeEach (func () {
61+ envelope = & loggregator_v2.Envelope {
62+ Message : & loggregator_v2.Envelope_Log {
63+ Log : & loggregator_v2.Log {
64+ Payload : []byte ("test log" ),
65+ },
6966 },
70- },
71- Tags : map [ string ] string {
72- // source_type tag is intentionally missing
73- },
74- }
67+ Tags : map [ string ] string {
68+ // source_type tag is intentionally missing
69+ },
70+ }
71+ })
7572
76- err = drainWriter .Write (envelope )
73+ It ("omits logs when source type include filter is configured with LOGS" , func () {
74+ binding := syslog.Binding {
75+ DrainData : syslog .LOGS ,
76+ LogFilter : syslog .NewLogFilter (syslog.SourceTypeSet {syslog .SOURCE_APP : struct {}{}}, syslog .LogFilterModeInclude ),
77+ }
78+ fakeWriter := & fakeWriter {}
79+ drainWriter , err := syslog .NewFilteringDrainWriter (binding , fakeWriter )
80+ Expect (err ).NotTo (HaveOccurred ())
7781
78- Expect (err ).NotTo (HaveOccurred ())
79- Expect (fakeWriter .received ).To (Equal (1 ))
82+ err = drainWriter .Write (envelope )
83+
84+ Expect (err ).NotTo (HaveOccurred ())
85+ Expect (fakeWriter .received ).To (Equal (0 ))
86+ })
87+
88+ It ("sends logs when source type exclude filter is configured with LOGS" , func () {
89+ binding := syslog.Binding {
90+ DrainData : syslog .LOGS ,
91+ LogFilter : syslog .NewLogFilter (syslog.SourceTypeSet {syslog .SOURCE_RTR : struct {}{}}, syslog .LogFilterModeExclude ),
92+ }
93+ fakeWriter := & fakeWriter {}
94+ drainWriter , err := syslog .NewFilteringDrainWriter (binding , fakeWriter )
95+ Expect (err ).NotTo (HaveOccurred ())
96+
97+ err = drainWriter .Write (envelope )
98+
99+ Expect (err ).NotTo (HaveOccurred ())
100+ Expect (fakeWriter .received ).To (Equal (1 ))
101+ })
80102 })
81103
82104 It ("filters logs based on include filter - includes only APP logs" , func () {
83- appFilter := syslog.SourceTypeSet {syslog .SOURCE_APP : struct {}{}}
84105 binding := syslog.Binding {
85106 DrainData : syslog .LOGS ,
86- LogFilter : & appFilter ,
107+ LogFilter : syslog . NewLogFilter (syslog. SourceTypeSet { syslog . SOURCE_APP : struct {}{}}, syslog . LogFilterModeInclude ) ,
87108 }
88109 fakeWriter := & fakeWriter {}
89110 drainWriter , err := syslog .NewFilteringDrainWriter (binding , fakeWriter )
@@ -120,14 +141,9 @@ var _ = Describe("Filtering Drain Writer", func() {
120141 })
121142
122143 It ("filters logs based on exclude filter - excludes RTR logs" , func () {
123- // Include APP and STG, effectively excluding RTR
124- includeFilter := syslog.SourceTypeSet {
125- syslog .SOURCE_APP : struct {}{},
126- syslog .SOURCE_STG : struct {}{},
127- }
128144 binding := syslog.Binding {
129145 DrainData : syslog .LOGS ,
130- LogFilter : & includeFilter ,
146+ LogFilter : syslog . NewLogFilter (syslog. SourceTypeSet { syslog . SOURCE_RTR : struct {}{}}, syslog . LogFilterModeExclude ) ,
131147 }
132148 fakeWriter := & fakeWriter {}
133149 drainWriter , err := syslog .NewFilteringDrainWriter (binding , fakeWriter )
@@ -164,10 +180,9 @@ var _ = Describe("Filtering Drain Writer", func() {
164180 })
165181
166182 It ("sends logs with unknown source_type prefix when filter is set" , func () {
167- appFilter := syslog.SourceTypeSet {syslog .SOURCE_APP : struct {}{}}
168183 binding := syslog.Binding {
169184 DrainData : syslog .LOGS ,
170- LogFilter : & appFilter ,
185+ LogFilter : syslog . NewLogFilter (syslog. SourceTypeSet { syslog . SOURCE_APP : struct {}{}}, syslog . LogFilterModeInclude ) ,
171186 }
172187 fakeWriter := & fakeWriter {}
173188 drainWriter , err := syslog .NewFilteringDrainWriter (binding , fakeWriter )
0 commit comments