Skip to content

Commit ba074ff

Browse files
authored
Merge pull request #30 from Insire/unit-tests
added more unit tests
2 parents ae86c92 + 236c99a commit ba074ff

13 files changed

Lines changed: 354 additions & 182 deletions

File tree

Maple.sln

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Cake", "Cake", "{E463B2A9-3
2828
ProjectSection(SolutionItems) = preProject
2929
Cake\build.cake = Cake\build.cake
3030
Cake\build.ps1 = Cake\build.ps1
31-
Cake\cake.config = Cake\cake.config
31+
Cake\tools\packages.config = Cake\tools\packages.config
3232
EndProjectSection
3333
EndProject
3434
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Maple.Domain", "src\Maple.Domain\Maple.Domain.csproj", "{9D7D05A6-8271-4836-A7BB-5B2ABECCBD81}"

src/Maple.Core/Observables/ViewModels/BaseListViewModel.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ public abstract class BaseListViewModel<TViewModel> : ViewModel
2121
{
2222
protected readonly object _itemsLock;
2323

24+
/// <summary>
25+
/// Indicates whether the LoadCommand/ the Load Method has been executed yet
26+
/// </summary>
2427
public bool IsLoaded { get; protected set; }
2528

2629
private TViewModel _selectedItem;

src/Maple.Test/Maple.Test.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
</Compile>
5151
<Compile Include="DiagnosticReportTests.cs" />
5252
<Compile Include="StringBuilderCacheTests.cs" />
53+
<Compile Include="TestUtils\ContainerContextExtensions.cs" />
5354
<Compile Include="TypeExtension\CheckingATypeForDefaultConstructorTests.cs" />
5455
<Compile Include="TypeExtension\CheckingATypeImplementsTests.cs" />
5556
<Compile Include="TypeExtension\CheckingATypeIsSimpleTests.cs" />
@@ -73,6 +74,9 @@
7374
<Compile Include="TypeExtension\GettingPropertiesTests.cs" />
7475
<Compile Include="MapleMessengerTests.cs" />
7576
<Compile Include="Properties\AssemblyInfo.cs" />
77+
<Compile Include="TestUtils\MediaItemModelContextModelExtensions.cs" />
78+
<Compile Include="TestUtils\PlaylistModelContextExtensions.cs" />
79+
<Compile Include="ViewModels\Playlists\PlaylistsTests.cs" />
7680
<Compile Include="ViewModels\Playlists\PlaylistTests.cs" />
7781
</ItemGroup>
7882
<ItemGroup>
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
using DryIoc;
2+
using Maple.Core;
3+
using Maple.Domain;
4+
using NSubstitute;
5+
6+
namespace Maple.Test
7+
{
8+
public static class ContainerContextExtensions
9+
{
10+
public static Playlists CreatePlaylists(this IContainer container)
11+
{
12+
return new Playlists(container.CreateViewModelServiceContainer(), container.Resolve<IPlaylistMapper>(), () => container.Resolve<IMediaRepository>());
13+
}
14+
15+
public static ViewModelServiceContainer CreateViewModelServiceContainer(this IContainer container)
16+
{
17+
return new ViewModelServiceContainer(CreateLoggingService(), CreateILoggingNotifcationService(), CreateILocalizationService(), container.Resolve<IMessenger>(), CreateSequenceService());
18+
}
19+
20+
public static Playlist CreatePlaylist(this IContainer container, PlaylistModel model)
21+
{
22+
var mapper = container.Resolve<IPlaylistMapper>();
23+
return mapper.Get(model);
24+
}
25+
26+
public static MediaItem CreateMediaItem(this IContainer container, MediaItemModel model)
27+
{
28+
var mapper = container.Resolve<IMediaItemMapper>();
29+
return mapper.Get(model);
30+
}
31+
32+
public static ISequenceService CreateSequenceService()
33+
{
34+
return Substitute.For<ISequenceService>();
35+
}
36+
37+
public static ILocalizationService CreateILocalizationService()
38+
{
39+
return Substitute.For<ILocalizationService>();
40+
}
41+
42+
public static ILoggingNotifcationService CreateILoggingNotifcationService()
43+
{
44+
return Substitute.For<ILoggingNotifcationService>();
45+
}
46+
47+
public static ILoggingService CreateLoggingService()
48+
{
49+
return Substitute.For<ILoggingService>();
50+
}
51+
52+
public static IDialogViewModel CreateDialogViewModel()
53+
{
54+
return Substitute.For<IDialogViewModel>();
55+
}
56+
57+
public static IMediaRepository CreateRepository()
58+
{
59+
return Substitute.For<IMediaRepository>();
60+
}
61+
}
62+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using System;
2+
using Maple.Domain;
3+
using Microsoft.VisualStudio.TestTools.UnitTesting;
4+
5+
namespace Maple.Test
6+
{
7+
public static class MediaItemModelContextModelExtensions
8+
{
9+
public static MediaItemModel CreateModelMediaItem(this TestContext context)
10+
{
11+
return new MediaItemModel()
12+
{
13+
CreatedBy = context.FullyQualifiedTestClassName,
14+
CreatedOn = DateTime.UtcNow,
15+
UpdatedOn = DateTime.UtcNow,
16+
UpdatedBy = context.FullyQualifiedTestClassName,
17+
Description = $"Description for {context.FullyQualifiedTestClassName} single MediaItem",
18+
Duration = 0,
19+
Id = 1,
20+
IsDeleted = false,
21+
Location = "Memory",
22+
PrivacyStatus = (int)PrivacyStatus.None,
23+
Sequence = 1,
24+
Title = $"Title for {context.FullyQualifiedTestClassName} single MediaItem",
25+
};
26+
}
27+
}
28+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using Maple.Domain;
4+
using Microsoft.VisualStudio.TestTools.UnitTesting;
5+
6+
namespace Maple.Test
7+
{
8+
public static class PlaylistModelContextExtensions
9+
{
10+
public static PlaylistModel CreateModelPlaylist(this TestContext context)
11+
{
12+
var playlist = new PlaylistModel()
13+
{
14+
CreatedBy = context.FullyQualifiedTestClassName,
15+
CreatedOn = DateTime.UtcNow,
16+
Description = $"Description for {context.FullyQualifiedTestClassName} Playlist",
17+
Id = 1,
18+
IsDeleted = false,
19+
IsShuffeling = false,
20+
Location = "Memory",
21+
MediaItems = new List<MediaItemModel>(),
22+
PrivacyStatus = (int)PrivacyStatus.None,
23+
RepeatMode = (int)RepeatMode.None,
24+
Sequence = 1,
25+
Title = $"Title for {context.FullyQualifiedTestClassName} Playlist",
26+
UpdatedBy = context.FullyQualifiedTestClassName,
27+
UpdatedOn = DateTime.UtcNow,
28+
};
29+
30+
return PopulatePlaylist(context, playlist);
31+
}
32+
33+
public static PlaylistModel PopulatePlaylist(this TestContext context, PlaylistModel playlist)
34+
{
35+
for (var i = 0; i < 4; i++)
36+
{
37+
playlist.MediaItems.Add(new MediaItemModel()
38+
{
39+
CreatedBy = context.FullyQualifiedTestClassName,
40+
CreatedOn = DateTime.UtcNow,
41+
UpdatedOn = DateTime.UtcNow,
42+
UpdatedBy = context.FullyQualifiedTestClassName,
43+
Description = $"Description for {context.FullyQualifiedTestClassName} MediaItem number {i}",
44+
Duration = 0,
45+
Id = 1,
46+
IsDeleted = false,
47+
Location = "Memory",
48+
Playlist = playlist,
49+
PlaylistId = playlist.Id,
50+
PrivacyStatus = (int)PrivacyStatus.None,
51+
Sequence = 0,
52+
Title = $"Title for {context.FullyQualifiedTestClassName} MediaItem number {i}",
53+
});
54+
}
55+
56+
return playlist;
57+
}
58+
}
59+
}

0 commit comments

Comments
 (0)