Re-work layering in possibly debatable ways. Sketchy docs in doc/layering.
[ardour.git] / libs / ardour / test / playlist_layering_test.h
1 #include <cppunit/TestFixture.h>
2 #include <cppunit/extensions/HelperMacros.h>
3 #include "test_needing_session.h"
4
5 namespace ARDOUR {
6         class Session;
7         class Playlist;
8         class Source;
9 }
10
11 class PlaylistLayeringTest : public TestNeedingSession
12 {
13         CPPUNIT_TEST_SUITE (PlaylistLayeringTest);
14         CPPUNIT_TEST (lastLayerOpTest);
15         CPPUNIT_TEST (addHigher_relayerOnAll_Test);
16         CPPUNIT_TEST (addOrBoundsHigher_relayerOnAll_Test);
17         CPPUNIT_TEST (laterHigher_relayerOnAll_Test);
18         CPPUNIT_TEST (addOrBoundsHigher_relayerWhenNecessary_Test);
19         CPPUNIT_TEST (recursiveRelayerTest);
20         CPPUNIT_TEST_SUITE_END ();
21
22 public:
23         void setUp ();
24         void tearDown ();
25
26         void lastLayerOpTest ();
27         void addHigher_relayerOnAll_Test ();
28         void addOrBoundsHigher_relayerOnAll_Test ();
29         void laterHigher_relayerOnAll_Test ();
30         void addOrBoundsHigher_relayerWhenNecessary_Test ();
31         void recursiveRelayerTest ();
32
33 private:
34         void create_short_regions ();
35         
36         static int const num_regions;
37         enum {
38                 A = 0,
39                 B,
40                 C,
41                 D,
42                 E,
43                 F
44         };
45         
46         boost::shared_ptr<ARDOUR::Playlist> _playlist;
47         boost::shared_ptr<ARDOUR::Source> _source;
48         boost::shared_ptr<ARDOUR::Region>* _region;
49 };