Skip to content

Commit 6c74ef3

Browse files
Merge pull request #405 from NeoCoderMatrix86/development
Deploy V8.0
2 parents 1135642 + 3411415 commit 6c74ef3

63 files changed

Lines changed: 1864 additions & 1311 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

AudioCuesheetEditorTests/AudioCuesheetEditorTests.csproj renamed to AudioCuesheetEditor.Tests/AudioCuesheetEditor.Tests.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.0" />
11-
<PackageReference Include="Moq" Version="4.20.70" />
12-
<PackageReference Include="MSTest.TestAdapter" Version="3.5.2" />
13-
<PackageReference Include="MSTest.TestFramework" Version="3.5.2" />
10+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
11+
<PackageReference Include="Moq" Version="4.20.72" />
12+
<PackageReference Include="MSTest.TestAdapter" Version="3.6.4" />
13+
<PackageReference Include="MSTest.TestFramework" Version="3.6.4" />
1414
<PackageReference Include="coverlet.collector" Version="6.0.2">
1515
<PrivateAssets>all</PrivateAssets>
1616
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

AudioCuesheetEditorTests/Extensions/SessionStateContainerTests.cs renamed to AudioCuesheetEditor.Tests/Extensions/SessionStateContainerTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
//<http: //www.gnu.org/licenses />.
1616
using AudioCuesheetEditor.Model.AudioCuesheet;
1717
using AudioCuesheetEditor.Model.UI;
18-
using AudioCuesheetEditorTests.Utility;
18+
using AudioCuesheetEditor.Tests.Utility;
1919
using Microsoft.VisualStudio.TestTools.UnitTesting;
2020

2121
namespace AudioCuesheetEditor.Extensions.Tests

AudioCuesheetEditorTests/Model/AudioCuesheet/CataloguenumberTests.cs renamed to AudioCuesheetEditor.Tests/Model/AudioCuesheet/CataloguenumberTests.cs

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,11 @@
1313
//You should have received a copy of the GNU General Public License
1414
//along with Foobar. If not, see
1515
//<http: //www.gnu.org/licenses />.
16-
using Microsoft.VisualStudio.TestTools.UnitTesting;
1716
using AudioCuesheetEditor.Model.AudioCuesheet;
18-
using System;
19-
using System.Collections.Generic;
20-
using System.Linq;
21-
using System.Text;
22-
using System.Threading.Tasks;
23-
using AudioCuesheetEditorTests.Utility;
17+
using AudioCuesheetEditor.Model.Entity;
18+
using Microsoft.VisualStudio.TestTools.UnitTesting;
2419

25-
namespace AudioCuesheetEditor.Model.AudioCuesheet.Tests
20+
namespace AudioCuesheetEditor.Tests.Model.AudioCuesheet
2621
{
2722
[TestClass()]
2823
public class CataloguenumberTests
@@ -31,13 +26,13 @@ public class CataloguenumberTests
3126
public void CatalogueNumberTest()
3227
{
3328
var catalogueNumber = new Cataloguenumber();
34-
Assert.AreEqual(Entity.ValidationStatus.NoValidation, catalogueNumber.Validate().Status);
29+
Assert.AreEqual(ValidationStatus.NoValidation, catalogueNumber.Validate().Status);
3530
catalogueNumber.Value = "Testvalue";
36-
Assert.AreEqual(Entity.ValidationStatus.Error, catalogueNumber.Validate().Status);
31+
Assert.AreEqual(ValidationStatus.Error, catalogueNumber.Validate().Status);
3732
catalogueNumber.Value = "01234567891234567890";
38-
Assert.AreEqual(Entity.ValidationStatus.Error, catalogueNumber.Validate().Status);
33+
Assert.AreEqual(ValidationStatus.Error, catalogueNumber.Validate().Status);
3934
catalogueNumber.Value = "1234567890123";
40-
Assert.AreEqual(Entity.ValidationStatus.Success, catalogueNumber.Validate().Status);
35+
Assert.AreEqual(ValidationStatus.Success, catalogueNumber.Validate().Status);
4136
}
4237
}
4338
}

