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  }