@@ -1,4 +1,4 @@
|
||||
package addr // import "go.unistack.org/micro/v3/util/addr"
|
||||
package addr // import "go.unistack.org/micro/v4/util/addr"
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
// Package backoff provides backoff functionality
|
||||
package backoff // import "go.unistack.org/micro/v3/util/backoff"
|
||||
package backoff // import "go.unistack.org/micro/v4/util/backoff"
|
||||
|
||||
import (
|
||||
"math"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package buf // import "go.unistack.org/micro/v3/util/buf"
|
||||
package buf // import "go.unistack.org/micro/v4/util/buf"
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package http // import "go.unistack.org/micro/v3/util/http"
|
||||
package http // import "go.unistack.org/micro/v4/util/http"
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -8,8 +8,8 @@ import (
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"go.unistack.org/micro/v3/metadata"
|
||||
"go.unistack.org/micro/v3/selector/random"
|
||||
"go.unistack.org/micro/v4/metadata"
|
||||
"go.unistack.org/micro/v4/selector/random"
|
||||
)
|
||||
|
||||
// Write sets the status and body on a http ResponseWriter
|
||||
|
@@ -9,10 +9,10 @@ import (
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
"go.unistack.org/micro/v3/register"
|
||||
"go.unistack.org/micro/v3/register/memory"
|
||||
"go.unistack.org/micro/v3/router"
|
||||
regRouter "go.unistack.org/micro/v3/router/register"
|
||||
"go.unistack.org/micro/v4/register"
|
||||
"go.unistack.org/micro/v4/register/memory"
|
||||
"go.unistack.org/micro/v4/router"
|
||||
regRouter "go.unistack.org/micro/v4/router/register"
|
||||
)
|
||||
|
||||
func TestRoundTripper(t *testing.T) {
|
||||
|
@@ -1,6 +1,6 @@
|
||||
package http
|
||||
|
||||
import "go.unistack.org/micro/v3/router"
|
||||
import "go.unistack.org/micro/v4/router"
|
||||
|
||||
// Options struct
|
||||
type Options struct {
|
||||
|
@@ -4,8 +4,8 @@ import (
|
||||
"errors"
|
||||
"net/http"
|
||||
|
||||
"go.unistack.org/micro/v3/router"
|
||||
"go.unistack.org/micro/v3/selector"
|
||||
"go.unistack.org/micro/v4/router"
|
||||
"go.unistack.org/micro/v4/selector"
|
||||
)
|
||||
|
||||
type roundTripper struct {
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package id // import "go.unistack.org/micro/v3/util/id"
|
||||
package id // import "go.unistack.org/micro/v4/util/id"
|
||||
|
||||
import (
|
||||
"context"
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"errors"
|
||||
"math"
|
||||
|
||||
"go.unistack.org/micro/v3/logger"
|
||||
"go.unistack.org/micro/v4/logger"
|
||||
)
|
||||
|
||||
// DefaultAlphabet is the alphabet used for ID characters by default
|
||||
|
@@ -1,10 +1,10 @@
|
||||
// Package io is for io management
|
||||
package io // import "go.unistack.org/micro/v3/util/io"
|
||||
package io // import "go.unistack.org/micro/v4/util/io"
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
"go.unistack.org/micro/v3/network/transport"
|
||||
"go.unistack.org/micro/v4/network/transport"
|
||||
)
|
||||
|
||||
type rwc struct {
|
||||
|
@@ -1,10 +1,10 @@
|
||||
// Package jitter provides a random jitter
|
||||
package jitter // import "go.unistack.org/micro/v3/util/jitter"
|
||||
package jitter // import "go.unistack.org/micro/v4/util/jitter"
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"go.unistack.org/micro/v3/util/rand"
|
||||
"go.unistack.org/micro/v4/util/rand"
|
||||
)
|
||||
|
||||
// Random returns a random time to jitter with max cap specified
|
||||
|
@@ -1,10 +1,10 @@
|
||||
package jitter // import "go.unistack.org/micro/v3/util/jitter"
|
||||
package jitter // import "go.unistack.org/micro/v4/util/jitter"
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"go.unistack.org/micro/v3/util/rand"
|
||||
"go.unistack.org/micro/v4/util/rand"
|
||||
)
|
||||
|
||||
// Ticker is similar to time.Ticker but ticks at random intervals between
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package net // import "go.unistack.org/micro/v3/util/net"
|
||||
package net // import "go.unistack.org/micro/v4/util/net"
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
// Package pki provides PKI all the PKI functions necessary to run micro over an untrusted network
|
||||
// including a CA
|
||||
package pki // import "go.unistack.org/micro/v3/util/pki"
|
||||
package pki // import "go.unistack.org/micro/v4/util/pki"
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
@@ -5,8 +5,8 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"go.unistack.org/micro/v3/network/transport"
|
||||
"go.unistack.org/micro/v3/util/id"
|
||||
"go.unistack.org/micro/v4/network/transport"
|
||||
"go.unistack.org/micro/v4/util/id"
|
||||
)
|
||||
|
||||
type pool struct {
|
||||
|
@@ -7,8 +7,8 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"go.unistack.org/micro/v3/network/transport"
|
||||
"go.unistack.org/micro/v3/network/transport/memory"
|
||||
"go.unistack.org/micro/v4/network/transport"
|
||||
"go.unistack.org/micro/v4/network/transport/memory"
|
||||
)
|
||||
|
||||
func testPool(t *testing.T, size int, ttl time.Duration) {
|
||||
|
@@ -3,7 +3,7 @@ package pool
|
||||
import (
|
||||
"time"
|
||||
|
||||
"go.unistack.org/micro/v3/network/transport"
|
||||
"go.unistack.org/micro/v4/network/transport"
|
||||
)
|
||||
|
||||
// Options struct
|
||||
|
@@ -1,11 +1,11 @@
|
||||
// Package pool is a connection pool
|
||||
package pool // import "go.unistack.org/micro/v3/util/pool"
|
||||
package pool // import "go.unistack.org/micro/v4/util/pool"
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"go.unistack.org/micro/v3/network/transport"
|
||||
"go.unistack.org/micro/v4/network/transport"
|
||||
)
|
||||
|
||||
// Pool is an interface for connection pooling
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package rand // import "go.unistack.org/micro/v3/util/rand"
|
||||
package rand // import "go.unistack.org/micro/v4/util/rand"
|
||||
|
||||
import (
|
||||
crand "crypto/rand"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package reflect // import "go.unistack.org/micro/v3/util/reflect"
|
||||
package reflect // import "go.unistack.org/micro/v4/util/reflect"
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
@@ -6,7 +6,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
rutil "go.unistack.org/micro/v3/util/reflect"
|
||||
rutil "go.unistack.org/micro/v4/util/reflect"
|
||||
)
|
||||
|
||||
func TestStructFields(t *testing.T) {
|
||||
|
@@ -1,11 +1,11 @@
|
||||
package register // import "go.unistack.org/micro/v3/util/register"
|
||||
package register // import "go.unistack.org/micro/v4/util/register"
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"go.unistack.org/micro/v3/register"
|
||||
jitter "go.unistack.org/micro/v3/util/jitter"
|
||||
"go.unistack.org/micro/v4/register"
|
||||
jitter "go.unistack.org/micro/v4/util/jitter"
|
||||
)
|
||||
|
||||
func addNodes(old, neu []*register.Node) []*register.Node {
|
||||
|
@@ -4,7 +4,7 @@ import (
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"go.unistack.org/micro/v3/register"
|
||||
"go.unistack.org/micro/v4/register"
|
||||
)
|
||||
|
||||
func TestRemove(t *testing.T) {
|
||||
|
@@ -1,11 +1,11 @@
|
||||
// Package ring provides a simple ring buffer for storing local data
|
||||
package ring // import "go.unistack.org/micro/v3/util/ring"
|
||||
package ring // import "go.unistack.org/micro/v4/util/ring"
|
||||
|
||||
import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"go.unistack.org/micro/v3/util/id"
|
||||
"go.unistack.org/micro/v4/util/id"
|
||||
)
|
||||
|
||||
// Buffer is ring buffer
|
||||
|
@@ -1,10 +1,10 @@
|
||||
// Package socket provides a pseudo socket
|
||||
package socket // import "go.unistack.org/micro/v3/util/socket"
|
||||
package socket // import "go.unistack.org/micro/v4/util/socket"
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
"go.unistack.org/micro/v3/network/transport"
|
||||
"go.unistack.org/micro/v4/network/transport"
|
||||
)
|
||||
|
||||
// Socket is our pseudo socket for transport.Socket
|
||||
|
@@ -1,14 +1,14 @@
|
||||
// Package stream encapsulates streams within streams
|
||||
package stream // import "go.unistack.org/micro/v3/util/stream"
|
||||
package stream // import "go.unistack.org/micro/v4/util/stream"
|
||||
|
||||
import (
|
||||
"context"
|
||||
"sync"
|
||||
|
||||
"go.unistack.org/micro/v3/client"
|
||||
"go.unistack.org/micro/v3/codec"
|
||||
"go.unistack.org/micro/v3/metadata"
|
||||
"go.unistack.org/micro/v3/server"
|
||||
"go.unistack.org/micro/v4/client"
|
||||
"go.unistack.org/micro/v4/codec"
|
||||
"go.unistack.org/micro/v4/metadata"
|
||||
"go.unistack.org/micro/v4/server"
|
||||
)
|
||||
|
||||
// Stream interface
|
||||
|
25
util/test/sqlmock_test.go
Normal file
25
util/test/sqlmock_test.go
Normal file
@@ -0,0 +1,25 @@
|
||||
package test
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/DATA-DOG/go-sqlmock"
|
||||
)
|
||||
|
||||
func Test_NewSQLRowsFromFile(t *testing.T) {
|
||||
db, c, err := sqlmock.New()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
rows, err := NewSQLRowsFromFile(c, "testdata/Call.csv")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !strings.Contains(fmt.Sprintf("%#+v", rows), `cols:[]string{"DepAgrId", "DepAgrNum", "DepAgrDate", "DepAgrCloseDate", "AccCur", "MainFinaccNum", "MainFinaccName", "MainFinaccId", "MainFinaccOpenDt", "DepAgrStatus", "MainFinaccBal", "DepartCode", "CardAccId"}`) {
|
||||
t.Fatal("invalid cols after import csv")
|
||||
}
|
||||
}
|
81
util/test/test.go
Normal file
81
util/test/test.go
Normal file
@@ -0,0 +1,81 @@
|
||||
package test
|
||||
|
||||
import (
|
||||
"encoding/csv"
|
||||
"errors"
|
||||
"os"
|
||||
"path"
|
||||
"strings"
|
||||
|
||||
"github.com/DATA-DOG/go-sqlmock"
|
||||
"go.unistack.org/micro/v4/client"
|
||||
"go.unistack.org/micro/v4/codec"
|
||||
)
|
||||
|
||||
var ErrUnknownContentType = errors.New("unknown content type")
|
||||
|
||||
type Extension struct {
|
||||
Ext []string
|
||||
}
|
||||
|
||||
var ExtToTypes = map[string][]string{
|
||||
"json": {"application/json", "application/grpc+json"},
|
||||
"yaml": {"application/yaml", "application/yml", "text/yaml", "text/yml"},
|
||||
"yml": {"application/yaml", "application/yml", "text/yaml", "text/yml"},
|
||||
"proto": {"application/grpc", "application/grpc+proto", "application/proto"},
|
||||
}
|
||||
|
||||
func NewRequestFromFile(c client.Client, reqfile string) (client.Request, error) {
|
||||
reqbuf, err := os.ReadFile(reqfile)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
endpoint := path.Base(path.Dir(reqfile))
|
||||
ext := path.Ext(reqfile)
|
||||
if len(ext) > 0 && ext[0] == '.' {
|
||||
ext = ext[1:]
|
||||
}
|
||||
|
||||
var ct string
|
||||
if cts, ok := ExtToTypes[ext]; ok {
|
||||
for _, t := range cts {
|
||||
if _, ok = c.Options().Codecs[t]; ok {
|
||||
ct = t
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ct == "" {
|
||||
return nil, ErrUnknownContentType
|
||||
}
|
||||
|
||||
req := c.NewRequest("test", endpoint, &codec.Frame{Data: reqbuf}, client.RequestContentType(ct))
|
||||
|
||||
return req, nil
|
||||
}
|
||||
|
||||
func NewSQLRowsFromFile(c sqlmock.Sqlmock, file string) (*sqlmock.Rows, error) {
|
||||
fp, err := os.Open(file)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer fp.Close()
|
||||
|
||||
r := csv.NewReader(fp)
|
||||
r.Comma = '\t'
|
||||
r.Comment = '#'
|
||||
|
||||
records, err := r.ReadAll()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
rows := c.NewRows(records[0])
|
||||
for idx := 1; idx < len(records); idx++ {
|
||||
rows.FromCSVString(strings.Join(records[idx], ";"))
|
||||
}
|
||||
|
||||
return rows, nil
|
||||
}
|
Reference in New Issue
Block a user