kraken

Форк
0
48 строк · 1.2 Кб
1
// Copyright (c) 2016-2019 Uber Technologies, Inc.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
package networkevent
15

16
import "sync"
17

18
// TestProducer records all produced events.
19
type TestProducer struct {
20
	sync.Mutex
21
	events []*Event
22
}
23

24
// NewTestProducer returns a new TestProducer.
25
func NewTestProducer() *TestProducer {
26
	return &TestProducer{}
27
}
28

29
// Produce records e.
30
func (p *TestProducer) Produce(e *Event) {
31
	p.Lock()
32
	defer p.Unlock()
33

34
	p.events = append(p.events, e)
35
}
36

37
// Close noops.
38
func (p *TestProducer) Close() error { return nil }
39

40
// Events returns all currently recorded events.
41
func (p *TestProducer) Events() []*Event {
42
	p.Lock()
43
	defer p.Unlock()
44

45
	res := make([]*Event, len(p.events))
46
	copy(res, p.events)
47
	return res
48
}
49

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.