mirror of
https://github.com/Facepunch/sbox-public.git
synced 2025-12-23 22:48:07 -05:00
This commit imports the C# engine code and game files, excluding C++ source code. [Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
117 lines
3.4 KiB
C#
117 lines
3.4 KiB
C#
namespace Addon
|
|
{
|
|
[TestClass]
|
|
public partial class PackageTests
|
|
{
|
|
[TestMethod]
|
|
public void ParseIdent()
|
|
{
|
|
Assert.IsFalse( Package.TryParseIdent( "assetparty", out var _ ) );
|
|
Assert.IsFalse( Package.TryParseIdent( "asset_party", out var _ ) );
|
|
Assert.IsFalse( Package.TryParseIdent( "asset-party", out var _ ) );
|
|
Assert.IsFalse( Package.TryParseIdent( ".", out var _ ) );
|
|
Assert.IsFalse( Package.TryParseIdent( "@", out var _ ) );
|
|
Assert.IsFalse( Package.TryParseIdent( "#", out var _ ) );
|
|
Assert.IsFalse( Package.TryParseIdent( "/", out var _ ) );
|
|
|
|
{
|
|
Assert.IsTrue( Package.TryParseIdent( "asset.party", out var p ) );
|
|
Assert.AreEqual( "asset", p.org );
|
|
Assert.AreEqual( "party", p.package );
|
|
Assert.IsNull( p.version );
|
|
}
|
|
|
|
{
|
|
Assert.IsTrue( Package.TryParseIdent( "asset/party", out var p ) );
|
|
Assert.AreEqual( "asset", p.org );
|
|
Assert.AreEqual( "party", p.package );
|
|
Assert.IsNull( p.version );
|
|
}
|
|
|
|
}
|
|
|
|
[TestMethod]
|
|
public void ParseIdentWithVersion()
|
|
{
|
|
Assert.IsFalse( Package.TryParseIdent( "asset.party#poop", out var _ ) );
|
|
Assert.IsFalse( Package.TryParseIdent( "asset.party#!!", out var _ ) );
|
|
Assert.IsFalse( Package.TryParseIdent( "asset.party#0.234", out var _ ) );
|
|
Assert.IsFalse( Package.TryParseIdent( "asset.party#", out var _ ) );
|
|
|
|
{
|
|
Assert.IsTrue( Package.TryParseIdent( "asset.party#45366", out var p ) );
|
|
Assert.AreEqual( "asset", p.org );
|
|
Assert.AreEqual( "party", p.package );
|
|
Assert.AreEqual( 45366, p.version );
|
|
}
|
|
|
|
{
|
|
Assert.IsTrue( Package.TryParseIdent( "asset/party#45366", out var p ) );
|
|
Assert.AreEqual( "asset", p.org );
|
|
Assert.AreEqual( "party", p.package );
|
|
Assert.AreEqual( 45366, p.version );
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void ParseIdentWithUrl()
|
|
{
|
|
Assert.IsFalse( Package.TryParseIdent( "https://www.google.com/", out var _ ) );
|
|
|
|
{
|
|
Assert.IsTrue( Package.TryParseIdent( "https://asset.party/facepunch/sandbox", out var p ) );
|
|
Assert.AreEqual( "facepunch", p.org );
|
|
Assert.AreEqual( "sandbox", p.package );
|
|
Assert.IsNull( p.version );
|
|
}
|
|
|
|
{
|
|
Assert.IsTrue( Package.TryParseIdent( "https://sbox.game/facepunch/sandbox", out var p ) );
|
|
Assert.AreEqual( "facepunch", p.org );
|
|
Assert.AreEqual( "sandbox", p.package );
|
|
Assert.IsNull( p.version );
|
|
}
|
|
|
|
{
|
|
Assert.IsTrue( Package.TryParseIdent( "https://asset.party/facepunch/sandbox/", out var p ) );
|
|
Assert.AreEqual( "facepunch", p.org );
|
|
Assert.AreEqual( "sandbox", p.package );
|
|
Assert.IsNull( p.version );
|
|
}
|
|
|
|
{
|
|
Assert.IsTrue( Package.TryParseIdent( "https://asset.party/facepunch/sandbox#45366", out var p ) );
|
|
Assert.AreEqual( "facepunch", p.org );
|
|
Assert.AreEqual( "sandbox", p.package );
|
|
Assert.AreEqual( 45366, p.version );
|
|
}
|
|
|
|
|
|
{
|
|
Assert.IsTrue( Package.TryParseIdent( "https://asset.party/facepunch/sandbox/#45366", out var p ) );
|
|
Assert.AreEqual( "facepunch", p.org );
|
|
Assert.AreEqual( "sandbox", p.package );
|
|
Assert.AreEqual( 45366, p.version );
|
|
}
|
|
}
|
|
|
|
[TestMethod]
|
|
public void ParseIdentWithLocal()
|
|
{
|
|
Assert.IsTrue( Package.TryParseIdent( "asset.party#local", out var p ) );
|
|
|
|
Assert.IsTrue( p.local );
|
|
Assert.IsNull( p.version );
|
|
}
|
|
|
|
[TestMethod]
|
|
public async Task PackageFindAsync()
|
|
{
|
|
var result = await Package.FindAsync( "type:game", 200, 0 );
|
|
|
|
Assert.IsNotNull( result.Packages );
|
|
Assert.IsTrue( result.Packages.Length > 0 );
|
|
}
|
|
}
|
|
}
|