mirror of
https://github.com/storytold/Azure-Kinect-Sample-for-Unity.git
synced 2026-10-17 00:23:16 +00:00
sample
This commit is contained in:
+281
@@ -0,0 +1,281 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace UnityEditor.PackageManager.UI.Tests
|
||||
{
|
||||
internal class PackageSets
|
||||
{
|
||||
private static readonly PackageSets _instance = new PackageSets();
|
||||
public static PackageSets Instance { get { return _instance; } }
|
||||
|
||||
private static readonly System.Random Random = new System.Random(1);
|
||||
private static string RandomString(int length)
|
||||
{
|
||||
const string chars = "abcdefghijklmnopqrstuvwxyz";
|
||||
return new string(Enumerable.Repeat(chars, length)
|
||||
.Select(s => s[Random.Next(s.Length)]).ToArray());
|
||||
}
|
||||
|
||||
private static readonly string[] Words = new[] { "lorem", "ipsum", "dolor", "sit", "amet", "consectetuer",
|
||||
"adipiscing", "elit", "sed", "diam", "nonummy", "nibh", "euismod",
|
||||
"tincidunt", "ut", "laoreet", "dolore", "magna", "aliquam", "erat" };
|
||||
|
||||
private static string LoremIpsum(int numParagraphs, int minSentences, int maxSentences, int minWords, int maxWords)
|
||||
{
|
||||
var result = new StringBuilder();
|
||||
|
||||
for (var p = 0; p < numParagraphs; p++)
|
||||
{
|
||||
var numSentences = Random.Next(maxSentences - minSentences) + minSentences + 1;
|
||||
for (var s = 0; s < numSentences; s++)
|
||||
{
|
||||
var numWords = Random.Next(maxWords - minWords) + minWords + 1;
|
||||
for (var w = 0; w < numWords; w++)
|
||||
{
|
||||
if (p == 0 && s == 0 && w == 0)
|
||||
{
|
||||
result.Append("Lorem ipsum dolor sit");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (w == 0)
|
||||
{
|
||||
var firstWord = Words [Random.Next (Words.Length)];
|
||||
firstWord = char.ToUpper (firstWord [0]) + firstWord.Substring (1);
|
||||
result.Append (firstWord);
|
||||
}
|
||||
else
|
||||
{
|
||||
result.Append (" ");
|
||||
result.Append (Words [Random.Next (Words.Length)]);
|
||||
}
|
||||
}
|
||||
}
|
||||
result.Append(". ");
|
||||
}
|
||||
result.Append(System.Environment.NewLine);
|
||||
result.Append(System.Environment.NewLine);
|
||||
}
|
||||
|
||||
return result.ToString();
|
||||
}
|
||||
|
||||
private int _count = 0;
|
||||
|
||||
public PackageInfo Single(string name = null, string version = null)
|
||||
{
|
||||
var type = Random.NextDouble() > 0.5 ? PackageSource.Unknown : PackageSource.Registry;
|
||||
return Single(type, name, version);
|
||||
}
|
||||
|
||||
public PackageInfo Single(PackageSource type, string name = null, string version = null, bool isCurrent = true, bool isVerified = false)
|
||||
{
|
||||
if (name == null)
|
||||
name = RandomString(Random.Next(5, 10));
|
||||
if (version == null)
|
||||
{
|
||||
version = string.Format("1.0.{0}", _count);
|
||||
if (Random.NextDouble() > 0.5)
|
||||
version += "-preview";
|
||||
}
|
||||
|
||||
var group = UpmBaseOperation.GroupName(type);
|
||||
var package = new PackageInfo
|
||||
{
|
||||
DisplayName = char.ToUpper(name[0]) + name.Substring(1),
|
||||
Name = string.Format("com.unity.{0}", name),
|
||||
Description = LoremIpsum(Random.Next(3,5), 2, 10, 5, 20),
|
||||
PackageId = string.Format("com.unity.{0}@{1}", name, version),
|
||||
State = PackageState.UpToDate,
|
||||
Group = group,
|
||||
Version = version,
|
||||
IsVerified = isVerified,
|
||||
IsCurrent = isCurrent,
|
||||
IsLatest = false,
|
||||
Origin = type,
|
||||
Category = null,
|
||||
Errors = new List<Error>()
|
||||
};
|
||||
|
||||
_count++;
|
||||
|
||||
return package;
|
||||
}
|
||||
|
||||
public List<PackageInfo> Many(int count, bool onlyPackageGroup = false)
|
||||
{
|
||||
return Many(null, count, onlyPackageGroup);
|
||||
}
|
||||
|
||||
public List<PackageInfo> Many(string name, int count, bool onlyPackageGroup = false)
|
||||
{
|
||||
var packages = new List<PackageInfo>();
|
||||
for (var i = 0; i < count; i++)
|
||||
{
|
||||
var package = Single(name);
|
||||
packages.Add(package);
|
||||
}
|
||||
|
||||
// At least one is set to a module and one to a package
|
||||
if (packages.Count > 1)
|
||||
{
|
||||
packages[0].Group = PackageGroupOrigins.Packages.ToString();
|
||||
packages[1].Group = PackageGroupOrigins.BuiltInPackages.ToString();
|
||||
}
|
||||
|
||||
if (onlyPackageGroup)
|
||||
packages.SetGroup(PackageGroupOrigins.Packages.ToString());
|
||||
|
||||
if (name != null)
|
||||
{
|
||||
packages.SetCurrent(false);
|
||||
packages.SetLatest(false);
|
||||
|
||||
if (count > 1)
|
||||
{
|
||||
packages.First().IsCurrent = true;
|
||||
packages.First().IsLatest = false;
|
||||
packages.Last().IsCurrent = false;
|
||||
packages.Last().IsLatest = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
packages.First().IsCurrent = true;
|
||||
packages.First().IsLatest = true;
|
||||
}
|
||||
}
|
||||
|
||||
return packages.OrderBy(p => p.DisplayName).ToList();
|
||||
}
|
||||
|
||||
public List<PackageInfo> TestData()
|
||||
{
|
||||
var packages = Many(5);
|
||||
packages[0].State = PackageState.UpToDate;
|
||||
packages[1].State = PackageState.Outdated;
|
||||
packages[2].State = PackageState.InProgress;
|
||||
packages[3].State = PackageState.Error;
|
||||
|
||||
return packages;
|
||||
}
|
||||
|
||||
// Package that actually exist. Useful when using test package that will be added to manifest
|
||||
public List<PackageInfo> RealPackages()
|
||||
{
|
||||
var packages = new List<PackageInfo>();
|
||||
|
||||
// Don't add this package if it exists
|
||||
if (PackageCollection.Instance.GetPackageByName("a") == null)
|
||||
{
|
||||
var package = new PackageInfo
|
||||
{
|
||||
DisplayName = "A",
|
||||
Name = "a",
|
||||
Description = LoremIpsum(Random.Next(3, 5), 2, 10, 5, 20),
|
||||
PackageId = "a@1.0.1",
|
||||
State = PackageState.UpToDate,
|
||||
Version = "1.0.1",
|
||||
Group = PackageGroupOrigins.Packages.ToString(),
|
||||
IsCurrent = true,
|
||||
IsLatest = true,
|
||||
Errors = new List<Error>()
|
||||
};
|
||||
packages.Add(package);
|
||||
}
|
||||
|
||||
if (PackageCollection.Instance.GetPackageByName("b") == null)
|
||||
{
|
||||
var package = new PackageInfo
|
||||
{
|
||||
DisplayName = "B",
|
||||
Name = "b",
|
||||
Description = LoremIpsum(Random.Next(3, 5), 2, 10, 5, 20),
|
||||
PackageId = "b@1.0.1",
|
||||
State = PackageState.UpToDate,
|
||||
Version = "1.0.1",
|
||||
Group = PackageGroupOrigins.Packages.ToString(),
|
||||
IsCurrent = true,
|
||||
IsLatest = true,
|
||||
Errors = new List<Error>()
|
||||
};
|
||||
packages.Add(package);
|
||||
}
|
||||
|
||||
if (PackageCollection.Instance.GetPackageByName("c") == null)
|
||||
{
|
||||
var package = new PackageInfo
|
||||
{
|
||||
DisplayName = "C",
|
||||
Name = "c",
|
||||
Description = LoremIpsum(Random.Next(3, 5), 2, 10, 5, 20),
|
||||
PackageId = "c@1.0.1",
|
||||
State = PackageState.UpToDate,
|
||||
Version = "1.0.1",
|
||||
Group = PackageGroupOrigins.Packages.ToString(),
|
||||
IsCurrent = true,
|
||||
IsLatest = true,
|
||||
Errors = new List<Error>()
|
||||
};
|
||||
packages.Add(package);
|
||||
}
|
||||
|
||||
if (PackageCollection.Instance.GetPackageByName("d") == null)
|
||||
{
|
||||
var package = new PackageInfo
|
||||
{
|
||||
DisplayName = "NonExistingVersion(d)",
|
||||
Name = "d",
|
||||
Description = "Non existing package", //LoremIpsum(Random.Next(3, 5), 2, 10, 5, 20),
|
||||
PackageId = "d@4.0.0",
|
||||
State = PackageState.UpToDate,
|
||||
Version = "4.0.0",
|
||||
Group = PackageGroupOrigins.Packages.ToString(),
|
||||
IsCurrent = true,
|
||||
IsLatest = true,
|
||||
Errors = new List<Error>()
|
||||
};
|
||||
packages.Add(package);
|
||||
}
|
||||
|
||||
if (PackageCollection.Instance.GetPackageByName("nonexistingpackage") == null)
|
||||
{
|
||||
var package = new PackageInfo
|
||||
{
|
||||
DisplayName = "NonExistingPackage",
|
||||
Name = "nonexistingpackage",
|
||||
Description = LoremIpsum(Random.Next(3, 5), 2, 10, 5, 20),
|
||||
PackageId = "nonexistingpackage@0.0.1",
|
||||
State = PackageState.UpToDate,
|
||||
Version = "0.0.1",
|
||||
Group = PackageGroupOrigins.Packages.ToString(),
|
||||
IsCurrent = true,
|
||||
IsLatest = true,
|
||||
Errors = new List<Error>()
|
||||
};
|
||||
packages.Add(package);
|
||||
}
|
||||
|
||||
return packages;
|
||||
}
|
||||
|
||||
public List<PackageInfo> Outdated()
|
||||
{
|
||||
const string name = "TestOutdated";
|
||||
|
||||
var packageA = Single(PackageSource.Registry, name, "1.0.1");
|
||||
var packageB = Single(PackageSource.Registry, name, "1.0.2");
|
||||
packageA.State = PackageState.Outdated;
|
||||
packageB.IsCurrent = true;
|
||||
packageB.IsLatest = false;
|
||||
|
||||
packageB.State = PackageState.UpToDate;
|
||||
packageB.IsCurrent = false;
|
||||
packageB.IsLatest = true;
|
||||
|
||||
var packages = new List<PackageInfo> {packageA, packageB};
|
||||
|
||||
return packages;
|
||||
}
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a5edd19845e0e426eb775477a7988a4a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
using System.Collections.Generic;
|
||||
using NUnit.Framework;
|
||||
using UnityEditor.Experimental.UIElements;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Experimental.UIElements;
|
||||
|
||||
namespace UnityEditor.PackageManager.UI.Tests
|
||||
{
|
||||
internal abstract class UITests<TWindow> where TWindow : EditorWindow
|
||||
{
|
||||
private TWindow Window { get; set; }
|
||||
protected VisualElement Container { get { return Window.GetRootVisualContainer(); } }
|
||||
protected MockOperationFactory Factory { get; private set; }
|
||||
|
||||
[OneTimeSetUp]
|
||||
protected void OneTimeSetUp()
|
||||
{
|
||||
Factory = new MockOperationFactory();
|
||||
OperationFactory.Instance = Factory;
|
||||
|
||||
Window = EditorWindow.GetWindow<TWindow>();
|
||||
Window.Show();
|
||||
}
|
||||
|
||||
[OneTimeTearDown]
|
||||
protected void OneTimeTearDown()
|
||||
{
|
||||
OperationFactory.Reset();
|
||||
Window = null;
|
||||
|
||||
if (TestContext.CurrentContext.Result.FailCount <= 0)
|
||||
{
|
||||
PackageCollection.Instance.UpdatePackageCollection(true);
|
||||
}
|
||||
}
|
||||
|
||||
protected void SetSearchPackages(IEnumerable<PackageInfo> packages)
|
||||
{
|
||||
Factory.SearchOperation = new MockSearchOperation(Factory, packages);
|
||||
PackageCollection.Instance.FetchSearchCache(true);
|
||||
}
|
||||
|
||||
protected void SetListPackages(IEnumerable<PackageInfo> packages)
|
||||
{
|
||||
Factory.Packages = packages;
|
||||
PackageCollection.Instance.FetchListCache(true);
|
||||
}
|
||||
|
||||
protected static Error MakeError(ErrorCode code, string message)
|
||||
{
|
||||
var error = "{\"errorCode\" : " + (uint)code + ", \"message\" : \"" + message + "\"}";
|
||||
return JsonUtility.FromJson<Error>(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 76078ddafb924ce19edc6034201cb15b
|
||||
timeCreated: 1507838870
|
||||
Reference in New Issue
Block a user