@ -88,19 +88,22 @@ namespace ICSharpCode.AddInManager2.Tests
@@ -88,19 +88,22 @@ namespace ICSharpCode.AddInManager2.Tests
{
Id = _ addIn1 . Manifest . PrimaryIdentity ,
Version = new SemanticVersion ( _ addIn1 . Version ) ,
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag ,
IsLatestVersion = false
} ;
FakePackage fakePackage1_new = new FakePackage ( )
{
Id = _ addIn1_new . Manifest . PrimaryIdentity ,
Version = new SemanticVersion ( _ addIn1_new . Version ) ,
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag ,
IsLatestVersion = true
} ;
FakePackage fakePackage2 = new FakePackage ( )
{
Id = _ addIn2 . Manifest . PrimaryIdentity ,
Version = new SemanticVersion ( _ addIn2 . Version ) ,
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag ,
IsLatestVersion = true
} ;
// List of NuGet repositories
@ -155,13 +158,15 @@ namespace ICSharpCode.AddInManager2.Tests
@@ -155,13 +158,15 @@ namespace ICSharpCode.AddInManager2.Tests
{
Id = _ addIn1 . Manifest . PrimaryIdentity ,
Version = new SemanticVersion ( _ addIn1 . Version ) ,
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag ,
IsLatestVersion = true
} ;
FakePackage fakePackage2 = new FakePackage ( )
{
Id = _ addIn2 . Manifest . PrimaryIdentity ,
Version = new SemanticVersion ( _ addIn2 . Version ) ,
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag ,
IsLatestVersion = true
} ;
// List of NuGet repositories
@ -225,18 +230,20 @@ namespace ICSharpCode.AddInManager2.Tests
@@ -225,18 +230,20 @@ namespace ICSharpCode.AddInManager2.Tests
CreateAddIns ( ) ;
_ addIn1 . Enabled = true ;
// Package to be shown in repository
// Packages to be shown in repository
FakePackage fakePackage1 = new FakePackage ( )
{
Id = _ addIn1 . Manifest . PrimaryIdentity ,
Version = new SemanticVersion ( _ addIn1 . Version ) ,
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag ,
IsLatestVersion = true
} ;
FakePackage fakePackage2 = new FakePackage ( )
{
Id = _ addIn2 . Manifest . PrimaryIdentity ,
Version = new SemanticVersion ( _ addIn2 . Version ) ,
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag ,
IsLatestVersion = true
} ;
// List of NuGet repositories
@ -272,6 +279,72 @@ namespace ICSharpCode.AddInManager2.Tests
@@ -272,6 +279,72 @@ namespace ICSharpCode.AddInManager2.Tests
Assert . That ( firstAddIn . Version , Is . EqualTo ( _ addIn2 . Version ) , "Version of 1st AddIn" ) ;
}
[Test]
public void SearchInstallableAddInsWithMultipleReleasesAndDownloadCountSorting ( )
{
CreateAddIns ( ) ;
_ addIn1 . Enabled = true ;
// Packages to be shown in repository
// To test correct sorting we let the newer release of addIn2 appear before the older one.
FakePackage fakePackage2_new = new FakePackage ( )
{
Id = _ addIn2_new . Manifest . PrimaryIdentity ,
Version = new SemanticVersion ( _ addIn2_new . Version ) ,
Tags = SharpDevelopAddInTag ,
DownloadCount = 3 0 ,
IsLatestVersion = true
} ;
FakePackage fakePackage1 = new FakePackage ( )
{
Id = _ addIn1 . Manifest . PrimaryIdentity ,
Version = new SemanticVersion ( _ addIn1 . Version ) ,
Tags = SharpDevelopAddInTag ,
DownloadCount = 1 0 ,
IsLatestVersion = true
} ;
FakePackage fakePackage2 = new FakePackage ( )
{
Id = _ addIn2 . Manifest . PrimaryIdentity ,
Version = new SemanticVersion ( _ addIn2 . Version ) ,
Tags = SharpDevelopAddInTag ,
IsLatestVersion = false
} ;
// List of NuGet repositories
List < PackageSource > registeredPackageSources = new List < PackageSource > ( ) ;
registeredPackageSources . Add ( new PackageSource ( "" , "Test Repository" ) ) ;
_ services . FakeRepositories . RegisteredPackageSources = registeredPackageSources ;
List < IPackageRepository > registeredPackageRepositories = new List < IPackageRepository > ( ) ;
FakeCorePackageRepository remoteRepository = new FakeCorePackageRepository ( ) ;
remoteRepository . Source = registeredPackageSources [ 0 ] . Source ;
remoteRepository . ReturnedPackages = ( new IPackage [ ] { fakePackage2_new , fakePackage1 , fakePackage2 } ) . AsQueryable ( ) ;
_ services . FakeRepositories . RegisteredPackageRepositories = registeredPackageRepositories ;
// PackageRepository service should return remoteRepository instance
_ services . FakeRepositories . GetRepositoryFromSourceCallback = delegate ( PackageSource packageSource )
{
return remoteRepository ;
} ;
FakeCorePackageRepository localRepository = new FakeCorePackageRepository ( ) ;
_ services . FakeNuGet . FakeCorePackageManager . LocalRepository = localRepository ;
localRepository . ReturnedPackages = ( new IPackage [ ] { } ) . AsQueryable ( ) ;
var viewModel = new AvailableAddInsViewModel ( _ services ) ;
viewModel . ReadPackagesAndWaitForUpdate ( ) ;
// There must be only 2 packages in list, because user should see only latest releases
Assert . That ( viewModel . AddInPackages . Count , Is . EqualTo ( 2 ) , "AddIn list must contain 2 items." ) ;
// fakePackage2_new is the first one, because it has a greater download count
AddInPackageViewModelBase firstAddIn = viewModel . AddInPackages [ 0 ] ;
Assert . That ( firstAddIn . Id , Is . EqualTo ( _ addIn2_new . Manifest . PrimaryIdentity ) , "Primary identity of 1st AddIn" ) ;
Assert . That ( firstAddIn . Name , Is . EqualTo ( _ addIn2_new . Manifest . PrimaryIdentity ) , "Name of 1st AddIn" ) ;
Assert . That ( firstAddIn . Version , Is . EqualTo ( _ addIn2_new . Version ) , "Version of 1st AddIn" ) ;
}
// [Test]
// public void FilteringOutNonSharpDevelopPackages()
// {
@ -335,9 +408,10 @@ namespace ICSharpCode.AddInManager2.Tests
@@ -335,9 +408,10 @@ namespace ICSharpCode.AddInManager2.Tests
{
fakePackages [ i ] = new FakePackage ( )
{
Id = _ addIn1 . Manifest . PrimaryIdentity + i . ToString ( ) ,
Id = _ addIn1 . Manifest . PrimaryIdentity + i . ToString ( "00" ) ,
Version = new SemanticVersion ( _ addIn1 . Version ) ,
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag ,
IsLatestVersion = true
} ;
}
@ -415,13 +489,15 @@ namespace ICSharpCode.AddInManager2.Tests
@@ -415,13 +489,15 @@ namespace ICSharpCode.AddInManager2.Tests
{
Id = _ addIn1 . Manifest . PrimaryIdentity ,
Version = new SemanticVersion ( _ addIn1 . Version ) ,
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag ,
IsLatestVersion = true
} ;
FakePackage fakePackage2 = new FakePackage ( )
{
Id = _ addIn2 . Manifest . PrimaryIdentity ,
Version = new SemanticVersion ( _ addIn2 . Version ) ,
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag ,
IsLatestVersion = true
} ;
_ addIn1 . Properties . Set ( ManagedAddIn . NuGetPackageIDManifestAttribute , fakePackage1 . Id ) ;
@ -512,13 +588,15 @@ namespace ICSharpCode.AddInManager2.Tests
@@ -512,13 +588,15 @@ namespace ICSharpCode.AddInManager2.Tests
{
Id = _ addIn_noVersion . Manifest . PrimaryIdentity ,
Version = new SemanticVersion ( "1.0.2.0" ) ,
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag ,
IsLatestVersion = true
} ;
FakePackage fakePackage2 = new FakePackage ( )
{
Id = _ addIn2 . Manifest . PrimaryIdentity ,
Version = new SemanticVersion ( _ addIn2 . Version ) ,
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag ,
IsLatestVersion = true
} ;
_ addIn_noVersion . Properties . Set ( ManagedAddIn . NuGetPackageIDManifestAttribute , fakePackage1 . Id ) ;
@ -609,19 +687,22 @@ namespace ICSharpCode.AddInManager2.Tests
@@ -609,19 +687,22 @@ namespace ICSharpCode.AddInManager2.Tests
{
Id = _ addIn1 . Manifest . PrimaryIdentity ,
Version = new SemanticVersion ( _ addIn1 . Version ) ,
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag ,
IsLatestVersion = false
} ;
FakePackage fakePackage1_new = new FakePackage ( )
{
Id = _ addIn1_new . Manifest . PrimaryIdentity ,
Version = new SemanticVersion ( _ addIn1_new . Version ) ,
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag ,
IsLatestVersion = true
} ;
FakePackage fakePackage2 = new FakePackage ( )
{
Id = _ addIn2 . Manifest . PrimaryIdentity ,
Version = new SemanticVersion ( _ addIn2 . Version ) ,
Tags = SharpDevelopAddInTag
Tags = SharpDevelopAddInTag ,
IsLatestVersion = true
} ;
_ addIn1 . Properties . Set ( ManagedAddIn . NuGetPackageIDManifestAttribute , fakePackage1_old . Id ) ;