test

package
v0.0.0-...-60b8695 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2021 License: Apache-2.0 Imports: 34 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"

	DefaultKeyVault = config.KeyVault{
		Provider: "static",
		Static: map[string][]byte{
			DefaultKEKLabel: DefaultKEK[:],
		},
	}

	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

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

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

ContextWithCounterRef adds the given counter to ctx under key specified.

func ContextWithTB

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

func EventBuilderEqual(a, b events.Builder) bool

func FormatError

func FormatError(err error) string

func FrequencyPlan

func FrequencyPlan(id string) *frequencyplans.FrequencyPlan

func GetLogger

func GetLogger(t testing.TB) log.Stack

GetLogger returns a logger for tests.

func IncrementContextCounter

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

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

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

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

MakeEndDevice constructs a new ttnpb.EndDevice.

func MakeEndDeviceIdentifiers

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

MakeEndDeviceIdentifiers constructs a new ttnpb.EndDeviceIdentifiers.

func MakeEventEqual

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

func MakeEventPubSubPublishChFunc

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

func MakeMACState

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

MakeMACState constructs a new ttnpb.MACState.

func MakeRootKeys

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

MakeRootKeys constructs a new ttnpb.RootKeys.

func MakeSession

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

MakeSession constructs a new ttnpb.Session.

func MakeSessionKeys

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

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

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

func MustNewTFromContext

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

func MustTBFromContext

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 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

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

func NewTFromContext

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

func NewWithContext

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

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

func RunSubtestFromContext

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

func RunTest

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

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

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

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

type EndDeviceIdentifiersOptionNamespace

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

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

func (EndDeviceIdentifiersOptionNamespace) WithApplicationIdentifiers

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

func (EndDeviceIdentifiersOptionNamespace) WithDefaultDevEUI

func (EndDeviceIdentifiersOptionNamespace) WithDefaultJoinEUI

func (EndDeviceIdentifiersOptionNamespace) WithDevAddr

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

func (EndDeviceIdentifiersOptionNamespace) WithDevEUI

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

func (EndDeviceIdentifiersOptionNamespace) WithDeviceID

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

func (EndDeviceIdentifiersOptionNamespace) WithJoinEUI

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

type EndDeviceOption

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

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

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

type EndDeviceOptionNamespace

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

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

func (EndDeviceOptionNamespace) WithApplicationServerAddress

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

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

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

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

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

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

func (EndDeviceOptionNamespace) WithCreatedAt

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

func (EndDeviceOptionNamespace) WithDefaultDevEUI

func (o EndDeviceOptionNamespace) WithDefaultDevEUI() EndDeviceOption

func (EndDeviceOptionNamespace) WithDefaultFrequencyPlanID

func (o EndDeviceOptionNamespace) WithDefaultFrequencyPlanID() EndDeviceOption

func (EndDeviceOptionNamespace) WithDefaultJoinEUI

func (o EndDeviceOptionNamespace) WithDefaultJoinEUI() EndDeviceOption

func (EndDeviceOptionNamespace) WithDefaultLoRaWANPHYVersion

func (o EndDeviceOptionNamespace) WithDefaultLoRaWANPHYVersion() EndDeviceOption

func (EndDeviceOptionNamespace) WithDefaultLoRaWANVersion

func (o EndDeviceOptionNamespace) WithDefaultLoRaWANVersion() EndDeviceOption

func (EndDeviceOptionNamespace) WithDescription

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

func (EndDeviceOptionNamespace) WithDownlinkMargin

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

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

func (EndDeviceOptionNamespace) WithEndDeviceIdentifiersOptions

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

func (EndDeviceOptionNamespace) WithFormatters

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

func (EndDeviceOptionNamespace) WithFrequencyPlanID

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

func (EndDeviceOptionNamespace) WithJoinServerAddress

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

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

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

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

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

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

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

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

func (EndDeviceOptionNamespace) WithLocations

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

func (EndDeviceOptionNamespace) WithMACSettings

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

func (EndDeviceOptionNamespace) WithMACState

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

func (EndDeviceOptionNamespace) WithMACStateOptions

func (o EndDeviceOptionNamespace) WithMACStateOptions(opts ...MACStateOption) EndDeviceOption

