blob: 4b74fed9f389b3cba2f5e4847af976402c7cc422 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/media/audio/lib/effects_loader/effect.h"
#include <gtest/gtest.h>
#include "src/media/audio/lib/effects_loader/testing/effects_loader_test_base.h"
namespace media::audio {
namespace {
class EffectTest : public testing::EffectsLoaderTestBase {};
static const std::string kInstanceName = "instance name";
TEST_F(EffectTest, MoveEffect) {
test_effects().AddEffect("assign_to_1.0").WithAction(TEST_EFFECTS_ACTION_ASSIGN, 1.0);
Effect effect1 = effects_loader()->CreateEffect(0, kInstanceName, 1, 1, 1, {});
ASSERT_TRUE(effect1);
ASSERT_EQ(kInstanceName, effect1.instance_name());
// New, invalid, effect.
Effect effect2;
ASSERT_FALSE(effect2);
// Move effect1 -> effect2.
effect2 = std::move(effect1);
ASSERT_TRUE(effect2);
ASSERT_FALSE(effect1);
// Create effect3 via move ctor.
Effect effect3(std::move(effect2));
ASSERT_TRUE(effect3);
ASSERT_FALSE(effect2);
}
} // namespace
} // namespace media::audio