github.com/cloudwego/kitex@v0.9.0/pkg/remote/trans/netpoll/mocks_test.go (about) 1 /* 2 * Copyright 2021 CloudWeGo Authors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package netpoll 18 19 import ( 20 "context" 21 "time" 22 23 "github.com/cloudwego/netpoll" 24 25 "github.com/cloudwego/kitex/internal/mocks" 26 "github.com/cloudwego/kitex/pkg/remote" 27 ) 28 29 var _ netpoll.Connection = &MockNetpollConn{} 30 31 type MockCodec struct { 32 EncodeFunc func(ctx context.Context, msg remote.Message, out remote.ByteBuffer) error 33 DecodeFunc func(ctx context.Context, msg remote.Message, in remote.ByteBuffer) error 34 } 35 36 func (m *MockCodec) Name() string { 37 return "Mock" 38 } 39 40 func (m *MockCodec) Encode(ctx context.Context, msg remote.Message, out remote.ByteBuffer) (err error) { 41 if m.EncodeFunc != nil { 42 return m.EncodeFunc(ctx, msg, out) 43 } 44 return 45 } 46 47 func (m *MockCodec) Decode(ctx context.Context, msg remote.Message, in remote.ByteBuffer) (err error) { 48 if m.DecodeFunc != nil { 49 return m.DecodeFunc(ctx, msg, in) 50 } 51 return 52 } 53 54 // MockNetpollConn implements netpoll.Connection. 55 type MockNetpollConn struct { 56 mocks.Conn 57 AddCloseCallbackFunc func(c netpoll.CloseCallback) (e error) 58 IsActiveFunc func() (r bool) 59 ReaderFunc func() (r netpoll.Reader) 60 WriterFunc func() (r netpoll.Writer) 61 SetIdleTimeoutFunc func(timeout time.Duration) (e error) 62 SetOnRequestFunc func(on netpoll.OnRequest) (e error) 63 SetReadTimeoutFunc func(timeout time.Duration) (e error) 64 SetWriteTimeoutFunc func(timeout time.Duration) (e error) 65 } 66 67 // AddCloseCallback implements the netpoll.Connection interface. 68 func (m *MockNetpollConn) AddCloseCallback(c netpoll.CloseCallback) (e error) { 69 if m.AddCloseCallbackFunc != nil { 70 return m.AddCloseCallbackFunc(c) 71 } 72 return 73 } 74 75 // IsActive implements the netpoll.Connection interface. 76 func (m *MockNetpollConn) IsActive() (r bool) { 77 if m.IsActiveFunc != nil { 78 return m.IsActiveFunc() 79 } 80 return 81 } 82 83 // Reader implements the netpoll.Connection interface. 84 func (m *MockNetpollConn) Reader() (r netpoll.Reader) { 85 if m.ReaderFunc != nil { 86 return m.ReaderFunc() 87 } 88 return 89 } 90 91 // Writer implements the netpoll.Connection interface. 92 func (m *MockNetpollConn) Writer() (r netpoll.Writer) { 93 if m.WriterFunc != nil { 94 return m.WriterFunc() 95 } 96 return 97 } 98 99 // SetIdleTimeout implements the netpoll.Connection interface. 100 func (m *MockNetpollConn) SetIdleTimeout(timeout time.Duration) (e error) { 101 if m.SetIdleTimeoutFunc != nil { 102 return m.SetIdleTimeoutFunc(timeout) 103 } 104 return 105 } 106 107 // SetOnRequest implements the netpoll.Connection interface. 108 func (m *MockNetpollConn) SetOnRequest(on netpoll.OnRequest) (e error) { 109 if m.SetOnRequestFunc != nil { 110 return m.SetOnRequestFunc(on) 111 } 112 return 113 } 114 115 // SetReadTimeout implements the netpoll.Connection interface. 116 func (m *MockNetpollConn) SetReadTimeout(timeout time.Duration) (e error) { 117 if m.SetReadTimeoutFunc != nil { 118 return m.SetReadTimeoutFunc(timeout) 119 } 120 return 121 } 122 123 // SetReadTimeout implements the netpoll.Connection interface. 124 func (m *MockNetpollConn) SetWriteTimeout(timeout time.Duration) (e error) { 125 if m.SetWriteTimeoutFunc != nil { 126 return m.SetWriteTimeoutFunc(timeout) 127 } 128 return 129 } 130 131 // MockNetpollWriter implements netpoll.Writer 132 type MockNetpollWriter struct { 133 FlushFunc func() (err error) 134 WriteDirectFunc func(p []byte, remainCap int) error 135 } 136 137 var _ netpoll.Writer = &MockNetpollWriter{} 138 139 // Flush implements the netpoll.Writer interface. 140 func (m *MockNetpollWriter) Flush() (err error) { 141 if m.FlushFunc != nil { 142 return m.FlushFunc() 143 } 144 return 145 } 146 147 // Malloc implements the netpoll.Writer interface. 148 func (m *MockNetpollWriter) Malloc(n int) (buf []byte, err error) { 149 return 150 } 151 152 // MallocLen implements the netpoll.Writer interface. 153 func (m *MockNetpollWriter) MallocLen() (length int) { 154 return 155 } 156 157 // MallocAck implements the netpoll.Writer interface. 158 func (m *MockNetpollWriter) MallocAck(n int) (err error) { 159 return 160 } 161 162 // Append implements the netpoll.Writer interface. 163 func (m *MockNetpollWriter) Append(w netpoll.Writer) (err error) { 164 return 165 } 166 167 // Write implements the netpoll.Writer interface. 168 func (m *MockNetpollWriter) Write(b []byte) (n int, err error) { 169 return 170 } 171 172 // WriteString implements the netpoll.Writer interface. 173 func (m *MockNetpollWriter) WriteString(s string) (n int, err error) { 174 return 175 } 176 177 // WriteBinary implements the netpoll.Writer interface. 178 func (m *MockNetpollWriter) WriteBinary(b []byte) (n int, err error) { 179 return 180 } 181 182 // WriteDirect implements the netpoll.Writer interface. 183 func (m *MockNetpollWriter) WriteDirect(p []byte, remainCap int) (err error) { 184 if m.WriteDirectFunc != nil { 185 return m.WriteDirectFunc(p, remainCap) 186 } 187 return 188 } 189 190 // WriteByte implements the netpoll.Writer interface. 191 func (m *MockNetpollWriter) WriteByte(b byte) (err error) { 192 return 193 } 194 195 // MockNetpollReader implements netpoll.Reader 196 type MockNetpollReader struct { 197 ReleaseFunc func() (err error) 198 } 199 200 // Next implements the netpoll.Reader interface. 201 func (m *MockNetpollReader) Next(n int) (p []byte, err error) { 202 return 203 } 204 205 // Peek implements the netpoll.Reader interface. 206 func (m *MockNetpollReader) Peek(n int) (buf []byte, err error) { 207 return 208 } 209 210 // Until implements the netpoll.Reader interface. 211 func (m *MockNetpollReader) Until(b byte) (p []byte, err error) { 212 return 213 } 214 215 // Skip implements the netpoll.Reader interface. 216 func (m *MockNetpollReader) Skip(n int) (err error) { 217 return 218 } 219 220 // Release implements the netpoll.Reader interface. 221 func (m *MockNetpollReader) Release() (err error) { 222 if m.ReleaseFunc != nil { 223 return m.ReleaseFunc() 224 } 225 return 226 } 227 228 // Slice implements the netpoll.Reader interface. 229 func (m *MockNetpollReader) Slice(n int) (r netpoll.Reader, err error) { 230 return 231 } 232 233 // Len implements the netpoll.Reader interface. 234 func (m *MockNetpollReader) Len() (length int) { 235 return 236 } 237 238 // Read implements the netpoll.Reader interface. 239 func (m *MockNetpollReader) Read(b []byte) (n int, err error) { 240 return 241 } 242 243 // ReadString implements the netpoll.Reader interface. 244 func (m *MockNetpollReader) ReadString(n int) (s string, err error) { 245 return 246 } 247 248 // ReadBinary implements the netpoll.Reader interface. 249 func (m *MockNetpollReader) ReadBinary(n int) (p []byte, err error) { 250 return 251 } 252 253 // ReadByte implements the netpoll.Reader interface. 254 func (m *MockNetpollReader) ReadByte() (b byte, err error) { 255 return 256 }