#develop (short for SharpDevelop) is a free IDE for .NET programming languages.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

216 lines
6.2 KiB

// Copyright (c) 2014 AlphaSierraPapa for the SharpDevelop Team
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this
// software and associated documentation files (the "Software"), to deal in the Software
// without restriction, including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
// to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or
// substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.Versioning;
using NuGet;
namespace ICSharpCode.PackageManagement.Design
{
public class FakePackage : IPackageFromRepository
{
public Stream Stream = null;
public List<string> AuthorsList = new List<string>();
public List<string> OwnersList = new List<string>();
public List<IPackageFile> FilesList = new List<IPackageFile>();
public List<PackageDependency> DependenciesList =
new List<PackageDependency>();
public List<IPackageAssemblyReference> AssemblyReferenceList =
new List<IPackageAssemblyReference>();
public FakePackage()
: this(String.Empty)
{
}
public FakePackage(string id)
: this(id, "1.0.0.0")
{
}
public FakePackage(string id, string version)
{
this.Id = id;
this.Description = String.Empty;
this.Version = new SemanticVersion(version);
this.Listed = true;
this.IsLatestVersion = true;
}
public static FakePackage CreatePackageWithVersion(string version)
{
return CreatePackageWithVersion("Test", version);
}
public static FakePackage CreatePackageWithVersion(string id, string version)
{
return new FakePackage(id, version);
}
public string Id { get; set; }
public SemanticVersion Version { get; set; }
public string Title { get; set; }
public Uri IconUrl { get; set; }
public Uri LicenseUrl { get; set; }
public Uri ProjectUrl { get; set; }
public bool RequireLicenseAcceptance { get; set; }
public string Description { get; set; }
public string Summary { get; set; }
public string Language { get; set; }
public string Tags { get; set; }
public Uri ReportAbuseUrl { get; set; }
public int DownloadCount { get; set; }
public int RatingsCount { get; set; }
public double Rating { get; set; }
public IEnumerable<IPackageAssemblyReference> AssemblyReferences {
get { return AssemblyReferenceList; }
}
public IEnumerable<string> Authors {
get { return AuthorsList; }
}
public IEnumerable<string> Owners {
get { return OwnersList; }
}
public IEnumerable<IPackageFile> GetFiles()
{
return FilesList;
}
public Stream GetStream()
{
return Stream;
}
public override string ToString()
{
return String.Format("{0} {1}", Id, Version);
}
public override bool Equals(object obj)
{
IPackage rhs = obj as IPackage;
if (rhs != null) {
return (Id == rhs.Id) && (Version == rhs.Version);
}
return false;
}
public override int GetHashCode()
{
return base.GetHashCode();
}
public void AddAuthor(string author)
{
AuthorsList.Add(author);
}
public void AddDependency(string id, SemanticVersion minVersion, SemanticVersion maxVersion)
{
var versionSpec = new VersionSpec();
versionSpec.MinVersion = minVersion;
versionSpec.MaxVersion = maxVersion;
var dependency = new PackageDependency(id, versionSpec);
DependenciesList.Add(dependency);
}
public void AddDependency(string id)
{
DependenciesList.Add(new PackageDependency(id));
}
public List<FrameworkAssemblyReference> FrameworkAssembliesList =
new List<FrameworkAssemblyReference>();
public IEnumerable<FrameworkAssemblyReference> FrameworkAssemblies {
get { return FrameworkAssembliesList; }
}
public FakePackageRepository FakePackageRepository = new FakePackageRepository();
public IPackageRepository Repository {
get { return FakePackageRepository; }
}
public bool HasDependencies { get; set; }
public void AddFile(string fileName)
{
var file = new PhysicalPackageFile();
file.TargetPath = fileName;
FilesList.Add(file);
}
public DateTime? LastUpdated { get; set; }
public bool IsLatestVersion { get; set; }
public Nullable<DateTimeOffset> Published { get; set; }
public string ReleaseNotes { get; set; }
public string Copyright { get; set; }
public bool IsAbsoluteLatestVersion { get; set; }
public bool Listed { get; set; }
public IEnumerable<PackageDependencySet> DependencySets {
get {
return new PackageDependencySet[] {
new PackageDependencySet(null, DependenciesList)
};
}
}
public List<FrameworkName> SupportedFrameworks = new List<FrameworkName>();
public FrameworkName AddSupportedFramework(string identifier)
{
var framework = new FrameworkName(identifier);
SupportedFrameworks.Add(framework);
return framework;
}
public IEnumerable<FrameworkName> GetSupportedFrameworks()
{
return SupportedFrameworks;
}
List<PackageReferenceSet> FakePackageAssemblyReferences =
new List<PackageReferenceSet>();
public ICollection<PackageReferenceSet> PackageAssemblyReferences {
get { return FakePackageAssemblyReferences; }
}
public void AddPackageReferences(params string[] names)
{
var frameworkName = new FrameworkName(".NET Framework, Version=4.0");
var packageReferenceSet = new PackageReferenceSet(frameworkName, names);
FakePackageAssemblyReferences.Add(packageReferenceSet);
}
public Version MinClientVersion { get; set; }
public Uri GalleryUrl { get; set; }
public bool DevelopmentDependency { get; set; }
}
}