...

Source file src/github.com/dsoprea/go-exif/v3/undefined/exif_9101_components_configuration_test.go

Documentation: github.com/dsoprea/go-exif/v3/undefined

     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