+
+func Test_flattenedFileObject_BinaryMarshal(t *testing.T) {
+
+ testData, _ := hex.DecodeString("46494c500001000000000000000000000000000000000002494e464f000000000000000000000052414d414354455854747478740000000000000100000000000000000000000000000000000000000000000000000000000000000007700000ba74247307700000ba74247300000008746573742e74787400004441544100000000000000000000000474657374")
+ testFile := ReadFlattenedFileObject(testData)
+ testFile.FlatFileInformationFork.Comment = []byte("test!")
+ testFile.FlatFileInformationFork.CommentSize = []byte{0x00, 0x05}
+
+ type fields struct {
+ FlatFileHeader FlatFileHeader
+ FlatFileInformationForkHeader FlatFileInformationForkHeader
+ FlatFileInformationFork FlatFileInformationFork
+ FlatFileDataForkHeader FlatFileDataForkHeader
+ FileData []byte
+ }
+ tests := []struct {
+ name string
+ fields fields
+ want []byte
+ }{
+ {
+ name: "with a valid file",
+ fields: fields{
+ FlatFileHeader: testFile.FlatFileHeader,
+ FlatFileInformationForkHeader: testFile.FlatFileInformationForkHeader,
+ FlatFileInformationFork: testFile.FlatFileInformationFork,
+ FlatFileDataForkHeader: testFile.FlatFileDataForkHeader,
+ FileData: testFile.FileData,
+ },
+ want: []byte{
+ 0x46, 0x49, 0x4c, 0x50, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+ 0x49, 0x4e, 0x46, 0x4f, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57,
+ 0x41, 0x4d, 0x41, 0x43, 0x54, 0x45, 0x58, 0x54,
+ 0x74, 0x74, 0x78, 0x74, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x07, 0x70, 0x00, 0x00,
+ 0xba, 0x74, 0x24, 0x73, 0x07, 0x70, 0x00, 0x00,
+ 0xba, 0x74, 0x24, 0x73, 0x00, 0x00, 0x00, 0x08,
+ 0x74, 0x65, 0x73, 0x74, 0x2e, 0x74, 0x78, 0x74,
+ 0x00, 0x05, 0x74, 0x65, 0x73, 0x74, 0x21, 0x44,
+ 0x41, 0x54, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
+ },
+ },
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ f := flattenedFileObject{
+ FlatFileHeader: tt.fields.FlatFileHeader,
+ FlatFileInformationForkHeader: tt.fields.FlatFileInformationForkHeader,
+ FlatFileInformationFork: tt.fields.FlatFileInformationFork,
+ FlatFileDataForkHeader: tt.fields.FlatFileDataForkHeader,
+ FileData: tt.fields.FileData,
+ }
+ assert.Equalf(t, tt.want, f.BinaryMarshal(), "BinaryMarshal()")
+ })
+ }
+}