AudioMetadataTest: Add vendor key test

Test: atest AudioMetadataTest#testVendorKeys
Bug: 151178777
Change-Id: I17bc794b4de77dfa9a2b521f4dc5ef86b9343b58
diff --git a/tests/tests/media/src/android/media/cts/AudioMetadataTest.java b/tests/tests/media/src/android/media/cts/AudioMetadataTest.java
index 4272363..8fa4eaa 100755
--- a/tests/tests/media/src/android/media/cts/AudioMetadataTest.java
+++ b/tests/tests/media/src/android/media/cts/AudioMetadataTest.java
@@ -112,6 +112,63 @@
         );
     }
 
+    // Vendor keys created by direct override of the AudioMetadata interface.
+    private static final AudioMetadata.Key<Integer>
+        KEY_VENDOR_INTEGER = new AudioMetadata.Key<Integer>() {
+        @Override
+        public String getName() {
+            return "vendor.integerData";
+        }
+
+        @Override
+        public Class<Integer> getValueClass() {
+            return Integer.class;  // matches Class<Integer>
+        }
+    };
+
+    private static final AudioMetadata.Key<Double>
+        KEY_VENDOR_DOUBLE = new AudioMetadata.Key<Double>() {
+        @Override
+        public String getName() {
+            return "vendor.doubleData";
+        }
+
+        @Override
+        public Class<Double> getValueClass() {
+            return Double.class;  // matches Class<Double>
+        }
+    };
+
+    private static final AudioMetadata.Key<String>
+            KEY_VENDOR_STRING = new AudioMetadata.Key<String>() {
+        @Override
+        public String getName() {
+            return "vendor.stringData";
+        }
+
+        @Override
+        public Class<String> getValueClass() {
+            return String.class;  // matches Class<String>
+        }
+    };
+
+    @Test
+    public void testVendorKeys() {
+        final AudioMetadata.Map audioMetadata = AudioMetadata.createMap();
+
+        audioMetadata.set(KEY_VENDOR_INTEGER, 10);
+        final int ivalue = audioMetadata.get(KEY_VENDOR_INTEGER);
+        assertEquals(10, ivalue);
+
+        audioMetadata.set(KEY_VENDOR_DOUBLE, 11.5);
+        final double dvalue = audioMetadata.get(KEY_VENDOR_DOUBLE);
+        assertEquals(11.5, dvalue, 0. /* epsilon */);
+
+        audioMetadata.set(KEY_VENDOR_STRING, "alphabet");
+        final String svalue = audioMetadata.get(KEY_VENDOR_STRING);
+        assertEquals("alphabet", svalue);
+    }
+
     // The byte buffer here is generated by audio_utils::metadata::byteStringFromData(Data).
     // Data data = {
     //     "integer": (int32_t) 1,