AudioCuesheetEditorTests/Model/AudioCuesheet/CuesheetTests.cs renamed to AudioCuesheetEditor.Tests/Model/AudioCuesheet/CuesheetTests.cs

Lines changed: 47 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,25 @@
1515
//<http: //www.gnu.org/licenses />.
1616
using AudioCuesheetEditor.Data.Options;
1717
using AudioCuesheetEditor.Extensions;
18+
using AudioCuesheetEditor.Model.AudioCuesheet;
1819
using AudioCuesheetEditor.Model.Entity;
1920
using AudioCuesheetEditor.Model.IO.Audio;
2021
using AudioCuesheetEditor.Model.IO.Import;
2122
using AudioCuesheetEditor.Model.Options;
2223
using AudioCuesheetEditor.Model.UI;
2324
using AudioCuesheetEditor.Services.IO;
24-
using AudioCuesheetEditorTests.Properties;
25-
using AudioCuesheetEditorTests.Utility;
25+
using AudioCuesheetEditor.Tests.Properties;
26+
using AudioCuesheetEditor.Tests.Utility;
2627
using Microsoft.VisualStudio.TestTools.UnitTesting;
2728
using Moq;
2829
using System;
2930
using System.Collections.Generic;
3031
using System.IO;
3132
using System.Linq;
33+
using System.Threading;
3234
using System.Threading.Tasks;
3335

