134 lines
4.0 KiB
Go
134 lines
4.0 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
// Code generated by "pdata/internal/cmd/pdatagen/main.go". DO NOT EDIT.
|
|
// To regenerate this file run "make genpdata".
|
|
|
|
package plog
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
otlplogs "go.opentelemetry.io/collector/pdata/internal/data/protogen/logs/v1"
|
|
)
|
|
|
|
func TestResourceLogsSlice(t *testing.T) {
|
|
es := NewResourceLogsSlice()
|
|
assert.Equal(t, 0, es.Len())
|
|
es = newResourceLogsSlice(&[]*otlplogs.ResourceLogs{})
|
|
assert.Equal(t, 0, es.Len())
|
|
|
|
emptyVal := NewResourceLogs()
|
|
testVal := generateTestResourceLogs()
|
|
for i := 0; i < 7; i++ {
|
|
el := es.AppendEmpty()
|
|
assert.Equal(t, emptyVal, es.At(i))
|
|
fillTestResourceLogs(el)
|
|
assert.Equal(t, testVal, es.At(i))
|
|
}
|
|
assert.Equal(t, 7, es.Len())
|
|
}
|
|
|
|
func TestResourceLogsSlice_CopyTo(t *testing.T) {
|
|
dest := NewResourceLogsSlice()
|
|
// Test CopyTo to empty
|
|
NewResourceLogsSlice().CopyTo(dest)
|
|
assert.Equal(t, NewResourceLogsSlice(), dest)
|
|
|
|
// Test CopyTo larger slice
|
|
generateTestResourceLogsSlice().CopyTo(dest)
|
|
assert.Equal(t, generateTestResourceLogsSlice(), dest)
|
|
|
|
// Test CopyTo same size slice
|
|
generateTestResourceLogsSlice().CopyTo(dest)
|
|
assert.Equal(t, generateTestResourceLogsSlice(), dest)
|
|
}
|
|
|
|
func TestResourceLogsSlice_EnsureCapacity(t *testing.T) {
|
|
es := generateTestResourceLogsSlice()
|
|
|
|
// Test ensure smaller capacity.
|
|
const ensureSmallLen = 4
|
|
es.EnsureCapacity(ensureSmallLen)
|
|
assert.Less(t, ensureSmallLen, es.Len())
|
|
assert.Equal(t, es.Len(), cap(*es.orig))
|
|
assert.Equal(t, generateTestResourceLogsSlice(), es)
|
|
|
|
// Test ensure larger capacity
|
|
const ensureLargeLen = 9
|
|
es.EnsureCapacity(ensureLargeLen)
|
|
assert.Less(t, generateTestResourceLogsSlice().Len(), ensureLargeLen)
|
|
assert.Equal(t, ensureLargeLen, cap(*es.orig))
|
|
assert.Equal(t, generateTestResourceLogsSlice(), es)
|
|
}
|
|
|
|
func TestResourceLogsSlice_MoveAndAppendTo(t *testing.T) {
|
|
// Test MoveAndAppendTo to empty
|
|
expectedSlice := generateTestResourceLogsSlice()
|
|
dest := NewResourceLogsSlice()
|
|
src := generateTestResourceLogsSlice()
|
|
src.MoveAndAppendTo(dest)
|
|
assert.Equal(t, generateTestResourceLogsSlice(), dest)
|
|
assert.Equal(t, 0, src.Len())
|
|
assert.Equal(t, expectedSlice.Len(), dest.Len())
|
|
|
|
// Test MoveAndAppendTo empty slice
|
|
src.MoveAndAppendTo(dest)
|
|
assert.Equal(t, generateTestResourceLogsSlice(), dest)
|
|
assert.Equal(t, 0, src.Len())
|
|
assert.Equal(t, expectedSlice.Len(), dest.Len())
|
|
|
|
// Test MoveAndAppendTo not empty slice
|
|
generateTestResourceLogsSlice().MoveAndAppendTo(dest)
|
|
assert.Equal(t, 2*expectedSlice.Len(), dest.Len())
|
|
for i := 0; i < expectedSlice.Len(); i++ {
|
|
assert.Equal(t, expectedSlice.At(i), dest.At(i))
|
|
assert.Equal(t, expectedSlice.At(i), dest.At(i+expectedSlice.Len()))
|
|
}
|
|
}
|
|
|
|
func TestResourceLogsSlice_RemoveIf(t *testing.T) {
|
|
// Test RemoveIf on empty slice
|
|
emptySlice := NewResourceLogsSlice()
|
|
emptySlice.RemoveIf(func(el ResourceLogs) bool {
|
|
t.Fail()
|
|
return false
|
|
})
|
|
|
|
// Test RemoveIf
|
|
filtered := generateTestResourceLogsSlice()
|
|
pos := 0
|
|
filtered.RemoveIf(func(el ResourceLogs) bool {
|
|
pos++
|
|
return pos%3 == 0
|
|
})
|
|
assert.Equal(t, 5, filtered.Len())
|
|
}
|
|
|
|
func generateTestResourceLogsSlice() ResourceLogsSlice {
|
|
tv := NewResourceLogsSlice()
|
|
fillTestResourceLogsSlice(tv)
|
|
return tv
|
|
}
|
|
|
|
func fillTestResourceLogsSlice(tv ResourceLogsSlice) {
|
|
*tv.orig = make([]*otlplogs.ResourceLogs, 7)
|
|
for i := 0; i < 7; i++ {
|
|
(*tv.orig)[i] = &otlplogs.ResourceLogs{}
|
|
fillTestResourceLogs(newResourceLogs((*tv.orig)[i]))
|
|
}
|
|
}
|