1 #include "iamf/cli/codec/decoder_base.h" 2 3 #include <cstdint> 4 #include <vector> 5 6 #include "absl/status/status.h" 7 #include "gtest/gtest.h" 8 9 namespace iamf_tools { 10 namespace { 11 12 // A mock to be able to test the abstract base class. 13 class MockDecoder : public DecoderBase { 14 public: MockDecoder(int num_channels,int num_samples_per_channel)15 MockDecoder(int num_channels, int num_samples_per_channel) 16 : DecoderBase(num_channels, num_samples_per_channel) {} 17 18 // Helpers to expose the values for expectations. GetNumChannels() const19 int GetNumChannels() const { return num_channels_; } GetNumSamplesPerChannel() const20 int GetNumSamplesPerChannel() const { return num_samples_per_channel_; } 21 22 // Unimplemented implementations for base class pure virtual methods 23 // that we won't test. Initialize()24 absl::Status Initialize() override { 25 return absl::UnimplementedError("Not implemented"); 26 } 27 DecodeAudioFrame(const std::vector<uint8_t> & encoded_frame)28 absl::Status DecodeAudioFrame( 29 const std::vector<uint8_t>& encoded_frame) override { 30 return absl::UnimplementedError("Not implemented"); 31 } 32 }; 33 TEST(DecoderBaseTest,TestConstruction)34TEST(DecoderBaseTest, TestConstruction) { 35 const int kExpectedNumChannels = 9; 36 const int kExpectedNumSamplesPerChannel = 5400; 37 MockDecoder decoder(kExpectedNumChannels, kExpectedNumSamplesPerChannel); 38 EXPECT_EQ(decoder.GetNumChannels(), kExpectedNumChannels); 39 EXPECT_EQ(decoder.GetNumSamplesPerChannel(), kExpectedNumSamplesPerChannel); 40 } 41 42 } // namespace 43 } // namespace iamf_tools 44