...
1 package exifundefined
2
3 import (
4 "bytes"
5 "reflect"
6 "testing"
7
8 "github.com/dsoprea/go-logging"
9
10 "github.com/dsoprea/go-exif/v3/common"
11 )
12
13 func TestTagExif9101ComponentsConfiguration_String(t *testing.T) {
14 ut := TagExif9101ComponentsConfiguration{
15 ConfigurationId: TagUndefinedType_9101_ComponentsConfiguration_RGB,
16 ConfigurationBytes: []byte{0x11, 0x22, 0x33, 0x44},
17 }
18
19 s := ut.String()
20
21 if s != "Exif9101ComponentsConfiguration<ID=[RGB] BYTES=[17 34 51 68]>" {
22 t.Fatalf("String not correct: [%s]", s)
23 }
24 }
25
26 func TestCodecExif9101ComponentsConfiguration_Encode(t *testing.T) {
27 configurationBytes := []byte(TagUndefinedType_9101_ComponentsConfiguration_Names[TagUndefinedType_9101_ComponentsConfiguration_RGB])
28
29 ut := TagExif9101ComponentsConfiguration{
30 ConfigurationId: TagUndefinedType_9101_ComponentsConfiguration_RGB,
31 ConfigurationBytes: configurationBytes,
32 }
33
34 codec := CodecExif9101ComponentsConfiguration{}
35
36 encoded, unitCount, err := codec.Encode(ut, exifcommon.TestDefaultByteOrder)
37 log.PanicIf(err)
38
39 if bytes.Equal(encoded, configurationBytes) != true {
40 exifcommon.DumpBytesClause(encoded)
41
42 t.Fatalf("Encoded bytes not correct: %v", encoded)
43 } else if unitCount != uint32(len(configurationBytes)) {
44 t.Fatalf("Unit-count not correct: (%d)", unitCount)
45 }
46
47 s := string(configurationBytes)
48
49 if s != TagUndefinedType_9101_ComponentsConfiguration_Names[TagUndefinedType_9101_ComponentsConfiguration_RGB] {
50 t.Fatalf("Recovered configuration name not correct: [%s]", s)
51 }
52 }
53
54 func TestCodecExif9101ComponentsConfiguration_Decode(t *testing.T) {
55 configurationBytes := TagUndefinedType_9101_ComponentsConfiguration_Configurations[TagUndefinedType_9101_ComponentsConfiguration_RGB]
56
57 ut := TagExif9101ComponentsConfiguration{
58 ConfigurationId: TagUndefinedType_9101_ComponentsConfiguration_RGB,
59 ConfigurationBytes: configurationBytes,
60 }
61
62 rawValueOffset := configurationBytes
63
64 valueContext := exifcommon.NewValueContext(
65 "",
66 0,
67 uint32(len(configurationBytes)),
68 0,
69 rawValueOffset,
70 nil,
71 exifcommon.TypeUndefined,
72 exifcommon.TestDefaultByteOrder)
73
74 codec := CodecExif9101ComponentsConfiguration{}
75
76 value, err := codec.Decode(valueContext)
77 log.PanicIf(err)
78
79 if reflect.DeepEqual(value, ut) != true {
80 t.Fatalf("Decoded value not correct: %s != %s\n", value, ut)
81 }
82 }
83
View as plain text