func (EndDeviceOptionNamespace) WithMaxFrequency

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

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

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

func (EndDeviceOptionNamespace) WithName

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

func (EndDeviceOptionNamespace) WithNetID

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

func (EndDeviceOptionNamespace) WithNetworkServerAddress

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

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

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) WithPendingMACStateOptions

func (o EndDeviceOptionNamespace) WithPendingMACStateOptions(opts ...MACStateOption) EndDeviceOption

func (EndDeviceOptionNamespace) WithPendingSession

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

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

func (EndDeviceOptionNamespace) WithPowerState

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

func (EndDeviceOptionNamespace) WithProvisionerID

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

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

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

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

func (EndDeviceOptionNamespace) WithServiceProfileID

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

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

func (EndDeviceOptionNamespace) WithSkipPayloadCrypto

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

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

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

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

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

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

func (EndDeviceOptionNamespace) WithUsedDevNonces

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

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

type EventEqualConfig

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

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

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

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

type MACStateOptionNamespace

type MACStateOptionNamespace struct{}

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

var MACStateOptions MACStateOptionNamespace

MACStateOptions is namespace containing ttnpb.MACState options.

func (o MACStateOptionNamespace) AppendRecentDownlinks(downs ...*ttnpb.DownlinkMessage) MACStateOption
func (o MACStateOptionNamespace) AppendRecentUplinks(ups ...*ttnpb.UplinkMessage) MACStateOption

func (MACStateOptionNamespace) Compose

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

func (MACStateOptionNamespace) WithCurrentParameters

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

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

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

func (MACStateOptionNamespace) WithLastADRChangeFCntUp

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

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

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

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

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

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

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

func (MACStateOptionNamespace) WithPendingRequests

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

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

func (MACStateOptionNamespace) WithQueuedJoinAccept

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

func (MACStateOptionNamespace) WithQueuedResponses

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

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

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

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

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

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(context.Context, string, []*ttnpb.EntityIdentifiers, events.Handler) error
}

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(ctx context.Context, name string, ids []*ttnpb.EntityIdentifiers, hdl events.Handler) error

Subscribe calls SubscribeFunc 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

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

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

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

type RootKeysOptionNamespace

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

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

func (RootKeysOptionNamespace) WithAppKey

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

func (RootKeysOptionNamespace) WithNwkKey

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

func (RootKeysOptionNamespace) WithRootKeyID

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

type SessionKeysOption

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

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

type SessionKeysOptionNamespace

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

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

func (SessionKeysOptionNamespace) WithAppSKey

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

func (SessionKeysOptionNamespace) WithDefaultAppSKey

func (o SessionKeysOptionNamespace) WithDefaultAppSKey() SessionKeysOption

func (SessionKeysOptionNamespace) WithDefaultNwkKeys

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

func (SessionKeysOptionNamespace) WithDefaultNwkKeysWrapped

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

func (SessionKeysOptionNamespace) WithDefaultSessionKeyID

func (o SessionKeysOptionNamespace) WithDefaultSessionKeyID() SessionKeysOption

func (SessionKeysOptionNamespace) WithFNwkSIntKey

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

func (SessionKeysOptionNamespace) WithNwkKeys

func (o SessionKeysOptionNamespace) WithNwkKeys(fNwkSIntKey, nwkSEncKey, sNwkSIntKey *ttnpb.KeyEnvelope) SessionKeysOption

func (SessionKeysOptionNamespace) WithNwkSEncKey

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

func (SessionKeysOptionNamespace) WithSNwkSIntKey

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

func (SessionKeysOptionNamespace) WithSessionKeyID

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

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

type SessionOption

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

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

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

type SessionOptionNamespace

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

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

func (SessionOptionNamespace) WithDefaultAppSKey

func (o SessionOptionNamespace) WithDefaultAppSKey() SessionOption

func (SessionOptionNamespace) WithDefaultNwkKeys

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

func (SessionOptionNamespace) WithDevAddr

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

func (SessionOptionNamespace) WithLastAFCntDown

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

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

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

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

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

func (SessionOptionNamespace) WithSessionKeysOptions

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

func (SessionOptionNamespace) WithStartedAt

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

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

type TestConfig

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