15 changed files with 483 additions and 29 deletions
@ -0,0 +1,32 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.IO; |
||||||
|
using System.Runtime.Versioning; |
||||||
|
using NuGet; |
||||||
|
|
||||||
|
namespace ICSharpCode.PackageManagement.Design |
||||||
|
{ |
||||||
|
public class FakePackageAssemblyReference : IPackageAssemblyReference |
||||||
|
{ |
||||||
|
public FrameworkName TargetFramework { |
||||||
|
get { |
||||||
|
throw new NotImplementedException(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public string Name { get; set; } |
||||||
|
|
||||||
|
public string Path { |
||||||
|
get { |
||||||
|
throw new NotImplementedException(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public Stream GetStream() |
||||||
|
{ |
||||||
|
throw new NotImplementedException(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,45 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using NuGet; |
||||||
|
|
||||||
|
namespace ICSharpCode.PackageManagement |
||||||
|
{ |
||||||
|
public class RecentPackageInfo |
||||||
|
{ |
||||||
|
Version version; |
||||||
|
|
||||||
|
public RecentPackageInfo() |
||||||
|
{ |
||||||
|
} |
||||||
|
|
||||||
|
public RecentPackageInfo(IPackage package) |
||||||
|
: this(package.Id, package.Version) |
||||||
|
{ |
||||||
|
} |
||||||
|
|
||||||
|
public RecentPackageInfo(string id, Version version) |
||||||
|
{ |
||||||
|
this.Id = id; |
||||||
|
this.version = version; |
||||||
|
} |
||||||
|
|
||||||
|
public string Id { get; set; } |
||||||
|
|
||||||
|
public string Version { |
||||||
|
get { return version.ToString(); } |
||||||
|
set { version = new Version(value); } |
||||||
|
} |
||||||
|
|
||||||
|
public override string ToString() |
||||||
|
{ |
||||||
|
return String.Format("[RecentPackageInfo Id={0}, Version={1}]", Id, Version); |
||||||
|
} |
||||||
|
|
||||||
|
public bool IsMatch(IPackage package) |
||||||
|
{ |
||||||
|
return (package.Version.ToString() == Version) && (package.Id == Id); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,30 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.Collections.Generic; |
||||||
|
using ICSharpCode.PackageManagement; |
||||||
|
using NUnit.Framework; |
||||||
|
|
||||||
|
namespace PackageManagement.Tests.Helpers |
||||||
|
{ |
||||||
|
public static class RecentPackageInfoCollectionAssert |
||||||
|
{ |
||||||
|
public static void AreEqual(IEnumerable<RecentPackageInfo> expectedPackages, IEnumerable<RecentPackageInfo> actualPackages) |
||||||
|
{ |
||||||
|
var expectedPackagesAsList = ConvertToStringList(expectedPackages); |
||||||
|
var actualPackagesAsList = ConvertToStringList(actualPackages); |
||||||
|
|
||||||
|
CollectionAssert.AreEqual(expectedPackagesAsList, actualPackagesAsList); |
||||||
|
} |
||||||
|
|
||||||
|
static List<string> ConvertToStringList(IEnumerable<RecentPackageInfo> expectedPackages) |
||||||
|
{ |
||||||
|
List<string> items = new List<string>(); |
||||||
|
foreach (RecentPackageInfo recentPackage in expectedPackages) { |
||||||
|
items.Add(recentPackage.ToString()); |
||||||
|
} |
||||||
|
return items; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,92 @@ |
|||||||
|
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||||
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.IO; |
||||||
|
using System.Text; |
||||||
|
using System.Xml; |
||||||
|
using ICSharpCode.Core; |
||||||
|
using ICSharpCode.PackageManagement; |
||||||
|
using ICSharpCode.PackageManagement.Design; |
||||||
|
using NUnit.Framework; |
||||||
|
|
||||||
|
namespace PackageManagement.Tests |
||||||
|
{ |
||||||
|
[TestFixture] |
||||||
|
public class RecentPackageInfoTests |
||||||
|
{ |
||||||
|
[Test] |
||||||
|
public void ToString_IdAndVersionSpecified_ContainsIdAndVersion() |
||||||
|
{ |
||||||
|
var recentPackageInfo = new RecentPackageInfo("id", new Version("1.0")); |
||||||
|
|
||||||
|
string actual = recentPackageInfo.ToString(); |
||||||
|
|
||||||
|
string expected = "[RecentPackageInfo Id=id, Version=1.0]"; |
||||||
|
Assert.AreEqual(expected, actual); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void IsMatch_PackageWithSameIdAndVersionPassed_ReturnsTrue() |
||||||
|
{ |
||||||
|
string id = "id"; |
||||||
|
var version = new Version(1, 0); |
||||||
|
var recentPackageInfo = new RecentPackageInfo(id, version); |
||||||
|
var package = new FakePackage(id); |
||||||
|
package.Version = version; |
||||||
|
|
||||||
|
bool result = recentPackageInfo.IsMatch(package); |
||||||
|
|
||||||
|
Assert.IsTrue(result); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void IsMatch_PackageWithSameIdButDifferentVersionPassed_ReturnsFalse() |
||||||
|
{ |
||||||
|
string id = "id"; |
||||||
|
var version = new Version(1, 0); |
||||||
|
var recentPackageInfo = new RecentPackageInfo(id, version); |
||||||
|
var package = new FakePackage(id); |
||||||
|
package.Version = new Version(2, 0); |
||||||
|
|
||||||
|
bool result = recentPackageInfo.IsMatch(package); |
||||||
|
|
||||||
|
Assert.IsFalse(result); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void IsMatch_PackageWithDifferentIdButSameVersionPassed_ReturnsFalse() |
||||||
|
{ |
||||||
|
var version = new Version(1, 0); |
||||||
|
var recentPackageInfo = new RecentPackageInfo("id", version); |
||||||
|
var package = new FakePackage("different-id"); |
||||||
|
package.Version = version; |
||||||
|
|
||||||
|
bool result = recentPackageInfo.IsMatch(package); |
||||||
|
|
||||||
|
Assert.IsFalse(result); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Version_SerializeThenDeserializeRecentPackageInfoInPropertiesObject_ReturnsSameValueAfterDeserialization() |
||||||
|
{ |
||||||
|
var version = new Version(1, 0); |
||||||
|
var recentPackageInfo = new RecentPackageInfo("id", version); |
||||||
|
var properties = new Properties(); |
||||||
|
properties.Set<RecentPackageInfo>("RecentPackageInfo", recentPackageInfo); |
||||||
|
|
||||||
|
var xml = new StringBuilder(); |
||||||
|
var stringWriter = new StringWriter(xml); |
||||||
|
var writer = new XmlTextWriter(stringWriter); |
||||||
|
properties.Save(writer); |
||||||
|
|
||||||
|
var stringReader = new StringReader(xml.ToString()); |
||||||
|
var reader = new XmlTextReader(stringReader); |
||||||
|
properties = Properties.Load(reader); |
||||||
|
|
||||||
|
var deserializedRecentPackageInfo = properties.Get<RecentPackageInfo>("RecentPackageInfo", null); |
||||||
|
|
||||||
|
Assert.AreEqual(recentPackageInfo.Version, deserializedRecentPackageInfo.Version); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue