You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
naza/pkg/mockwriter/mockwriter_test.go

97 lines
1.7 KiB
Go

package mockwriter
import (
Squashed commit of the following: commit 721f5df77672d904a8926433d33a1546d6853724 Author: q191201771 <191201771@qq.com> Date: Mon Sep 30 11:09:38 2019 +0800 nezha -> naza commit 94cbffe32a567ac3b11583675900cd9ac1561149 Author: q191201771 <191201771@qq.com> Date: Mon Sep 30 10:44:23 2019 +0800 rename package log -> package nazalog commit db8122c69d18cd6b16dd2853207f0397373fa863 Author: q191201771 <191201771@qq.com> Date: Mon Sep 30 10:26:00 2019 +0800 package connection: bugfix make exitChan commit 083db929f6341a35c170e023e5d4a8aa8386b87d Author: q191201771 <191201771@qq.com> Date: Mon Sep 30 10:06:00 2019 +0800 rename package nzjson -> nazajson commit e01dda7218b4390aa5b9e8280be109761c8fc576 Author: q191201771 <191201771@qq.com> Date: Mon Sep 30 09:59:35 2019 +0800 new package: nazajson commit 09421c2b985e610a5940bf3c8a2e6bd3b4838274 Author: q191201771 <191201771@qq.com> Date: Sun Sep 29 12:04:21 2019 +0800 1. package connection & package log: Config -> Option 2. package log: IsToStdOut default -> ture, ShortFileFlag default -> true commit 1052ef0ead7c4ad2c8acfdcccefe186d8f743d51 Author: q191201771 <191201771@qq.com> Date: Sun Sep 29 11:13:57 2019 +0800 package connection: rename wmsg struct -> wMsg commit a450ed21b008b10898d363c4a58a04662ac6a283 Author: q191201771 <191201771@qq.com> Date: Sun Sep 29 11:11:11 2019 +0800 package connection: erase func Printf commit 810d41a83beb54110461c288d7078a9c08b16b5b Author: q191201771 <191201771@qq.com> Date: Sun Sep 29 11:06:57 2019 +0800 package log: mkdir 777 -> 644 commit e087bc8fe70f1ba619d87ca77356b198f117cd9c Merge: f117d4b d6006a3 Author: q191201771 <191201771@qq.com> Date: Fri Sep 27 14:21:05 2019 +0800 Merge branch 'master' into dev commit f117d4b20e19812aa9f0aa618daa60a73169e486 Merge: f2f631e 059da41 Author: q191201771 <191201771@qq.com> Date: Fri Sep 27 14:12:38 2019 +0800 Merge branch 'master' into dev commit f2f631eb21e1a99f1b40470dc517be97f36d74fd Author: q191201771 <191201771@qq.com> Date: Wed Sep 25 19:37:31 2019 +0800 test.sh 只在开发机 macos 下执行 gofmt 检查 commit fb692804a04147c96bd17cd262988595bad08d3d Author: q191201771 <191201771@qq.com> Date: Wed Sep 25 17:26:36 2019 +0800 1. package log: 增加 panic 接口 2. test.sh 中增加 gofmt 检查提醒 commit b2c187b59f30c0e1f7c2d2ac867784a39aefa445 Author: q191201771 <191201771@qq.com> Date: Wed Sep 25 10:56:04 2019 +0800 1. package log: bugfix 日志业务方内容有换行,并且有源码行号时,整行日志添加换行 2. package connection: debug log commit a9b2fe8f863cb0b28189a257246703351a604b02 Author: q191201771 <191201771@qq.com> Date: Tue Sep 24 16:42:09 2019 +0800 package connection: bugfix func Done commit 5b13acb3d83860cf98cc8b02358f97a7fc514ffb Author: q191201771 <191201771@qq.com> Date: Tue Sep 24 15:59:02 2019 +0800 package connection: 1. 增加 ModWriteChanSize 方法 2. bugfix Close 中忘记调用 close commit 4beaa82c509cc44ddb0ecda91674191e715b83d8 Author: q191201771 <191201771@qq.com> Date: Tue Sep 24 15:44:37 2019 +0800 package connection: 增加 Done 方法 commit 0f3da700ec8cb90068dda7a8f091aefd9076be07 Author: q191201771 <191201771@qq.com> Date: Tue Sep 24 14:05:39 2019 +0800 package connection: 1. 增加 wChanSize 配置,用于指定是否使用异步发送 2. 添加 Flush 方法 commit d154645a44a9e66b3aa2b655571d566ce28ea264 Author: q191201771 <191201771@qq.com> Date: Mon Sep 23 19:48:08 2019 +0800 package connection: Flush before Close
5 years ago
"github.com/q191201771/naza/pkg/assert"
"testing"
)
func TestNewMockWriter(t *testing.T) {
_ = NewMockWriter(WriterTypeDoNothing)
}
func TestMockWriter_Write(t *testing.T) {
var (
w *MockWriter
n int
err error
b = []byte("hello")
)
w = NewMockWriter(WriterTypeDoNothing)
n, err = w.Write(b)
assert.Equal(t, 5, n)
assert.Equal(t, nil, err)
w = NewMockWriter(WriterTypeReturnError)
n, err = w.Write(b)
assert.Equal(t, 0, n)
assert.Equal(t, mockWriterErr, err)
w = NewMockWriter(WriterTypeIntoBuffer)
n, err = w.Write(b)
assert.Equal(t, 5, n)
assert.Equal(t, nil, err)
}
func TestMockWriter_SetSpecificType(t *testing.T) {
var (
w *MockWriter
n int
err error
b = []byte("hello")
)
w = NewMockWriter(WriterTypeDoNothing)
w.SetSpecificType(map[uint32]WriterType{
0: WriterTypeReturnError,
2: WriterTypeReturnError,
4: WriterTypeDoNothing,
})
expectedLen := map[int]int{
0: 0,
1: 5,
2: 0,
3: 5,
4: 5,
5: 5,
}
expectedErr := map[int]error{
0: mockWriterErr,
1: nil,
2: mockWriterErr,
3: nil,
4: nil,
5: nil,
}
for i := 0; i < 6; i++ {
n, err = w.Write(b)
assert.Equal(t, expectedLen[i], n)
assert.Equal(t, expectedErr[i], err)
}
}
func BenchmarkNewMockWriter(b *testing.B) {
b.ReportAllocs()
var tmp uint32
for i := 0; i < b.N; i++ {
mw := NewMockWriter(WriterTypeDoNothing)
tmp = tmp + mw.count
}
}
func newMockWriter2(t WriterType) MockWriter {
return MockWriter{
t: t,
}
}
func BenchmarkNewMockWriter2(b *testing.B) {
b.ReportAllocs()
var tmp uint32
for i := 0; i < b.N; i++ {
mw := newMockWriter2(WriterTypeDoNothing)
tmp = tmp + mw.count
}
}