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  }