34-
namespace AudioCuesheetEditor.Model.AudioCuesheet.Tests
36+
namespace AudioCuesheetEditor.Tests.Model.AudioCuesheet
3537
{
3638
[TestClass()]
3739
public class CuesheetTests
@@ -41,15 +43,12 @@ public void AddTrackTest()
4143
{
4244
var testHelper = new TestHelper();
4345
var cuesheet = new Cuesheet();
44-
var trackAddedFired = false;
45-
cuesheet.TrackAdded += delegate
46-
{
47-
trackAddedFired = true;
48-
};
46+
AutoResetEvent tracksAddedEvent = new(false);
47+
cuesheet.TracksAdded += (object? sender, TracksAddedRemovedEventArgs args) => tracksAddedEvent.Set();
4948
Assert.AreEqual(cuesheet.Tracks.Count, 0);
5049
cuesheet.AddTrack(new Track(), testHelper.ApplicationOptions);
5150
Assert.AreEqual(cuesheet.Tracks.Count, 1);
52-
Assert.IsTrue(trackAddedFired);
51+
Assert.IsTrue(tracksAddedEvent.WaitOne(1000));
5352
}
5453

5554
[TestMethod()]
@@ -221,7 +220,7 @@ public void MoveAndDeleteTrackTest()
221220
public async Task ImportTestAsync()
222221
{
223222
// Arrange
224-
var fileContent = new List<String>
223+
var fileContent = new List<string>
225224
{
226225
"CuesheetArtist - CuesheetTitle c:\\tmp\\Testfile.mp3",
227226
"Sample Artist 1 - Sample Title 1 00:05:00",
@@ -271,7 +270,7 @@ public async Task ImportTestCalculateEndCorrectlyAsync()
271270
// Arrange
272271
var textImportMemoryStream = new MemoryStream(Resources.Textimport_Bug_54);
273272
using var reader = new StreamReader(textImportMemoryStream);
274-
List<String?> lines = [];
273+
List<string?> lines = [];
275274
while (reader.EndOfStream == false)
276275
{
277276
lines.Add(reader.ReadLine());
@@ -320,11 +319,11 @@ public void RecordTest()
320319
cuesheet = new Cuesheet();
321320
cuesheet.StartRecording();
322321
track = new Track();
323-
testHelper.RecordOptions.RecordTimeSensitivity = Options.TimeSensitivityMode.Seconds;
322+
testHelper.RecordOptions.RecordTimeSensitivity = TimeSensitivityMode.Seconds;
324323
cuesheet.AddTrack(track, testHelper.ApplicationOptions, testHelper.RecordOptions);
325324
Assert.AreEqual(TimeSpan.Zero, track.Begin);
326325
Assert.IsNull(track.End);
327-
System.Threading.Thread.Sleep(3000);
326+
Thread.Sleep(3000);
328327
track2 = new Track();
329328
cuesheet.AddTrack(track2, testHelper.ApplicationOptions, testHelper.RecordOptions);
330329
Assert.IsNotNull(track.End);
@@ -427,7 +426,9 @@ public void RemoveTrackTest()
427426
{
428427
var testHelper = new TestHelper();
429428
testHelper.ApplicationOptions.LinkTracksWithPreviousOne = true;
429+
AutoResetEvent tracksRemovedEvent = new(false);
430430
var cuesheet = new Cuesheet();
431+
cuesheet.TracksRemoved += (sender, trackAddRemoveEventArgs) => tracksRemovedEvent.Set();
431432
var track1 = new Track() { Artist = "1", Title = "1" };
432433
var track2 = new Track() { Artist = "2", Title = "2" };
433434
var track3 = new Track() { Artist = "3", Title = "3" };
@@ -445,12 +446,14 @@ public void RemoveTrackTest()
445446
track5.End = new TimeSpan(0, 25, 0);
446447
Assert.AreEqual(5, cuesheet.Tracks.Count);
447448
cuesheet.RemoveTrack(track2);
449+
Assert.AreEqual(true, tracksRemovedEvent.WaitOne(1000));
448450
Assert.AreEqual((uint)2, track3.Position);
449451
Assert.AreEqual((uint)3, track4.Position);
450452
Assert.AreEqual((uint)4, track5.Position);
451453
testHelper = new TestHelper();
452454
testHelper.ApplicationOptions.LinkTracksWithPreviousOne = true;
453455
cuesheet = new Cuesheet();
456+
cuesheet.TracksRemoved += (sender, trackAddRemoveEventArgs) => tracksRemovedEvent.Set();
454457
track1 = new Track
455458
{
456459
Artist = "Track 1",
@@ -487,6 +490,7 @@ public void RemoveTrackTest()
487490
cuesheet.AddTrack(track5, testHelper.ApplicationOptions);
488491
var list = new List<Track>() { track2, track4 };
489492
cuesheet.RemoveTracks(list.AsReadOnly());
493+
Assert.AreEqual(true, tracksRemovedEvent.WaitOne(1000));
490494
Assert.AreEqual(3, cuesheet.Tracks.Count);
491495
Assert.AreEqual(new TimeSpan(0, 5, 0), track3.Begin);
492496
Assert.AreEqual(new TimeSpan(0, 15, 0), track5.Begin);
@@ -634,5 +638,35 @@ public void ValidateTest()
634638
cuesheet.Title = "Testtitle";
635639
Assert.AreEqual(ValidationStatus.Success, cuesheet.Validate(x => x.Title).Status);
636640
}
641+
642+
[TestMethod()]
643+
public void IsLinkedToPreviousTrack_ChangedLastTrackBegin_SetsTrackProperties()
644+
{
645+
//Arrange
646+
var applicationOptions = new ApplicationOptions()
647+
{
648+
LinkTracksWithPreviousOne = false
649+
};
650+
var cuesheet = new Cuesheet();
651+
var track1 = new Track()
652+
{
653+
Artist = "Track1 Artist",
654+
Title = "Track1 Title"
655+
};
656+
var track2 = new Track()
657+
{
658+
Artist = "Track2 Artist",
659+
Title = "Track2 Title",
660+
End = new TimeSpan(0, 9, 12)
661+
};
662+
cuesheet.AddTrack(track1, applicationOptions);
663+
cuesheet.AddTrack(track2, applicationOptions);
664+
track2.Begin = new TimeSpan(0, 4, 23);
665+
//Act
666+
track2.IsLinkedToPreviousTrack = true;
667+
//Assert
668+
Assert.AreEqual((uint)2, track2.Position);
669+
Assert.AreEqual(track2.Begin, track1.End);
670+
}
637671
}
638672
}

AudioCuesheetEditorTests/Model/AudioCuesheet/TrackTests.cs renamed to AudioCuesheetEditor.Tests/Model/AudioCuesheet/TrackTests.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,15 @@
1313
//You should have received a copy of the GNU General Public License
1414
//along with Foobar. If not, see
1515
//<http: //www.gnu.org/licenses />.
16+
using AudioCuesheetEditor.Model.AudioCuesheet;
1617
using AudioCuesheetEditor.Model.Entity;
17-
using AudioCuesheetEditorTests.Utility;
18+
using AudioCuesheetEditor.Tests.Utility;
1819
using Microsoft.VisualStudio.TestTools.UnitTesting;
1920
using System;
2021
using System.Collections.Generic;
2122
using System.Linq;
2223

23-
namespace AudioCuesheetEditor.Model.AudioCuesheet.Tests
24+
namespace AudioCuesheetEditor.Tests.Model.AudioCuesheet
2425
{
2526
[TestClass()]
2627
public class TrackTests
@@ -84,7 +85,7 @@ public void LinkTrackTest()
8485
Position = 2
8586
};
8687
Assert.IsFalse(track2.IsLinkedToPreviousTrack);
87-
Boolean eventFired = false;
88+
bool eventFired = false;
8889
track2.IsLinkedToPreviousTrackChanged += delegate
8990
{
9091
eventFired = true;

AudioCuesheetEditorTests/Model/Entity/ValidateableTests.cs renamed to AudioCuesheetEditor.Tests/Model/Entity/ValidateableTests.cs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,18 @@
1313
//You should have received a copy of the GNU General Public License
1414
//along with Foobar. If not, see
1515
//<http: //www.gnu.org/licenses />.
16-
using AudioCuesheetEditorTests.Utility;
16+
using AudioCuesheetEditor.Model.Entity;
1717
using Microsoft.VisualStudio.TestTools.UnitTesting;
18-
using System;
1918
using System.Collections.Generic;
2019

21-
namespace AudioCuesheetEditor.Model.Entity.Tests
20+
namespace AudioCuesheetEditor.Tests.Model.Entity
2221
{
2322
public class ValidateableTestClass : Validateable<ValidateableTestClass>
2423
{
25-
private String? testProperty;
24+
private string? testProperty;
2625
private int? testProperty2;
2726

28-
public String? TestProperty
27+
public string? TestProperty
2928
{
3029
get => testProperty;
3130
set
@@ -34,7 +33,7 @@ public String? TestProperty
3433
OnValidateablePropertyChanged();
3534
}
3635
}
37-
public int? TestProperty2
36+
public int? TestProperty2
3837
{
3938
get => testProperty2;
4039
set
@@ -51,9 +50,9 @@ protected override ValidationResult Validate(string property)
5150
{
5251
case nameof(TestProperty):
5352
validationStatus = ValidationStatus.Success;
54-
if (String.IsNullOrEmpty(TestProperty))
53+
if (string.IsNullOrEmpty(TestProperty))
5554
{
56-
validationMessages ??= new();
55+
validationMessages ??= [];
5756
validationMessages.Add(new ValidationMessage("{0} has no value!", nameof(TestProperty)));
5857
}
5958
break;
@@ -69,7 +68,7 @@ public void ValidateTest()
6968
{
7069
var testObject = new ValidateableTestClass
7170
{
72-
TestProperty = String.Empty
71+
TestProperty = string.Empty
7372
};
7473
Assert.AreEqual(ValidationStatus.Error, testObject.Validate().Status);
7574
Assert.IsNotNull(testObject.Validate().ValidationMessages);

AudioCuesheetEditorTests/Model/Entity/ValidationResultTests.cs renamed to AudioCuesheetEditor.Tests/Model/Entity/ValidationResultTests.cs

File renamed without changes.

AudioCuesheetEditorTests/Model/IO/Audio/AudiofileTests.cs renamed to AudioCuesheetEditor.Tests/Model/IO/Audio/AudiofileTests.cs

File renamed without changes.

AudioCuesheetEditorTests/Model/IO/Export/CuesheetSectionTests.cs renamed to AudioCuesheetEditor.Tests/Model/IO/Export/CuesheetSectionTests.cs

File renamed without changes.

0 commit comments

Comments
 (0)