github.com/cloudwego/kitex@v0.9.0/pkg/remote/trans/gonet/mocks_test.go (about) 1 /* 2 * Copyright 2022 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 gonet 18 19 import ( 20 "context" 21 "net" 22 "time" 23 24 "github.com/cloudwego/netpoll" 25 26 "github.com/cloudwego/kitex/internal/mocks" 27 "github.com/cloudwego/kitex/pkg/remote" 28 ) 29 30 type MockCodec struct { 31 EncodeFunc func(ctx context.Context, msg remote.Message, out remote.ByteBuffer) error 32 DecodeFunc func(ctx context.Context, msg remote.Message, in remote.ByteBuffer) error 33 } 34 35 func (m *MockCodec) Name() string { 36 return "Mock" 37 } 38 39 func (m *MockCodec) Encode(ctx context.Context, msg remote.Message, out remote.ByteBuffer) (err error) { 40 if m.EncodeFunc != nil { 41 return m.EncodeFunc(ctx, msg, out) 42 } 43 return 44 } 45 46 func (m *MockCodec) Decode(ctx context.Context, msg remote.Message, in remote.ByteBuffer) (err error) { 47 if m.DecodeFunc != nil { 48 return m.DecodeFunc(ctx, msg, in) 49 } 50 return 51 } 52 53 var _ net.Conn = &MockNetConn{} 54 55 // MockNetConn implements net.Conn. 56 type MockNetConn struct { 57 mocks.Conn 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 } 65 66 // IsActive implements the netpoll.Connection interface. 67 func (m *MockNetConn) IsActive() (r bool) { 68 if m.IsActiveFunc != nil { 69 return m.IsActiveFunc() 70 } 71 return 72 } 73 74 // Reader implements the netpoll.Connection interface. 75 func (m *MockNetConn) Reader() (r netpoll.Reader) { 76 if m.ReaderFunc != nil { 77 return m.ReaderFunc() 78 } 79 return 80 } 81 82 // Writer implements the netpoll.Connection interface. 83 func (m *MockNetConn) Writer() (r netpoll.Writer) { 84 if m.WriterFunc != nil { 85 return m.WriterFunc() 86 } 87 return 88 } 89 90 // SetIdleTimeout implements the netpoll.Connection interface. 91 func (m *MockNetConn) SetIdleTimeout(timeout time.Duration) (e error) { 92 if m.SetIdleTimeoutFunc != nil { 93 return m.SetIdleTimeoutFunc(timeout) 94 } 95 return 96 } 97 98 // SetOnRequest implements the netpoll.Connection interface. 99 func (m *MockNetConn) SetOnRequest(on netpoll.OnRequest) (e error) { 100 if m.SetOnRequestFunc != nil { 101 return m.SetOnRequestFunc(on) 102 } 103 return 104 } 105 106 // SetReadTimeout implements the netpoll.Connection interface. 107 func (m *MockNetConn) SetReadTimeout(timeout time.Duration) (e error) { 108 if m.SetReadTimeoutFunc != nil { 109 return m.SetReadTimeoutFunc(timeout) 110 } 111 return 112 } 113 114 // MockNetConnWriter implements netpoll.Writer 115 type MockNetConnWriter struct { 116 FlushFunc func() (err error) 117 WriteDirectFunc func(p []byte, remainCap int) error 118 } 119 120 var _ netpoll.Writer = &MockNetConnWriter{} 121 122 // Flush implements the netpoll.Writer interface. 123 func (m *MockNetConnWriter) Flush() (err error) { 124 if m.FlushFunc != nil { 125 return m.FlushFunc() 126 } 127 return 128 } 129 130 // Malloc implements the netpoll.Writer interface. 131 func (m *MockNetConnWriter) Malloc(n int) (buf []byte, err error) { 132 return 133 } 134 135 // MallocLen implements the netpoll.Writer interface. 136 func (m *MockNetConnWriter) MallocLen() (length int) { 137 return 138 } 139 140 // MallocAck implements the netpoll.Writer interface. 141 func (m *MockNetConnWriter) MallocAck(n int) (err error) { 142 return 143 } 144 145 // Append implements the netpoll.Writer interface. 146 func (m *MockNetConnWriter) Append(w netpoll.Writer) (err error) { 147 return 148 } 149 150 // Write implements the netpoll.Writer interface. 151 func (m *MockNetConnWriter) Write(b []byte) (n int, err error) { 152 return 153 } 154 155 // WriteString implements the netpoll.Writer interface. 156 func (m *MockNetConnWriter) WriteString(s string) (n int, err error) { 157 return 158 } 159 160 // WriteBinary implements the netpoll.Writer interface. 161 func (m *MockNetConnWriter) WriteBinary(b []byte) (n int, err error) { 162 return 163 } 164 165 // WriteDirect implements the netpoll.Writer interface. 166 func (m *MockNetConnWriter) WriteDirect(p []byte, remainCap int) (err error) { 167 if m.WriteDirectFunc != nil { 168 return m.WriteDirectFunc(p, remainCap) 169 } 170 return 171 } 172 173 // WriteByte implements the netpoll.Writer interface. 174 func (m *MockNetConnWriter) WriteByte(b byte) (err error) { 175 return 176 } 177 178 // MockNetConnReader implements netpoll.Reader 179 type MockNetConnReader struct { 180 ReleaseFunc func() (err error) 181 } 182 183 // Next implements the netpoll.Reader interface. 184 func (m *MockNetConnReader) Next(n int) (p []byte, err error) { 185 return 186 } 187 188 // Peek implements the netpoll.Reader interface. 189 func (m *MockNetConnReader) Peek(n int) (buf []byte, err error) { 190 return 191 } 192 193 // Until implements the netpoll.Reader interface. 194 func (m *MockNetConnReader) Until(b byte) (p []byte, err error) { 195 return 196 } 197 198 // Skip implements the netpoll.Reader interface. 199 func (m *MockNetConnReader) Skip(n int) (err error) { 200 return 201 } 202 203 // Release implements the netpoll.Reader interface. 204 func (m *MockNetConnReader) Release() (err error) { 205 if m.ReleaseFunc != nil { 206 return m.ReleaseFunc() 207 } 208 return 209 } 210 211 // Slice implements the netpoll.Reader interface. 212 func (m *MockNetConnReader) Slice(n int) (r netpoll.Reader, err error) { 213 return 214 } 215 216 // Len implements the netpoll.Reader interface. 217 func (m *MockNetConnReader) Len() (length int) { 218 return 219 } 220 221 // Read implements the netpoll.Reader interface. 222 func (m *MockNetConnReader) Read(b []byte) (n int, err error) { 223 return 224 } 225 226 // ReadString implements the netpoll.Reader interface. 227 func (m *MockNetConnReader) ReadString(n int) (s string, err error) { 228 return 229 } 230 231 // ReadBinary implements the netpoll.Reader interface. 232 func (m *MockNetConnReader) ReadBinary(n int) (p []byte, err error) { 233 return 234 } 235 236 // ReadByte implements the netpoll.Reader interface. 237 func (m *MockNetConnReader) ReadByte() (b byte, err error) { 238 return 239 }