@@ -26,38 +26,10 @@ public void ShouldAddTags()
2626 [ "Creator|17cupsofcoffee" ]
2727 ) ;
2828
29- var bd1 = getItem ( xmp . Xml , "bd1.wav" ) ;
30- var bd2 = getItem ( xmp . Xml , "bd2.wav" ) ;
31- var ch = getItem ( xmp . Xml , "ch.wav" ) ;
32-
33- // We should only ever have a single item per file.
34- Assert . Single ( bd1 ) ;
35- Assert . Single ( bd2 ) ;
36- Assert . Single ( ch ) ;
37-
38- var bd1Tags = getTags ( bd1 . First ( ) ) ;
39- var bd2Tags = getTags ( bd2 . First ( ) ) ;
40- var chTags = getTags ( ch . First ( ) ) ;
41-
42- Assert . Contains ( "Drums|Kick" , bd1Tags ) ;
43- Assert . Contains ( "Creator|17cupsofcoffee" , bd1Tags ) ;
44-
45- Assert . Contains ( "Drums|Kick" , bd2Tags ) ;
46- Assert . Contains ( "Creator|17cupsofcoffee" , bd2Tags ) ;
47-
48- Assert . Contains ( "Drums|Hihat" , chTags ) ;
49- Assert . Contains ( "Drums|Hihat|Closed Hihat" , chTags ) ;
50- Assert . Contains ( "Creator|17cupsofcoffee" , chTags ) ;
51- }
52-
53- [ Fact ]
54- public void ShouldMarkDirtyAfterAddTags ( )
55- {
56- var xmp = new Xmp ( ) ;
57-
58- xmp . AddTags (
59- [ "bd1.wav" ] ,
60- [ "Drums|Kick" ]
29+ Assert . Equal (
30+ XElement . Parse ( TestUtils . ReadFileAsString ( "TestData/WithTagsAdded.xml" ) ) ,
31+ xmp . Xml ,
32+ XNode . EqualityComparer
6133 ) ;
6234
6335 Assert . True ( xmp . IsDirty ) ;
@@ -66,51 +38,22 @@ public void ShouldMarkDirtyAfterAddTags()
6638 [ Fact ]
6739 public void ShouldRemoveTags ( )
6840 {
69- var xmp = new Xmp ( ) ;
70-
71- xmp . AddTags (
72- [ "bd.wav" , "ch.wav" ] ,
73- [ "Drums|Kick" , "Drums|Snare" ]
74- ) ;
41+ var xmp = Xmp . FromString ( TestUtils . ReadFileAsString ( "TestData/WithTagsAdded.xml" ) ) ;
7542
7643 xmp . RemoveTags (
77- [ "bd .wav" , "ch.wav" ] ,
78- [ "Drums|Snare " ]
44+ [ "bd1.wav" , "bd2 .wav", "ch.wav" ] ,
45+ [ "Creator|17cupsofcoffee " ]
7946 ) ;
8047
8148 xmp . RemoveTags (
8249 [ "ch.wav" ] ,
83- [ "Drums|Kick" ]
84- ) ;
85-
86- var bd = getItem ( xmp . Xml , "bd.wav" ) ;
87- var ch = getItem ( xmp . Xml , "ch.wav" ) ;
88-
89- Assert . Single ( bd ) ;
90- Assert . Single ( ch ) ;
91-
92- var bdTags = getTags ( bd . First ( ) ) ;
93-
94- Assert . Contains ( "Drums|Kick" , bdTags ) ;
95- Assert . Null ( ch . First ( ) . Element ( Ableton . Keywords ) ) ;
96- }
97-
98- [ Fact ]
99- public void ShouldMarkDirtyAfterRemoveTags ( )
100- {
101- // TODO: This test isn't great, as it's not clear whether AddTags or RemoveTags
102- // is triggering the flag.
103-
104- var xmp = new Xmp ( ) ;
105-
106- xmp . AddTags (
107- [ "bd1.wav" ] ,
108- [ "Drums|Kick" ]
50+ [ "Drums|Hihat" , "Drums|Hihat|Closed Hihat" ]
10951 ) ;
11052
111- xmp . RemoveTags (
112- [ "bd1.wav" ] ,
113- [ "Drums|Kick" ]
53+ Assert . Equal (
54+ XElement . Parse ( TestUtils . ReadFileAsString ( "TestData/WithTagsRemoved.xml" ) ) ,
55+ xmp . Xml ,
56+ XNode . EqualityComparer
11457 ) ;
11558
11659 Assert . True ( xmp . IsDirty ) ;
@@ -119,64 +62,18 @@ public void ShouldMarkDirtyAfterRemoveTags()
11962 [ Fact ]
12063 public void ShouldRemoveAllTags ( )
12164 {
122- var xmp = new Xmp ( ) ;
123-
124- xmp . AddTags (
125- [ "bd.wav" , "ch.wav" ] ,
126- [ "Drums|Kick" ]
127- ) ;
65+ var xmp = Xmp . FromString ( TestUtils . ReadFileAsString ( "TestData/WithTagsAdded.xml" ) ) ;
12866
12967 xmp . RemoveTags (
13068 [ "ch.wav" ]
13169 ) ;
13270
133- var bd = getItem ( xmp . Xml , "bd.wav" ) ;
134- var ch = getItem ( xmp . Xml , "ch.wav" ) ;
135-
136- Assert . Single ( bd ) ;
137- Assert . Single ( ch ) ;
138-
139- var bdTags = getTags ( bd . First ( ) ) ;
140-
141- Assert . Contains ( "Drums|Kick" , bdTags ) ;
142- Assert . Null ( ch . First ( ) . Element ( Ableton . Keywords ) ) ;
143- }
144-
145- [ Fact ]
146- public void ShouldMarkDirtyAfterRemoveAllTags ( )
147- {
148- // TODO: This test isn't great, as it's not clear whether AddTags or RemoveTags
149- // is triggering the flag.
150-
151- var xmp = new Xmp ( ) ;
152-
153- xmp . AddTags (
154- [ "bd1.wav" ] ,
155- [ "Drums|Kick" ]
156- ) ;
157-
158- xmp . RemoveTags (
159- [ "bd1.wav" ]
71+ Assert . Equal (
72+ XElement . Parse ( TestUtils . ReadFileAsString ( "TestData/WithAllTagsRemoved.xml" ) ) ,
73+ xmp . Xml ,
74+ XNode . EqualityComparer
16075 ) ;
16176
16277 Assert . True ( xmp . IsDirty ) ;
16378 }
164-
165- private IEnumerable < XElement > getItem ( XElement xml , string file )
166- {
167- return xml . Descendants ( Ableton . Items ) !
168- . First ( ) !
169- . Element ( Rdf . Bag ) !
170- . Elements ( Rdf . Li ) !
171- . Where ( e => e . Element ( Ableton . FilePath ) ! . Value == file ) ;
172- }
173-
174- private IEnumerable < string > getTags ( XElement item )
175- {
176- return item
177- . Element ( Ableton . Keywords ) !
178- . Element ( Rdf . Bag ) !
179- . Elements ( Rdf . Li )
180- . Select ( e => e . Value ) ;
181- }
18279}
0 commit comments