@ -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,12 +279,78 @@ namespace ICSharpCode.AddInManager2.Tests
@@ -272,12 +279,78 @@ 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()
// {
// CreateAddIns();
// _addIn1.Enabled = true;
//
//
// // Package to be shown in repository
// FakePackage fakePackage1 = new FakePackage()
// {
@ -290,33 +363,33 @@ namespace ICSharpCode.AddInManager2.Tests
@@ -290,33 +363,33 @@ namespace ICSharpCode.AddInManager2.Tests
// Version = new SemanticVersion(_addIn2.Version),
// Tags = SharpDevelopAddInTag
// };
//
//
// // 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[] { 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();
//
//
// Assert.That(viewModel.AddInPackages.Count, Is.EqualTo(1), "AddIn list must contain 1 item.");
//
//
// AddInPackageViewModelBase firstAddIn = viewModel.AddInPackages[0];
// Assert.That(firstAddIn.Id, Is.EqualTo(_addIn2.Manifest.PrimaryIdentity), "Primary identity of 1st AddIn");
// Assert.That(firstAddIn.Name, Is.EqualTo(_addIn2.Manifest.PrimaryIdentity), "Name of 1st AddIn");
@ -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 ) ;