test

package
v3.11.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 5, 2021 License: Apache-2.0 Imports: 33 Imported by: 0

Documentation

Overview

Package test provides various testing utilities.

Index

Constants

View Source
const (

	// EUFrequencyPlanID is a European frequency plan for testing.
	EUFrequencyPlanID = "EU_863_870"

	// KRFrequencyPlanID is a Korean frequency plan for testing.
	KRFrequencyPlanID = "KR_920_923"

	// USFrequencyPlanID is a American frequency plan for testing.
	USFrequencyPlanID = "US_902_928_FSB_2"

	// ASAUFrequencyPlanID is an AS923 for Australia frequency plan for testing.
	ASAUFrequencyPlanID = "AS_923_925_AU"

	// ExampleFrequencyPlanID is an example frequency plan.
	ExampleFrequencyPlanID = "EXAMPLE"
)
View Source
const (
	DefaultApplicationID = "test-app-id"
	DefaultDeviceID      = "test-dev-id"

	DefaultRootKeyID = "test-root-key-id"
)

Variables

View Source
var (
	// FrequencyPlansFetcher fetches frequency plans from memory.
	FrequencyPlansFetcher = fetch.NewMemFetcher(map[string][]byte{
		"frequency-plans.yml":  []byte(frequencyPlansDescription),
		"EU_863_870.yml":       []byte(euFrequencyPlan),
		"KR_920_923.yml":       []byte(krFrequencyPlan),
		"US_902_928_FSB_2.yml": []byte(usFrequencyPlan),
		"AS_923_925_AU.yml":    []byte(asAUFrequencyPlan),
		"EXAMPLE.yml":          []byte(exampleFrequencyPlan),
	})

	FrequencyPlanStore = frequencyplans.NewStore(FrequencyPlansFetcher)
)
View Source
var (
	ErrInternal = errors.DefineInternal("test_internal", "test error")
	ErrNotFound = errors.DefineNotFound("test_not_found", "test error")

	DefaultApplicationIdentifiers = ttnpb.ApplicationIdentifiers{
		ApplicationID: DefaultApplicationID,
	}

	DefaultJoinEUI = types.EUI64{0x42, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
	DefaultDevEUI  = types.EUI64{0x42, 0x42, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}

	DefaultAppKey = types.AES128Key{0x42, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
	DefaultNwkKey = types.AES128Key{0x42, 0x42, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}

	DefaultJoinNonce = types.JoinNonce{0x42, 0xff, 0xff}
	DefaultDevNonce  = types.DevNonce{0x42, 0xff}

	DefaultSessionKeyID = []byte("test-session-key-id")

	DefaultKEK      = types.AES128Key{0x42, 0x42, 0x42, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
	DefaultKEKLabel = "test-kek-label"

	DefaultAppSKey     = crypto.DeriveAppSKey(DefaultNwkKey, DefaultJoinNonce, DefaultJoinEUI, DefaultDevNonce)
	DefaultFNwkSIntKey = crypto.DeriveFNwkSIntKey(DefaultNwkKey, DefaultJoinNonce, DefaultJoinEUI, DefaultDevNonce)
	DefaultNwkSEncKey  = crypto.DeriveNwkSEncKey(DefaultNwkKey, DefaultJoinNonce, DefaultJoinEUI, DefaultDevNonce)
	DefaultSNwkSIntKey = crypto.DeriveSNwkSIntKey(DefaultNwkKey, DefaultJoinNonce, DefaultJoinEUI, DefaultDevNonce)

	DefaultAppSKeyEnvelope = &ttnpb.KeyEnvelope{
		Key: &DefaultAppSKey,
	}
	DefaultFNwkSIntKeyEnvelope = &ttnpb.KeyEnvelope{
		Key: &DefaultFNwkSIntKey,
	}
	DefaultNwkSEncKeyEnvelope = &ttnpb.KeyEnvelope{
		Key: &DefaultNwkSEncKey,
	}
	DefaultSNwkSIntKeyEnvelope = &ttnpb.KeyEnvelope{
		Key: &DefaultSNwkSIntKey,
	}

	DefaultAppSKeyEnvelopeWrapped     = Must(cryptoutil.WrapAES128KeyWithKEK(Context(), DefaultAppSKey, DefaultKEKLabel, DefaultKEK)).(*ttnpb.KeyEnvelope)
	DefaultFNwkSIntKeyEnvelopeWrapped = Must(cryptoutil.WrapAES128KeyWithKEK(Context(), DefaultFNwkSIntKey, DefaultKEKLabel, DefaultKEK)).(*ttnpb.KeyEnvelope)
	DefaultNwkSEncKeyEnvelopeWrapped  = Must(cryptoutil.WrapAES128KeyWithKEK(Context(), DefaultNwkSEncKey, DefaultKEKLabel, DefaultKEK)).(*ttnpb.KeyEnvelope)
	DefaultSNwkSIntKeyEnvelopeWrapped = Must(cryptoutil.WrapAES128KeyWithKEK(Context(), DefaultSNwkSIntKey, DefaultKEKLabel, DefaultKEK)).(*ttnpb.KeyEnvelope)

	DefaultAppSKeyWrapped     = DefaultAppSKeyEnvelopeWrapped.EncryptedKey
	DefaultFNwkSIntKeyWrapped = DefaultFNwkSIntKeyEnvelopeWrapped.EncryptedKey
	DefaultNwkSEncKeyWrapped  = DefaultNwkSEncKeyEnvelopeWrapped.EncryptedKey
	DefaultSNwkSIntKeyWrapped = DefaultSNwkSIntKeyEnvelopeWrapped.EncryptedKey

	DefaultNetID   = Must(types.NewNetID(2, []byte{0x00, 0x42, 0xff})).(types.NetID)
	DefaultDevAddr = Must(types.NewDevAddr(DefaultNetID, []byte{0x00, 0x02, 0xff, 0xff})).(types.DevAddr)

	DefaultLegacyAppSKey = crypto.DeriveLegacyAppSKey(DefaultNwkKey, DefaultJoinNonce, DefaultNetID, DefaultDevNonce)
	DefaultLegacyNwkSKey = crypto.DeriveLegacyNwkSKey(DefaultNwkKey, DefaultJoinNonce, DefaultNetID, DefaultDevNonce)

	DefaultMACVersion      = ttnpb.MAC_V1_1
	DefaultPHYVersion      = ttnpb.PHY_V1_1_REV_B
	DefaultFrequencyPlanID = EUFrequencyPlanID
)
View Source
var DefaultContext = context.Background()

DefaultContext is the default context.

View Source
var Delay = time.Millisecond * func() time.Duration {
	env := os.Getenv("TEST_SLOWDOWN")
	if env == "" {
		return 1
	}

	v, err := strconv.Atoi(env)
	if err != nil {
		return 1
	}
	return time.Duration(v)
}()

Delay is the value, which can be used to slowdown the execution of time-dependent tests. You can assume, that most function calls will return in at most Delay time. It can(and should) be used to construct other time variables used in testing. Value may vary from machine to machine and can be overridden by TEST_SLOWDOWN environment variable.

View Source
var EventEqual = MakeEventEqual(EventEqualConfig{
	Identifiers:    true,
	Data:           true,
	CorrelationIDs: true,
	Origin:         true,
	Context:        true,
	Visibility:     true,
	RemoteIP:       true,
	UserAgent:      true,
})

Randy is global rand, which is safe for concurrent use.

Functions

func AllTrue added in v3.9.0

func AllTrue(vs ...bool) bool

AllTrue returns true iff v == true for each v in vs.

func AssertClusterAuthRequest

func AssertClusterAuthRequest(ctx context.Context, reqCh <-chan ClusterAuthRequest, resp grpc.CallOption) bool

func AssertClusterGetPeerRequest

func AssertClusterGetPeerRequest(ctx context.Context, reqCh <-chan ClusterGetPeerRequest, assert func(ctx, reqCtx context.Context, role ttnpb.ClusterRole, ids ttnpb.Identifiers) (ClusterGetPeerResponse, bool)) bool

func AssertEventPubSubPublishRequest

func AssertEventPubSubPublishRequest(ctx context.Context, reqCh <-chan EventPubSubPublishRequest, assert func(ev events.Event) bool) bool

func AssertEventPubSubPublishRequests

func AssertEventPubSubPublishRequests(ctx context.Context, reqCh <-chan EventPubSubPublishRequest, n int, assert func(evs ...events.Event) bool) bool

func AssertListRightsRequest

func AssertListRightsRequest(ctx context.Context, reqCh <-chan ApplicationAccessListRightsRequest, assert func(ctx, reqCtx context.Context, ids ttnpb.Identifiers) bool, rights ...ttnpb.Right) bool

func ClusterJoinNilFunc

func ClusterJoinNilFunc() error

func CollectEvents

func CollectEvents(f func()) []events.Event

CollectEvents collects events published by f.

func Context

func Context() context.Context

Context returns DefaultContext.

func ContextWithCounterRef added in v3.10.5

func ContextWithCounterRef(ctx context.Context, key interface{}, i *int64) context.Context

ContextWithCounterRef adds the given counter to ctx under key specified.

func ContextWithTB added in v3.9.0

func ContextWithTB(ctx context.Context, tb testing.TB) context.Context

ContextWithTB saves the testing.TB in the context.

func DiffEqual

func DiffEqual(x, y interface{}) bool

DiffEqual returns true iff pretty.Diff of x and y is empty and false otherwise.

func EventBuilderEqual added in v3.9.0

func EventBuilderEqual(a, b events.Builder) bool

func FormatError added in v3.10.0

func FormatError(err error) string

func FrequencyPlan added in v3.11.0

func FrequencyPlan(id string) *frequencyplans.FrequencyPlan

func GetLogger

func GetLogger(t testing.TB) log.Stack

GetLogger returns a logger for tests.

func IncrementContextCounter added in v3.10.5

func IncrementContextCounter(ctx context.Context, key interface{}, v int64) (int64, bool)

IncrementContextCounter increments the counter in the context.

func IsProperSubsetOfElements

func IsProperSubsetOfElements(eq interface{}, sub, super interface{}) bool

IsProperSubsetOfElements is like IsSubsetOfElements, but checks for proper subset.

func IsSubsetOfElements

func IsSubsetOfElements(eq interface{}, sub, super interface{}) bool

IsSubsetOfElements returns true iff a multiset sub represents a subset of multiset super under equality given by eq. Signature of eq must be func(A, B) bool, where A, B are types, which elements of sub and super can be assigned to respectively. It panics if either sub or super is not one of: 1. string, slice, array or map kind 2. value, which implements Ranger interface(e.g. sync.Map) NOTE: Map key values are not taken into account.

func JoinStringsMap added in v3.10.0

func JoinStringsMap(f func(k interface{}, v interface{}) string, sep string, xs interface{}) string

JoinStringsMap maps contents of xs to strings using f and joins them with sep.

func JoinStringsf added in v3.10.0

func JoinStringsf(format, sep string, withKeys bool, xs interface{}) string

JoinStringsf formats contents of xs using format and joins them with sep.

func MakeClusterAuthChFunc

func MakeClusterAuthChFunc(reqCh chan<- ClusterAuthRequest) func() grpc.CallOption

func MakeClusterGetPeerChFunc

func MakeClusterGetPeerChFunc(reqCh chan<- ClusterGetPeerRequest) func(context.Context, ttnpb.ClusterRole, ttnpb.Identifiers) (cluster.Peer, error)

func MakeClusterJoinChFunc

func MakeClusterJoinChFunc(reqCh chan<- ClusterJoinRequest) func() error

func MakeEndDevice added in v3.11.0

func MakeEndDevice(opts ...EndDeviceOption) *ttnpb.EndDevice

MakeEndDevice constructs a new ttnpb.EndDevice.

func MakeEndDeviceIdentifiers added in v3.11.0

func MakeEndDeviceIdentifiers(opts ...EndDeviceIdentifiersOption) *ttnpb.EndDeviceIdentifiers

MakeEndDeviceIdentifiers constructs a new ttnpb.EndDeviceIdentifiers.

func MakeEventEqual added in v3.9.2

func MakeEventEqual(conf EventEqualConfig) func(a, b events.Event) bool

func MakeEventPubSubPublishChFunc

func MakeEventPubSubPublishChFunc(reqCh chan<- EventPubSubPublishRequest) func(events.Event)

func MakeMACState added in v3.11.0

func MakeMACState(opts ...MACStateOption) *ttnpb.MACState

MakeMACState constructs a new ttnpb.MACState.

func MakeRootKeys added in v3.11.0

func MakeRootKeys(opts ...RootKeysOption) *ttnpb.RootKeys

MakeRootKeys constructs a new ttnpb.RootKeys.

func MakeSession added in v3.11.0

func MakeSession(opts ...SessionOption) *ttnpb.Session

MakeSession constructs a new ttnpb.Session.

func MakeSessionKeys added in v3.11.0

func MakeSessionKeys(opts ...SessionKeysOption) *ttnpb.SessionKeys

MakeSessionKeys constructs a new ttnpb.SessionKeys.

func MapKeys

func MapKeys(m interface{}) []interface{}

MapKeys returns the keys of a map as a slice.

func Must

func Must(v interface{}, err error) interface{}

Must returns v if err is nil and panics otherwise.

func MustIncrementContextCounter added in v3.10.5

func MustIncrementContextCounter(ctx context.Context, key interface{}, v int64) int64

MustIncrementContextCounter increments the counter in the context, and panics if it is not present in the context.

func MustMultiple

func MustMultiple(vs ...interface{}) []interface{}

MustMultiple is like Must, but operates on arbitrary amount of values. It assumes that last value in vs is an error. It panics if len(vs) == 0.

func MustNewTBFromContext added in v3.9.1

func MustNewTBFromContext(ctx context.Context) (testing.TB, *assertions.Assertion)

func MustNewTFromContext added in v3.9.1

func MustNewTFromContext(ctx context.Context) (*testing.T, *assertions.Assertion)

func MustTBFromContext added in v3.9.0

func MustTBFromContext(ctx context.Context) testing.TB

MustTBFromContext returns the testing.TB from the context, and panics if it was not saved in the context.

func MustTFromContext

func MustTFromContext(ctx context.Context) *testing.T

MustTFromContext returns the *testing.T from the context, and panics if it was not saved in the context.

func New added in v3.9.1

func NewRedis

func NewRedis(ctx context.Context, namespace ...string) (*ttnredis.Client, func())

NewRedis returns a new namespaced *redis.Client ready to use and a flush function, which should be called after the client is not needed anymore to clean the namespace. NewRedis respects TEST_REDIS, REDIS_ADDRESS and REDIS_DB environment variables. Client returned logs commands executed.

func NewTBFromContext added in v3.9.1

func NewTBFromContext(ctx context.Context) (testing.TB, *assertions.Assertion, bool)

func NewTFromContext added in v3.9.1

func NewTFromContext(ctx context.Context) (*testing.T, *assertions.Assertion, bool)

func NewWithContext added in v3.9.1

func NewWithContext(ctx context.Context, tb testing.TB) (*assertions.Assertion, context.Context)

func RedirectEvents

func RedirectEvents(ch chan events.Event) func()

RedirectEvents redirects the published events to the provided channel until the returned function is called.

func RunSubtest added in v3.9.2

func RunSubtest(t *testing.T, conf SubtestConfig) bool

func RunSubtestFromContext added in v3.9.2

func RunSubtestFromContext(ctx context.Context, conf SubtestConfig) bool

func RunTest added in v3.9.2

func RunTest(t *testing.T, conf TestConfig)

func SameElements

func SameElements(eq interface{}, xs, ys interface{}) bool

SameElements returns true iff IsSubsetOfElements(eq, xs, ys) returns true and IsSubsetOfElements(eq, ys, xs) returns true and false otherwise.

func SetDefaultEventsPubSub

func SetDefaultEventsPubSub(ps events.PubSub) func()

SetDefaultEventsPubSub calls events.SetDefaultPubSub and returns a function that can be used to undo the action. Following calls to SetDefaultEventsPubSub will block until undo function is called.

func StringEqual

func StringEqual(x, y string) bool

StringEqual returns true iff strings x and y are equal and false otherwise.

func TBFromContext added in v3.9.0

func TBFromContext(ctx context.Context) (testing.TB, bool)

TBFromContext returns the testing.TB saved using ContextWithTB from the context.

func TFromContext

func TFromContext(ctx context.Context) (*testing.T, bool)

TFromContext returns the *testing.T saved using ContextWithTB from the context.

func WaitContext

func WaitContext(ctx context.Context, f func()) bool

WaitContext returns true if f returns before <-ctx.Done() or false otherwise. An example of a f, for which this is useful would be Wait method of sync.WaitGroup. Note, this function leaks a goroutine if f never returns.

func WaitDeadline

func WaitDeadline(t time.Time, f func()) bool

WaitDeadline returns WaitTimeout(time.Until(t), f).

func WaitEvent

func WaitEvent(ctx context.Context, ch chan events.Event, name string) bool

WaitEvent waits for a specific event to be sent to the channel.

func WaitTimeout

func WaitTimeout(d time.Duration, f func()) bool

WaitTimeout returns true if f returns after at most d or false otherwise. An example of a f, for which this is useful would be Wait method of sync.WaitGroup. Note, this function leaks a goroutine if f never returns.

Types

type ApplicationAccessListRightsRequest

type ApplicationAccessListRightsRequest struct {
	Context  context.Context
	Message  *ttnpb.ApplicationIdentifiers
	Response chan<- ApplicationAccessListRightsResponse
}

type ApplicationAccessListRightsResponse

type ApplicationAccessListRightsResponse struct {
	Response *ttnpb.Rights
	Error    error
}

type ClusterAuthRequest

type ClusterAuthRequest struct {
	Response chan<- grpc.CallOption
}

type ClusterGetPeerRequest

type ClusterGetPeerRequest struct {
	Context     context.Context
	Role        ttnpb.ClusterRole
	Identifiers ttnpb.Identifiers
	Response    chan<- ClusterGetPeerResponse
}

type ClusterGetPeerResponse

type ClusterGetPeerResponse struct {
	Peer  cluster.Peer
	Error error
}

type ClusterJoinRequest

type ClusterJoinRequest struct {
	Response chan<- error
}

type EndDeviceIdentifiersOption added in v3.11.0

type EndDeviceIdentifiersOption func(ttnpb.EndDeviceIdentifiers) ttnpb.EndDeviceIdentifiers

EndDeviceIdentifiersOption transforms ttnpb.EndDeviceIdentifiers and returns it. Implemetations must be pure functions with no side-effects.

func (EndDeviceIdentifiersOption) Compose added in v3.11.0

Compose returns a functional composition of f and opts as a singular EndDeviceIdentifiersOption.

type EndDeviceIdentifiersOptionNamespace added in v3.11.0

type EndDeviceIdentifiersOptionNamespace struct{}

EndDeviceIdentifiersOptionNamespace represents the namespace, on which various EndDeviceIdentifiersOption are defined.

var EndDeviceIdentifiersOptions EndDeviceIdentifiersOptionNamespace

EndDeviceIdentifiersOptions is namespace containing ttnpb.EndDeviceIdentifiers options.

func (EndDeviceIdentifiersOptionNamespace) Compose added in v3.11.0

Compose returns a functional composition of opts as a singular EndDeviceIdentifiersOption.

func (EndDeviceIdentifiersOptionNamespace) WithApplicationIdentifiers added in v3.11.0

WithApplicationIdentifiers returns a EndDeviceIdentifiersOption, which returns a copy of ttnpb.EndDeviceIdentifiers with ApplicationIdentifiers set to v.

func (EndDeviceIdentifiersOptionNamespace) WithDefaultDevEUI added in v3.11.0

func (EndDeviceIdentifiersOptionNamespace) WithDefaultJoinEUI added in v3.11.0

func (EndDeviceIdentifiersOptionNamespace) WithDevAddr added in v3.11.0

WithDevAddr returns a EndDeviceIdentifiersOption, which returns a copy of ttnpb.EndDeviceIdentifiers with DevAddr set to v.

func (EndDeviceIdentifiersOptionNamespace) WithDevEUI added in v3.11.0

WithDevEUI returns a EndDeviceIdentifiersOption, which returns a copy of ttnpb.EndDeviceIdentifiers with DevEUI set to v.

func (EndDeviceIdentifiersOptionNamespace) WithDeviceID added in v3.11.0

WithDeviceID returns a EndDeviceIdentifiersOption, which returns a copy of ttnpb.EndDeviceIdentifiers with DeviceID set to v.

func (EndDeviceIdentifiersOptionNamespace) WithJoinEUI added in v3.11.0

WithJoinEUI returns a EndDeviceIdentifiersOption, which returns a copy of ttnpb.EndDeviceIdentifiers with JoinEUI set to v.

type EndDeviceOption added in v3.11.0

type EndDeviceOption func(ttnpb.EndDevice) ttnpb.EndDevice

EndDeviceOption transforms ttnpb.EndDevice and returns it. Implemetations must be pure functions with no side-effects.

func (EndDeviceOption) Compose added in v3.11.0

func (f EndDeviceOption) Compose(opts ...EndDeviceOption) EndDeviceOption

Compose returns a functional composition of f and opts as a singular EndDeviceOption.

type EndDeviceOptionNamespace added in v3.11.0

type EndDeviceOptionNamespace struct{}

EndDeviceOptionNamespace represents the namespace, on which various EndDeviceOption are defined.

var EndDeviceOptions EndDeviceOptionNamespace

EndDeviceOptions is namespace containing ttnpb.EndDevice options.

func (EndDeviceOptionNamespace) Compose added in v3.11.0

Compose returns a functional composition of opts as a singular EndDeviceOption.

func (EndDeviceOptionNamespace) WithApplicationServerAddress added in v3.11.0

func (EndDeviceOptionNamespace) WithApplicationServerAddress(v string) EndDeviceOption

WithApplicationServerAddress returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with ApplicationServerAddress set to v.

func (EndDeviceOptionNamespace) WithApplicationServerID added in v3.11.0

func (EndDeviceOptionNamespace) WithApplicationServerID(v string) EndDeviceOption

WithApplicationServerID returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with ApplicationServerID set to v.

func (EndDeviceOptionNamespace) WithApplicationServerKEKLabel added in v3.11.0

func (EndDeviceOptionNamespace) WithApplicationServerKEKLabel(v string) EndDeviceOption

WithApplicationServerKEKLabel returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with ApplicationServerKEKLabel set to v.

func (EndDeviceOptionNamespace) WithAttributes added in v3.11.0

func (EndDeviceOptionNamespace) WithAttributes(v map[string]string) EndDeviceOption

WithAttributes returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with Attributes set to v.

func (EndDeviceOptionNamespace) WithBatteryPercentage added in v3.11.0

func (EndDeviceOptionNamespace) WithBatteryPercentage(v *pbtypes.FloatValue) EndDeviceOption

WithBatteryPercentage returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with BatteryPercentage set to v.

func (EndDeviceOptionNamespace) WithClaimAuthenticationCode added in v3.11.0

WithClaimAuthenticationCode returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with ClaimAuthenticationCode set to v.

func (EndDeviceOptionNamespace) WithCreatedAt added in v3.11.0

WithCreatedAt returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with CreatedAt set to v.

func (EndDeviceOptionNamespace) WithDefaultDevEUI added in v3.11.0

func (o EndDeviceOptionNamespace) WithDefaultDevEUI() EndDeviceOption

func (EndDeviceOptionNamespace) WithDefaultFrequencyPlanID added in v3.11.0

func (o EndDeviceOptionNamespace) WithDefaultFrequencyPlanID() EndDeviceOption

func (EndDeviceOptionNamespace) WithDefaultJoinEUI added in v3.11.0

func (o EndDeviceOptionNamespace) WithDefaultJoinEUI() EndDeviceOption

func (EndDeviceOptionNamespace) WithDefaultLoRaWANPHYVersion added in v3.11.0

func (o EndDeviceOptionNamespace) WithDefaultLoRaWANPHYVersion() EndDeviceOption

func (EndDeviceOptionNamespace) WithDefaultLoRaWANVersion added in v3.11.0

func (o EndDeviceOptionNamespace) WithDefaultLoRaWANVersion() EndDeviceOption

func (EndDeviceOptionNamespace) WithDescription added in v3.11.0

func (EndDeviceOptionNamespace) WithDescription(v string) EndDeviceOption

WithDescription returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with Description set to v.

func (EndDeviceOptionNamespace) WithDevEUI added in v3.11.0

func (EndDeviceOptionNamespace) WithDownlinkMargin added in v3.11.0

func (EndDeviceOptionNamespace) WithDownlinkMargin(v int32) EndDeviceOption

WithDownlinkMargin returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with DownlinkMargin set to v.

func (EndDeviceOptionNamespace) WithEndDeviceIdentifiers added in v3.11.0

WithEndDeviceIdentifiers returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with EndDeviceIdentifiers set to v.

func (EndDeviceOptionNamespace) WithEndDeviceIdentifiersOptions added in v3.11.0

func (o EndDeviceOptionNamespace) WithEndDeviceIdentifiersOptions(opts ...EndDeviceIdentifiersOption) EndDeviceOption

func (EndDeviceOptionNamespace) WithFormatters added in v3.11.0

WithFormatters returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with Formatters set to v.

func (EndDeviceOptionNamespace) WithFrequencyPlanID added in v3.11.0

func (EndDeviceOptionNamespace) WithFrequencyPlanID(v string) EndDeviceOption

WithFrequencyPlanID returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with FrequencyPlanID set to v.

func (EndDeviceOptionNamespace) WithJoinEUI added in v3.11.0

func (EndDeviceOptionNamespace) WithJoinServerAddress added in v3.11.0

func (EndDeviceOptionNamespace) WithJoinServerAddress(v string) EndDeviceOption

WithJoinServerAddress returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with JoinServerAddress set to v.

func (EndDeviceOptionNamespace) WithLastDevNonce added in v3.11.0

func (EndDeviceOptionNamespace) WithLastDevNonce(v uint32) EndDeviceOption

WithLastDevNonce returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with LastDevNonce set to v.

func (EndDeviceOptionNamespace) WithLastDevStatusReceivedAt added in v3.11.0

func (EndDeviceOptionNamespace) WithLastDevStatusReceivedAt(v *time.Time) EndDeviceOption

WithLastDevStatusReceivedAt returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with LastDevStatusReceivedAt set to v.

func (EndDeviceOptionNamespace) WithLastJoinNonce added in v3.11.0

func (EndDeviceOptionNamespace) WithLastJoinNonce(v uint32) EndDeviceOption

WithLastJoinNonce returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with LastJoinNonce set to v.

func (EndDeviceOptionNamespace) WithLastRJCount0 added in v3.11.0

func (EndDeviceOptionNamespace) WithLastRJCount0(v uint32) EndDeviceOption

WithLastRJCount0 returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with LastRJCount0 set to v.

func (EndDeviceOptionNamespace) WithLastRJCount1 added in v3.11.0

func (EndDeviceOptionNamespace) WithLastRJCount1(v uint32) EndDeviceOption

WithLastRJCount1 returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with LastRJCount1 set to v.

func (EndDeviceOptionNamespace) WithLoRaWANPHYVersion added in v3.11.0

func (EndDeviceOptionNamespace) WithLoRaWANPHYVersion(v ttnpb.PHYVersion) EndDeviceOption

WithLoRaWANPHYVersion returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with LoRaWANPHYVersion set to v.

func (EndDeviceOptionNamespace) WithLoRaWANVersion added in v3.11.0

WithLoRaWANVersion returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with LoRaWANVersion set to v.

func (EndDeviceOptionNamespace) WithLocations added in v3.11.0

WithLocations returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with Locations set to v.

func (EndDeviceOptionNamespace) WithMACSettings added in v3.11.0

WithMACSettings returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with MACSettings set to v.

func (EndDeviceOptionNamespace) WithMACState added in v3.11.0

WithMACState returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with MACState set to v.

func (EndDeviceOptionNamespace) WithMaxFrequency added in v3.11.0

func (EndDeviceOptionNamespace) WithMaxFrequency(v uint64) EndDeviceOption

WithMaxFrequency returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with MaxFrequency set to v.

func (EndDeviceOptionNamespace) WithMinFrequency added in v3.11.0

func (EndDeviceOptionNamespace) WithMinFrequency(v uint64) EndDeviceOption

WithMinFrequency returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with MinFrequency set to v.

func (EndDeviceOptionNamespace) WithMulticast added in v3.11.0

WithMulticast returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with Multicast set to v.

func (EndDeviceOptionNamespace) WithName added in v3.11.0

WithName returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with Name set to v.

func (EndDeviceOptionNamespace) WithNetID added in v3.11.0

WithNetID returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with NetID set to v.

func (EndDeviceOptionNamespace) WithNetworkServerAddress added in v3.11.0

func (EndDeviceOptionNamespace) WithNetworkServerAddress(v string) EndDeviceOption

WithNetworkServerAddress returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with NetworkServerAddress set to v.

func (EndDeviceOptionNamespace) WithNetworkServerKEKLabel added in v3.11.0

func (EndDeviceOptionNamespace) WithNetworkServerKEKLabel(v string) EndDeviceOption

WithNetworkServerKEKLabel returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with NetworkServerKEKLabel set to v.

func (EndDeviceOptionNamespace) WithPendingMACState added in v3.11.0

func (EndDeviceOptionNamespace) WithPendingMACState(v *ttnpb.MACState) EndDeviceOption

WithPendingMACState returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with PendingMACState set to v.

func (EndDeviceOptionNamespace) WithPendingSession added in v3.11.0

func (EndDeviceOptionNamespace) WithPendingSession(v *ttnpb.Session) EndDeviceOption

WithPendingSession returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with PendingSession set to v.

func (EndDeviceOptionNamespace) WithPicture added in v3.11.0

WithPicture returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with Picture set to v.

func (EndDeviceOptionNamespace) WithPowerState added in v3.11.0

WithPowerState returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with PowerState set to v.

func (EndDeviceOptionNamespace) WithProvisionerID added in v3.11.0

func (EndDeviceOptionNamespace) WithProvisionerID(v string) EndDeviceOption

WithProvisionerID returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with ProvisionerID set to v.

func (EndDeviceOptionNamespace) WithProvisioningData added in v3.11.0

func (EndDeviceOptionNamespace) WithProvisioningData(v *pbtypes.Struct) EndDeviceOption

WithProvisioningData returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with ProvisioningData set to v.

func (EndDeviceOptionNamespace) WithQueuedApplicationDownlinks(vs ...*ttnpb.ApplicationDownlink) EndDeviceOption

WithQueuedApplicationDownlinks returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with QueuedApplicationDownlinks set to vs.

func (EndDeviceOptionNamespace) WithResetsJoinNonces added in v3.11.0

func (EndDeviceOptionNamespace) WithResetsJoinNonces(v bool) EndDeviceOption

WithResetsJoinNonces returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with ResetsJoinNonces set to v.

func (EndDeviceOptionNamespace) WithRootKeys added in v3.11.0

WithRootKeys returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with RootKeys set to v.

func (EndDeviceOptionNamespace) WithServiceProfileID added in v3.11.0

func (EndDeviceOptionNamespace) WithServiceProfileID(v string) EndDeviceOption

WithServiceProfileID returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with ServiceProfileID set to v.

func (EndDeviceOptionNamespace) WithSession added in v3.11.0

WithSession returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with Session set to v.

func (EndDeviceOptionNamespace) WithSkipPayloadCrypto added in v3.11.0

func (EndDeviceOptionNamespace) WithSkipPayloadCrypto(v bool) EndDeviceOption

WithSkipPayloadCrypto returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with SkipPayloadCrypto set to v.

func (EndDeviceOptionNamespace) WithSkipPayloadCryptoOverride added in v3.11.0

func (EndDeviceOptionNamespace) WithSkipPayloadCryptoOverride(v *pbtypes.BoolValue) EndDeviceOption

WithSkipPayloadCryptoOverride returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with SkipPayloadCryptoOverride set to v.

func (EndDeviceOptionNamespace) WithSupportsClassB added in v3.11.0

func (EndDeviceOptionNamespace) WithSupportsClassB(v bool) EndDeviceOption

WithSupportsClassB returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with SupportsClassB set to v.

func (EndDeviceOptionNamespace) WithSupportsClassC added in v3.11.0

func (EndDeviceOptionNamespace) WithSupportsClassC(v bool) EndDeviceOption

WithSupportsClassC returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with SupportsClassC set to v.

func (EndDeviceOptionNamespace) WithSupportsJoin added in v3.11.0

func (EndDeviceOptionNamespace) WithSupportsJoin(v bool) EndDeviceOption

WithSupportsJoin returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with SupportsJoin set to v.

func (EndDeviceOptionNamespace) WithUpdatedAt added in v3.11.0

WithUpdatedAt returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with UpdatedAt set to v.

func (EndDeviceOptionNamespace) WithUsedDevNonces added in v3.11.0

func (EndDeviceOptionNamespace) WithUsedDevNonces(vs ...uint32) EndDeviceOption

WithUsedDevNonces returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with UsedDevNonces set to vs.

func (EndDeviceOptionNamespace) WithVersionIDs added in v3.11.0

WithVersionIDs returns a EndDeviceOption, which returns a copy of ttnpb.EndDevice with VersionIDs set to v.

type EventEqualConfig added in v3.9.2

type EventEqualConfig struct {
	UniqueID       bool
	Time           bool
	Identifiers    bool
	Data           bool
	CorrelationIDs bool
	Origin         bool
	Context        bool
	Visibility     bool
	Authentication bool
	RemoteIP       bool
	UserAgent      bool
}

type EventPubSubPublishRequest

type EventPubSubPublishRequest struct {
	Event    events.Event
	Response chan<- struct{}
}

type MACStateOption added in v3.11.0

type MACStateOption func(ttnpb.MACState) ttnpb.MACState

MACStateOption transforms ttnpb.MACState and returns it. Implemetations must be pure functions with no side-effects.

func (MACStateOption) Compose added in v3.11.0

func (f MACStateOption) Compose(opts ...MACStateOption) MACStateOption

Compose returns a functional composition of f and opts as a singular MACStateOption.

type MACStateOptionNamespace added in v3.11.0

type MACStateOptionNamespace struct{}

MACStateOptionNamespace represents the namespace, on which various MACStateOption are defined.

var MACStateOptions MACStateOptionNamespace

MACStateOptions is namespace containing ttnpb.MACState options.

func (MACStateOptionNamespace) Compose added in v3.11.0

Compose returns a functional composition of opts as a singular MACStateOption.

func (MACStateOptionNamespace) WithCurrentParameters added in v3.11.0

func (MACStateOptionNamespace) WithCurrentParameters(v ttnpb.MACParameters) MACStateOption

WithCurrentParameters returns a MACStateOption, which returns a copy of ttnpb.MACState with CurrentParameters set to v.

func (MACStateOptionNamespace) WithDesiredParameters added in v3.11.0

func (MACStateOptionNamespace) WithDesiredParameters(v ttnpb.MACParameters) MACStateOption

WithDesiredParameters returns a MACStateOption, which returns a copy of ttnpb.MACState with DesiredParameters set to v.

func (MACStateOptionNamespace) WithDeviceClass added in v3.11.0

WithDeviceClass returns a MACStateOption, which returns a copy of ttnpb.MACState with DeviceClass set to v.

func (MACStateOptionNamespace) WithLastADRChangeFCntUp added in v3.11.0

func (MACStateOptionNamespace) WithLastADRChangeFCntUp(v uint32) MACStateOption

WithLastADRChangeFCntUp returns a MACStateOption, which returns a copy of ttnpb.MACState with LastADRChangeFCntUp set to v.

func (MACStateOptionNamespace) WithLastConfirmedDownlinkAt added in v3.11.0

func (MACStateOptionNamespace) WithLastConfirmedDownlinkAt(v *time.Time) MACStateOption

WithLastConfirmedDownlinkAt returns a MACStateOption, which returns a copy of ttnpb.MACState with LastConfirmedDownlinkAt set to v.

func (MACStateOptionNamespace) WithLastDevStatusFCntUp added in v3.11.0

func (MACStateOptionNamespace) WithLastDevStatusFCntUp(v uint32) MACStateOption

WithLastDevStatusFCntUp returns a MACStateOption, which returns a copy of ttnpb.MACState with LastDevStatusFCntUp set to v.

func (MACStateOptionNamespace) WithLastDownlinkAt added in v3.11.0

func (MACStateOptionNamespace) WithLastDownlinkAt(v *time.Time) MACStateOption

WithLastDownlinkAt returns a MACStateOption, which returns a copy of ttnpb.MACState with LastDownlinkAt set to v.

func (MACStateOptionNamespace) WithLastNetworkInitiatedDownlinkAt added in v3.11.0

func (MACStateOptionNamespace) WithLastNetworkInitiatedDownlinkAt(v *time.Time) MACStateOption

WithLastNetworkInitiatedDownlinkAt returns a MACStateOption, which returns a copy of ttnpb.MACState with LastNetworkInitiatedDownlinkAt set to v.

func (MACStateOptionNamespace) WithLoRaWANVersion added in v3.11.0

WithLoRaWANVersion returns a MACStateOption, which returns a copy of ttnpb.MACState with LoRaWANVersion set to v.

func (MACStateOptionNamespace) WithPendingApplicationDownlink(v *ttnpb.ApplicationDownlink) MACStateOption

WithPendingApplicationDownlink returns a MACStateOption, which returns a copy of ttnpb.MACState with PendingApplicationDownlink set to v.

func (MACStateOptionNamespace) WithPendingJoinRequest added in v3.11.0

WithPendingJoinRequest returns a MACStateOption, which returns a copy of ttnpb.MACState with PendingJoinRequest set to v.

func (MACStateOptionNamespace) WithPendingRequests added in v3.11.0

func (MACStateOptionNamespace) WithPendingRequests(vs ...*ttnpb.MACCommand) MACStateOption

WithPendingRequests returns a MACStateOption, which returns a copy of ttnpb.MACState with PendingRequests set to vs.

func (MACStateOptionNamespace) WithPingSlotPeriodicity added in v3.11.0

WithPingSlotPeriodicity returns a MACStateOption, which returns a copy of ttnpb.MACState with PingSlotPeriodicity set to v.

func (MACStateOptionNamespace) WithQueuedJoinAccept added in v3.11.0

WithQueuedJoinAccept returns a MACStateOption, which returns a copy of ttnpb.MACState with QueuedJoinAccept set to v.

func (MACStateOptionNamespace) WithQueuedResponses added in v3.11.0

func (MACStateOptionNamespace) WithQueuedResponses(vs ...*ttnpb.MACCommand) MACStateOption

WithQueuedResponses returns a MACStateOption, which returns a copy of ttnpb.MACState with QueuedResponses set to vs.

func (MACStateOptionNamespace) WithRecentDownlinks(vs ...*ttnpb.DownlinkMessage) MACStateOption

WithRecentDownlinks returns a MACStateOption, which returns a copy of ttnpb.MACState with RecentDownlinks set to vs.

func (MACStateOptionNamespace) WithRecentUplinks(vs ...*ttnpb.UplinkMessage) MACStateOption

WithRecentUplinks returns a MACStateOption, which returns a copy of ttnpb.MACState with RecentUplinks set to vs.

func (MACStateOptionNamespace) WithRejectedADRDataRateIndexes added in v3.11.0

func (MACStateOptionNamespace) WithRejectedADRDataRateIndexes(vs ...ttnpb.DataRateIndex) MACStateOption

WithRejectedADRDataRateIndexes returns a MACStateOption, which returns a copy of ttnpb.MACState with RejectedADRDataRateIndexes set to vs.

func (MACStateOptionNamespace) WithRejectedADRTxPowerIndexes added in v3.11.0

func (MACStateOptionNamespace) WithRejectedADRTxPowerIndexes(vs ...uint32) MACStateOption

WithRejectedADRTxPowerIndexes returns a MACStateOption, which returns a copy of ttnpb.MACState with RejectedADRTxPowerIndexes set to vs.

func (MACStateOptionNamespace) WithRejectedDataRateRanges added in v3.11.0

func (MACStateOptionNamespace) WithRejectedDataRateRanges(v map[uint64]*ttnpb.MACState_DataRateRanges) MACStateOption

WithRejectedDataRateRanges returns a MACStateOption, which returns a copy of ttnpb.MACState with RejectedDataRateRanges set to v.

func (MACStateOptionNamespace) WithRejectedFrequencies added in v3.11.0

func (MACStateOptionNamespace) WithRejectedFrequencies(vs ...uint64) MACStateOption

WithRejectedFrequencies returns a MACStateOption, which returns a copy of ttnpb.MACState with RejectedFrequencies set to vs.

func (MACStateOptionNamespace) WithRxWindowsAvailable added in v3.11.0

func (MACStateOptionNamespace) WithRxWindowsAvailable(v bool) MACStateOption

WithRxWindowsAvailable returns a MACStateOption, which returns a copy of ttnpb.MACState with RxWindowsAvailable set to v.

type MockApplicationAccessServer

MockApplicationAccessServer is a mock ttnpb.ApplicationAccessServer used for testing.

func (MockApplicationAccessServer) CreateAPIKey

CreateAPIKey calls CreateAPIKeyFunc if set and panics otherwise.

func (MockApplicationAccessServer) GetAPIKey

GetAPIKey calls GetAPIKeyFunc if set and panics otherwise.

func (MockApplicationAccessServer) GetCollaborator

GetCollaborator calls GetCollaboratorFunc if set and panics otherwise.

func (MockApplicationAccessServer) ListAPIKeys

ListAPIKeys calls ListAPIKeysFunc if set and panics otherwise.

func (MockApplicationAccessServer) ListCollaborators

ListCollaborators calls ListCollaboratorsFunc if set and panics otherwise.

func (MockApplicationAccessServer) ListRights

ListRights calls ListRightsFunc if set and panics otherwise.

func (MockApplicationAccessServer) SetCollaborator

SetCollaborator calls SetCollaboratorFunc if set and panics otherwise.

func (MockApplicationAccessServer) UpdateAPIKey

UpdateAPIKey calls UpdateAPIKeyFunc if set and panics otherwise.

type MockClientStream

type MockClientStream struct {
	*MockStream
	HeaderFunc    func() (metadata.MD, error)
	TrailerFunc   func() metadata.MD
	CloseSendFunc func() error
}

MockClientStream is a mock grpc.ClientStream.

func (MockClientStream) CloseSend

func (m MockClientStream) CloseSend() error

CloseSend calls CloseSendFunc if set and panics otherwise.

func (MockClientStream) Header

func (m MockClientStream) Header() (metadata.MD, error)

Header calls HeaderFunc if set and panics otherwise.

func (MockClientStream) Trailer

func (m MockClientStream) Trailer() metadata.MD

Trailer calls TrailerFunc if set and panics otherwise.

type MockClock

type MockClock struct {
	// contains filtered or unexported fields
}

MockClock is used to mock time package functionality.

func NewMockClock

func NewMockClock(t time.Time) *MockClock

NewMockClock returns a new MockClock.

func (*MockClock) Add

func (m *MockClock) Add(d time.Duration) time.Time

Add adds d to clock and returns new clock time.

func (*MockClock) After

func (m *MockClock) After(d time.Duration) <-chan time.Time

After returns a channel, on which current time.Time will be sent once d passes.

func (*MockClock) Now

func (m *MockClock) Now() time.Time

Now returns current clock time.

func (*MockClock) Set

func (m *MockClock) Set(t time.Time) time.Time

Set sets clock to time t and returns old clock time.

type MockCluster

type MockCluster struct {
	JoinFunc               func() error
	LeaveFunc              func() error
	GetPeersFunc           func(ctx context.Context, role ttnpb.ClusterRole) ([]cluster.Peer, error)
	GetPeerFunc            func(ctx context.Context, role ttnpb.ClusterRole, ids ttnpb.Identifiers) (cluster.Peer, error)
	ClaimIDsFunc           func(ctx context.Context, ids ttnpb.Identifiers) error
	UnclaimIDsFunc         func(ctx context.Context, ids ttnpb.Identifiers) error
	TLSFunc                func() bool
	AuthFunc               func() grpc.CallOption
	WithVerifiedSourceFunc func(ctx context.Context) context.Context
}

MockCluster is a mock cluster.Cluster used for testing.

func (MockCluster) Auth

func (m MockCluster) Auth() grpc.CallOption

Auth calls AuthFunc if set and panics otherwise.

func (MockCluster) ClaimIDs

func (m MockCluster) ClaimIDs(ctx context.Context, ids ttnpb.Identifiers) error

ClaimIDs calls ClaimIDsFunc if set and panics otherwise.

func (MockCluster) GetPeer

GetPeer calls GetPeerFunc if set and panics otherwise.

func (MockCluster) GetPeerConn

func (m MockCluster) GetPeerConn(ctx context.Context, role ttnpb.ClusterRole, ids ttnpb.Identifiers) (*grpc.ClientConn, error)

GetPeerConn calls GetPeer and then Conn.

func (MockCluster) GetPeers

func (m MockCluster) GetPeers(ctx context.Context, role ttnpb.ClusterRole) ([]cluster.Peer, error)

GetPeers calls GetPeersFunc if set and panics otherwise.

func (MockCluster) Join

func (m MockCluster) Join() error

Join calls JoinFunc if set and panics otherwise.

func (MockCluster) Leave

func (m MockCluster) Leave() error

Leave calls LeaveFunc if set and panics otherwise.

func (MockCluster) TLS

func (m MockCluster) TLS() bool

TLS calls TLSFunc if set and panics otherwise.

func (MockCluster) UnclaimIDs

func (m MockCluster) UnclaimIDs(ctx context.Context, ids ttnpb.Identifiers) error

UnclaimIDs calls UnclaimIDsFunc if set and panics otherwise.

func (MockCluster) WithVerifiedSource

func (m MockCluster) WithVerifiedSource(ctx context.Context) context.Context

WithVerifiedSource calls WithVerifiedSourceFunc if set and panics otherwise.

type MockEventPubSub

type MockEventPubSub struct {
	PublishFunc     func(events.Event)
	SubscribeFunc   func(string, events.Handler) error
	UnsubscribeFunc func(string, events.Handler)
}

func (MockEventPubSub) Publish

func (m MockEventPubSub) Publish(ev events.Event)

Publish calls PublishFunc if set and panics otherwise.

func (MockEventPubSub) Subscribe

func (m MockEventPubSub) Subscribe(name string, hdl events.Handler) error

Subscribe calls SubscribeFunc if set and panics otherwise.

func (MockEventPubSub) Unsubscribe

func (m MockEventPubSub) Unsubscribe(name string, hdl events.Handler)

Unsubscribe calls UnsubscribeFunc if set and panics otherwise.

type MockPeer

type MockPeer struct {
	NameFunc    func() string
	ConnFunc    func() (*grpc.ClientConn, error)
	HasRoleFunc func(ttnpb.ClusterRole) bool
	RolesFunc   func() []ttnpb.ClusterRole
	TagsFunc    func() map[string]string
}

MockPeer is a mock cluster.Peer used for testing.

func NewGRPCServerPeer

func NewGRPCServerPeer(ctx context.Context, srv interface{}, registrators ...interface{}) (*MockPeer, error)

NewGRPCServerPeer creates a new MockPeer with ConnFunc, which always returns the same loopback connection to the server itself. srv is the implementation of the gRPC interface. registrators represents a slice of functions, which register the gRPC interface implementation at a gRPC server.

func (MockPeer) Conn

func (m MockPeer) Conn() (*grpc.ClientConn, error)

Conn calls ConnFunc if set and panics otherwise.

func (MockPeer) HasRole

func (m MockPeer) HasRole(r ttnpb.ClusterRole) bool

HasRole calls HasRoleFunc if set and panics otherwise.

func (MockPeer) Name

func (m MockPeer) Name() string

Name calls NameFunc if set and panics otherwise.

func (MockPeer) Roles

func (m MockPeer) Roles() []ttnpb.ClusterRole

Roles calls RolesFunc if set and panics otherwise.

func (MockPeer) Tags

func (m MockPeer) Tags() map[string]string

Tags calls TagsFunc if set and panics otherwise.

type MockProtoMarshaler

type MockProtoMarshaler struct {
	MarshalFunc func() ([]byte, error)
}

MockProtoMarshaler is a mock proto.Marshaler used for testing.

func (MockProtoMarshaler) Marshal

func (m MockProtoMarshaler) Marshal() ([]byte, error)

Marshal calls MarshalFunc if set and panics otherwise.

type MockProtoMessage

type MockProtoMessage struct {
	ResetFunc        func()
	StringFunc       func() string
	ProtoMessageFunc func()
}

MockProtoMessage is a mock proto.Message used for testing.

func (MockProtoMessage) ProtoMessage

func (m MockProtoMessage) ProtoMessage()

ProtoMessage calls ProtoMessageFunc if set and panics otherwise.

func (MockProtoMessage) Reset

func (m MockProtoMessage) Reset()

Reset calls ResetFunc if set and panics otherwise.

func (MockProtoMessage) String

func (m MockProtoMessage) String() string

String calls StringFunc if set and panics otherwise.

type MockProtoMessageMarshalUnmarshaler

type MockProtoMessageMarshalUnmarshaler struct {
	MockProtoMessage
	MockProtoMarshaler
	MockProtoUnmarshaler
}

MockProtoMessageMarshalUnmarshaler is a mock proto.Message, proto.Marshaler and proto.Unmarshaler used for testing.

type MockProtoUnmarshaler

type MockProtoUnmarshaler struct {
	UnmarshalFunc func([]byte) error
}

MockProtoUnmarshaler is a mock proto.Unmarshaler used for testing.

func (MockProtoUnmarshaler) Unmarshal

func (m MockProtoUnmarshaler) Unmarshal(b []byte) error

Unmarshal calls UnmarshalFunc if set and panics otherwise.

type MockServerStream

type MockServerStream struct {
	*MockStream
	SetHeaderFunc  func(md metadata.MD) error
	SendHeaderFunc func(md metadata.MD) error
	SetTrailerFunc func(md metadata.MD)
}

MockServerStream is a mock grpc.ServerStream.

func (MockServerStream) SendHeader

func (m MockServerStream) SendHeader(md metadata.MD) error

SendHeader calls SendHeaderFunc if set and panics otherwise.

func (MockServerStream) SetHeader

func (m MockServerStream) SetHeader(md metadata.MD) error

SetHeader calls SetHeaderFunc if set and panics otherwise.

func (MockServerStream) SetTrailer

func (m MockServerStream) SetTrailer(md metadata.MD)

SetTrailer calls SetTrailerFunc if set and panics otherwise.

type MockServerTransportStream

type MockServerTransportStream struct {
	*MockServerStream
	MethodFunc     func() string
	SetTrailerFunc func(metadata.MD) error
}

MockServerTransportStream is a mock grpc.ServerTransportStream.

func (MockServerTransportStream) Method

func (m MockServerTransportStream) Method() string

Method calls MethodFunc if set and panics otherwise.

func (MockServerTransportStream) SetTrailer

func (m MockServerTransportStream) SetTrailer(md metadata.MD) error

SetTrailer calls SetTrailerFunc if set and panics otherwise.

type MockStream

type MockStream struct {
	ContextFunc func() context.Context
	SendMsgFunc func(m interface{}) error
	RecvMsgFunc func(m interface{}) error
}

MockStream is a mock grpc.Stream.

func (MockStream) Context

func (m MockStream) Context() context.Context

Context calls ContextFunc if set and panics otherwise.

func (MockStream) RecvMsg

func (m MockStream) RecvMsg(msg interface{}) error

RecvMsg calls RecvMsgFunc if set and panics otherwise.

func (MockStream) SendMsg

func (m MockStream) SendMsg(msg interface{}) error

SendMsg calls SendMsgFunc if set and panics otherwise.

type Ranger

type Ranger interface {
	Range(f func(k, v interface{}) bool)
}

Ranger represents an entity, which can be ranged over(e.g. sync.Map).

func WrapRanger

func WrapRanger(v interface{}) (Ranger, bool)

WrapRanger returns Ranger, true if v can be ranged over and nil, false otherwise.

type RootKeysOption added in v3.11.0

type RootKeysOption func(ttnpb.RootKeys) ttnpb.RootKeys

RootKeysOption transforms ttnpb.RootKeys and returns it. Implemetations must be pure functions with no side-effects.

func (RootKeysOption) Compose added in v3.11.0

func (f RootKeysOption) Compose(opts ...RootKeysOption) RootKeysOption

Compose returns a functional composition of f and opts as a singular RootKeysOption.

type RootKeysOptionNamespace added in v3.11.0

type RootKeysOptionNamespace struct{}

RootKeysOptionNamespace represents the namespace, on which various RootKeysOption are defined.

var RootKeysOptions RootKeysOptionNamespace

RootKeysOptions is namespace containing ttnpb.RootKeys options.

func (RootKeysOptionNamespace) Compose added in v3.11.0

Compose returns a functional composition of opts as a singular RootKeysOption.

func (RootKeysOptionNamespace) WithAppKey added in v3.11.0

WithAppKey returns a RootKeysOption, which returns a copy of ttnpb.RootKeys with AppKey set to v.

func (RootKeysOptionNamespace) WithNwkKey added in v3.11.0

WithNwkKey returns a RootKeysOption, which returns a copy of ttnpb.RootKeys with NwkKey set to v.

func (RootKeysOptionNamespace) WithRootKeyID added in v3.11.0

WithRootKeyID returns a RootKeysOption, which returns a copy of ttnpb.RootKeys with RootKeyID set to v.

type SessionKeysOption added in v3.11.0

type SessionKeysOption func(ttnpb.SessionKeys) ttnpb.SessionKeys

SessionKeysOption transforms ttnpb.SessionKeys and returns it. Implemetations must be pure functions with no side-effects.

func (SessionKeysOption) Compose added in v3.11.0

Compose returns a functional composition of f and opts as a singular SessionKeysOption.

type SessionKeysOptionNamespace added in v3.11.0

type SessionKeysOptionNamespace struct{}

SessionKeysOptionNamespace represents the namespace, on which various SessionKeysOption are defined.

var SessionKeysOptions SessionKeysOptionNamespace

SessionKeysOptions is namespace containing ttnpb.SessionKeys options.

func (SessionKeysOptionNamespace) Compose added in v3.11.0

Compose returns a functional composition of opts as a singular SessionKeysOption.

func (SessionKeysOptionNamespace) WithAppSKey added in v3.11.0

WithAppSKey returns a SessionKeysOption, which returns a copy of ttnpb.SessionKeys with AppSKey set to v.

func (SessionKeysOptionNamespace) WithDefaultAppSKey added in v3.11.0

func (o SessionKeysOptionNamespace) WithDefaultAppSKey() SessionKeysOption

func (SessionKeysOptionNamespace) WithDefaultNwkKeys added in v3.11.0

func (o SessionKeysOptionNamespace) WithDefaultNwkKeys(macVersion ttnpb.MACVersion) SessionKeysOption

func (SessionKeysOptionNamespace) WithFNwkSIntKey added in v3.11.0

WithFNwkSIntKey returns a SessionKeysOption, which returns a copy of ttnpb.SessionKeys with FNwkSIntKey set to v.

func (SessionKeysOptionNamespace) WithNwkSEncKey added in v3.11.0

WithNwkSEncKey returns a SessionKeysOption, which returns a copy of ttnpb.SessionKeys with NwkSEncKey set to v.

func (SessionKeysOptionNamespace) WithSNwkSIntKey added in v3.11.0

WithSNwkSIntKey returns a SessionKeysOption, which returns a copy of ttnpb.SessionKeys with SNwkSIntKey set to v.

func (SessionKeysOptionNamespace) WithSessionKeyID added in v3.11.0

func (SessionKeysOptionNamespace) WithSessionKeyID(v []byte) SessionKeysOption

WithSessionKeyID returns a SessionKeysOption, which returns a copy of ttnpb.SessionKeys with SessionKeyID set to v.

type SessionOption added in v3.11.0

type SessionOption func(ttnpb.Session) ttnpb.Session

SessionOption transforms ttnpb.Session and returns it. Implemetations must be pure functions with no side-effects.

func (SessionOption) Compose added in v3.11.0

func (f SessionOption) Compose(opts ...SessionOption) SessionOption

Compose returns a functional composition of f and opts as a singular SessionOption.

type SessionOptionNamespace added in v3.11.0

type SessionOptionNamespace struct{}

SessionOptionNamespace represents the namespace, on which various SessionOption are defined.

var SessionOptions SessionOptionNamespace

SessionOptions is namespace containing ttnpb.Session options.

func (SessionOptionNamespace) Compose added in v3.11.0

Compose returns a functional composition of opts as a singular SessionOption.

func (SessionOptionNamespace) WithDefaultAppSKey added in v3.11.0

func (o SessionOptionNamespace) WithDefaultAppSKey() SessionOption

func (SessionOptionNamespace) WithDefaultNwkKeys added in v3.11.0

func (o SessionOptionNamespace) WithDefaultNwkKeys(macVersion ttnpb.MACVersion) SessionOption

func (SessionOptionNamespace) WithDevAddr added in v3.11.0

WithDevAddr returns a SessionOption, which returns a copy of ttnpb.Session with DevAddr set to v.

func (SessionOptionNamespace) WithLastAFCntDown added in v3.11.0

func (SessionOptionNamespace) WithLastAFCntDown(v uint32) SessionOption

WithLastAFCntDown returns a SessionOption, which returns a copy of ttnpb.Session with LastAFCntDown set to v.

func (SessionOptionNamespace) WithLastConfFCntDown added in v3.11.0

func (SessionOptionNamespace) WithLastConfFCntDown(v uint32) SessionOption

WithLastConfFCntDown returns a SessionOption, which returns a copy of ttnpb.Session with LastConfFCntDown set to v.

func (SessionOptionNamespace) WithLastFCntUp added in v3.11.0

func (SessionOptionNamespace) WithLastFCntUp(v uint32) SessionOption

WithLastFCntUp returns a SessionOption, which returns a copy of ttnpb.Session with LastFCntUp set to v.

func (SessionOptionNamespace) WithLastNFCntDown added in v3.11.0

func (SessionOptionNamespace) WithLastNFCntDown(v uint32) SessionOption

WithLastNFCntDown returns a SessionOption, which returns a copy of ttnpb.Session with LastNFCntDown set to v.

func (SessionOptionNamespace) WithQueuedApplicationDownlinks(vs ...*ttnpb.ApplicationDownlink) SessionOption

WithQueuedApplicationDownlinks returns a SessionOption, which returns a copy of ttnpb.Session with QueuedApplicationDownlinks set to vs.

func (SessionOptionNamespace) WithSessionKeys added in v3.11.0

WithSessionKeys returns a SessionOption, which returns a copy of ttnpb.Session with SessionKeys set to v.

func (SessionOptionNamespace) WithSessionKeysOptions added in v3.11.0

func (o SessionOptionNamespace) WithSessionKeysOptions(opts ...SessionKeysOption) SessionOption

func (SessionOptionNamespace) WithStartedAt added in v3.11.0

func (SessionOptionNamespace) WithStartedAt(v time.Time) SessionOption

WithStartedAt returns a SessionOption, which returns a copy of ttnpb.Session with StartedAt set to v.

type SubtestConfig added in v3.9.2

type SubtestConfig struct {
	Name     string
	Parallel bool
	Timeout  time.Duration
	Func     func(context.Context, *testing.T, *assertions.Assertion)
}

type TestConfig added in v3.9.2

type TestConfig struct {
	Parallel bool
	Timeout  time.Duration
	Func     func(context.Context, *assertions.Assertion)
}

Directories

Path Synopsis
Package assertions contains custom assertions compatible with github.com/smartystreets/assertions.
Package assertions contains custom assertions compatible with github.com/smartystreets/assertions.
should
Package should wraps assertions in github.com/smartystreets/assertions and util/test/assertions.
Package should wraps assertions in github.com/smartystreets/assertions and util/test/assertions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL