mirror of
https://gitgud.io/AbstractConcept/rimworld-animation-studio.git
synced 2024-08-15 00:43:27 +00:00
Initial commit
This commit is contained in:
commit
3c7cc0c973
8391 changed files with 704313 additions and 0 deletions
|
@ -0,0 +1,583 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using UnityEditor.Collaboration;
|
||||
using UnityEngine.TestTools;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace UnityEditor.Collaboration.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
internal class HistoryTests
|
||||
{
|
||||
private TestHistoryWindow _window;
|
||||
private TestRevisionsService _service;
|
||||
private CollabHistoryPresenter _presenter;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
_window = new TestHistoryWindow();
|
||||
_service = new TestRevisionsService();
|
||||
_presenter = new CollabHistoryPresenter(_window, new CollabHistoryItemFactory(), _service);
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void TearDown()
|
||||
{
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__PropagatesRevisionResult()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision(authorName: "authorName", comment: "comment", revisionID: "revisionID"),
|
||||
}
|
||||
};
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var item = _window.items.First();
|
||||
|
||||
Assert.AreEqual("revisionID", item.id);
|
||||
Assert.AreEqual("authorName", item.authorName);
|
||||
Assert.AreEqual("comment", item.comment);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__RevisionNumberingIsInOrder()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
RevisionsInRepo = 4,
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision(revisionID: "0"),
|
||||
new Revision(revisionID: "1"),
|
||||
new Revision(revisionID: "2"),
|
||||
new Revision(revisionID: "3"),
|
||||
}
|
||||
};
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var items = _window.items.ToArray();
|
||||
|
||||
Assert.AreEqual(4, items[0].index);
|
||||
Assert.AreEqual(3, items[1].index);
|
||||
Assert.AreEqual(2, items[2].index);
|
||||
Assert.AreEqual(1, items[3].index);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__RevisionNumberingChangesForMorePages()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
RevisionsInRepo = 12,
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision(revisionID: "0"),
|
||||
new Revision(revisionID: "1"),
|
||||
new Revision(revisionID: "2"),
|
||||
new Revision(revisionID: "3"),
|
||||
new Revision(revisionID: "4"),
|
||||
}
|
||||
};
|
||||
|
||||
_presenter.OnUpdatePage(1);
|
||||
var items = _window.items.ToArray();
|
||||
|
||||
Assert.AreEqual(12, items[0].index);
|
||||
Assert.AreEqual(11, items[1].index);
|
||||
Assert.AreEqual(10, items[2].index);
|
||||
Assert.AreEqual(9, items[3].index);
|
||||
Assert.AreEqual(8, items[4].index);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__ObtainedIsCalculated()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision(isObtained: false),
|
||||
new Revision(isObtained: true),
|
||||
}
|
||||
};
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var items = _window.items.ToArray();
|
||||
|
||||
Assert.IsFalse(items[0].obtained);
|
||||
Assert.IsTrue(items[1].obtained);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__CurrentIsCalculated()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision(revisionID: "1"),
|
||||
new Revision(revisionID: "2"),
|
||||
new Revision(revisionID: "3"),
|
||||
}
|
||||
};
|
||||
_service.tipRevision = "2";
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var items = _window.items.ToArray();
|
||||
|
||||
Assert.AreEqual(false, items[0].current);
|
||||
Assert.AreEqual(true, items[1].current);
|
||||
Assert.AreEqual(false, items[2].current);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__InProgressIsCalculated()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision(revisionID: "1"),
|
||||
new Revision(revisionID: "2"),
|
||||
new Revision(revisionID: "3"),
|
||||
}
|
||||
};
|
||||
_window.inProgressRevision = "2";
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var items = _window.items.ToArray();
|
||||
|
||||
Assert.IsFalse(items[0].inProgress);
|
||||
Assert.IsTrue(items[1].inProgress);
|
||||
Assert.IsFalse(items[2].inProgress);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__EnabledIsCalculated()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision(revisionID: "0"),
|
||||
}
|
||||
};
|
||||
_window.revisionActionsEnabled = true;
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var item = _window.items.First();
|
||||
|
||||
Assert.AreEqual(true, item.enabled);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__DisabledIsCalculated()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision(revisionID: "0"),
|
||||
}
|
||||
};
|
||||
_window.revisionActionsEnabled = false;
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var item = _window.items.First();
|
||||
|
||||
Assert.AreEqual(false, item.enabled);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__BuildStateHasNoneWhenNotTip()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision(revisionID: "1"),
|
||||
}
|
||||
};
|
||||
_service.tipRevision = "0";
|
||||
_presenter.BuildServiceEnabled = false;
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var item = _window.items.First();
|
||||
|
||||
Assert.AreEqual(BuildState.None, item.buildState);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__BuildStateTipHasNoneWhenEnabled()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision(revisionID: "0"),
|
||||
}
|
||||
};
|
||||
_service.tipRevision = "0";
|
||||
_presenter.BuildServiceEnabled = true;
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var item = _window.items.First();
|
||||
|
||||
Assert.AreEqual(BuildState.None, item.buildState);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__BuildStateHasConfigureWhenTip()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision(revisionID: "0"),
|
||||
}
|
||||
};
|
||||
_service.tipRevision = "0";
|
||||
_presenter.BuildServiceEnabled = false;
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var item = _window.items.First();
|
||||
|
||||
Assert.AreEqual(BuildState.Configure, item.buildState);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__BuildStateHasConfigureWhenZeroBuildStatus()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision(revisionID: "0"),
|
||||
}
|
||||
};
|
||||
_service.tipRevision = "0";
|
||||
_presenter.BuildServiceEnabled = false;
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var item = _window.items.First();
|
||||
|
||||
Assert.AreEqual(BuildState.Configure, item.buildState);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__BuildStateHasNoneWhenZeroBuildStatuses()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision(revisionID: "0"),
|
||||
}
|
||||
};
|
||||
_service.tipRevision = "0";
|
||||
_presenter.BuildServiceEnabled = true;
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var item = _window.items.First();
|
||||
|
||||
Assert.AreEqual(BuildState.None, item.buildState);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__BuildStateHasSuccessWhenCompleteAndSucceeded()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision
|
||||
(
|
||||
revisionID: "0",
|
||||
buildStatuses: new CloudBuildStatus[1]
|
||||
{
|
||||
new CloudBuildStatus(complete: true, success: true),
|
||||
}
|
||||
),
|
||||
}
|
||||
};
|
||||
_service.tipRevision = "0";
|
||||
_presenter.BuildServiceEnabled = true;
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var item = _window.items.First();
|
||||
|
||||
Assert.AreEqual(BuildState.Success, item.buildState);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__BuildStateHasInProgress()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision
|
||||
(
|
||||
revisionID: "0",
|
||||
buildStatuses: new CloudBuildStatus[1]
|
||||
{
|
||||
new CloudBuildStatus(complete: false),
|
||||
}
|
||||
),
|
||||
}
|
||||
};
|
||||
_service.tipRevision = "0";
|
||||
_presenter.BuildServiceEnabled = true;
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var item = _window.items.First();
|
||||
|
||||
Assert.AreEqual(BuildState.InProgress, item.buildState);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__BuildStateHasFailure()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision
|
||||
(
|
||||
revisionID: "0",
|
||||
buildStatuses: new CloudBuildStatus[1]
|
||||
{
|
||||
new CloudBuildStatus(complete: true, success: false),
|
||||
}
|
||||
),
|
||||
}
|
||||
};
|
||||
_service.tipRevision = "0";
|
||||
_presenter.BuildServiceEnabled = true;
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var item = _window.items.First();
|
||||
|
||||
Assert.AreEqual(BuildState.Failed, item.buildState);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__BuildStateHasFailureWhenAnyBuildsFail()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision
|
||||
(
|
||||
revisionID: "0",
|
||||
buildStatuses: new CloudBuildStatus[3]
|
||||
{
|
||||
new CloudBuildStatus(complete: true, success: false),
|
||||
new CloudBuildStatus(complete: true, success: false),
|
||||
new CloudBuildStatus(complete: true, success: true),
|
||||
}
|
||||
),
|
||||
}
|
||||
};
|
||||
_service.tipRevision = "0";
|
||||
_presenter.BuildServiceEnabled = true;
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var item = _window.items.First();
|
||||
|
||||
Assert.AreEqual(BuildState.Failed, item.buildState);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__ChangesPropagateThrough()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision(revisionID: "0", entries: GenerateChangeActions(3)),
|
||||
}
|
||||
};
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var item = _window.items.First();
|
||||
var changes = item.changes.ToList();
|
||||
|
||||
Assert.AreEqual("Path0", changes[0].path);
|
||||
Assert.AreEqual("Path1", changes[1].path);
|
||||
Assert.AreEqual("Path2", changes[2].path);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__ChangesTotalIsCalculated()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision(revisionID: "0", entries: GenerateChangeActions(3)),
|
||||
}
|
||||
};
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var item = _window.items.First();
|
||||
|
||||
Assert.AreEqual(3, item.changes.Count);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__ChangesTruncatedIsCalculated()
|
||||
{
|
||||
for (var i = 0; i < 20; i++)
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision(revisionID: "0", entries: GenerateChangeActions(i)),
|
||||
}
|
||||
};
|
||||
|
||||
_presenter.OnUpdatePage(0);
|
||||
var item = _window.items.First();
|
||||
|
||||
Assert.AreEqual(i > 10, item.changesTruncated);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__OnlyKeeps10ChangeActions()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision(authorName: "Test", author: "test", entries: GenerateChangeActions(12)),
|
||||
}
|
||||
};
|
||||
|
||||
_presenter.OnUpdatePage(1);
|
||||
var item = _window.items.First();
|
||||
|
||||
Assert.AreEqual(10, item.changes.Count);
|
||||
Assert.AreEqual(12, item.changesTotal);
|
||||
Assert.AreEqual(true, item.changesTruncated);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__DeduplicatesMetaFiles()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision
|
||||
(
|
||||
authorName: "Test",
|
||||
author: "test",
|
||||
revisionID: "",
|
||||
entries: new ChangeAction[2]
|
||||
{
|
||||
new ChangeAction(path: "Path1", action: "Action1"),
|
||||
new ChangeAction(path: "Path1.meta", action: "Action1"),
|
||||
}
|
||||
),
|
||||
}
|
||||
};
|
||||
|
||||
_presenter.OnUpdatePage(1);
|
||||
var item = _window.items.First();
|
||||
|
||||
Assert.AreEqual(1, item.changes.Count);
|
||||
Assert.AreEqual(1, item.changesTotal);
|
||||
Assert.AreEqual("Path1", item.changes.First().path);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CollabHistoryPresenter_OnUpdatePage__FolderMetaFilesAreCounted()
|
||||
{
|
||||
_service.result = new RevisionsResult()
|
||||
{
|
||||
Revisions = new List<Revision>()
|
||||
{
|
||||
new Revision
|
||||
(
|
||||
authorName: "Test",
|
||||
author: "test",
|
||||
entries: new ChangeAction[1]
|
||||
{
|
||||
new ChangeAction(path: "Folder1.meta", action: "Action1"),
|
||||
}
|
||||
),
|
||||
}
|
||||
};
|
||||
|
||||
_presenter.OnUpdatePage(1);
|
||||
var item = _window.items.First();
|
||||
|
||||
Assert.AreEqual(1, item.changes.Count);
|
||||
Assert.AreEqual(1, item.changesTotal);
|
||||
Assert.AreEqual("Folder1", item.changes.First().path);
|
||||
}
|
||||
|
||||
private static ChangeAction[] GenerateChangeActions(int count)
|
||||
{
|
||||
var entries = new ChangeAction[count];
|
||||
for (var i = 0; i < count; i++)
|
||||
entries[i] = new ChangeAction(path: "Path" + i, action: "Action" + i);
|
||||
return entries;
|
||||
}
|
||||
}
|
||||
|
||||
internal class TestRevisionsService : IRevisionsService
|
||||
{
|
||||
public RevisionsResult result;
|
||||
public event RevisionsDelegate FetchRevisionsCallback;
|
||||
|
||||
public string tipRevision { get; set; }
|
||||
public string currentUser { get; set; }
|
||||
|
||||
public void GetRevisions(int offset, int count)
|
||||
{
|
||||
if(FetchRevisionsCallback != null)
|
||||
{
|
||||
FetchRevisionsCallback(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal class TestHistoryWindow : ICollabHistoryWindow
|
||||
{
|
||||
public IEnumerable<RevisionData> items;
|
||||
|
||||
public bool revisionActionsEnabled { get; set; }
|
||||
public int itemsPerPage { get; set; }
|
||||
public string errMessage { get; set; }
|
||||
public string inProgressRevision { get; set; }
|
||||
public PageChangeAction OnPageChangeAction { get; set; }
|
||||
public RevisionAction OnGoBackAction { get; set; }
|
||||
public RevisionAction OnUpdateAction { get; set; }
|
||||
public RevisionAction OnRestoreAction { get; set; }
|
||||
public ShowBuildAction OnShowBuildAction { get; set; }
|
||||
public Action OnShowServicesAction { get; set; }
|
||||
|
||||
public void UpdateState(HistoryState state, bool force)
|
||||
{
|
||||
}
|
||||
|
||||
public void UpdateRevisions(IEnumerable<RevisionData> items, string tip, int totalRevisions, int currPage)
|
||||
{
|
||||
this.items = items;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 23a56a19774ed42b6b65646af08a003c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"name": "Unity.CollabProxy.EditorTests",
|
||||
"references": [
|
||||
"Unity.CollabProxy.Editor"
|
||||
],
|
||||
"optionalUnityReferences": [
|
||||
"TestAssemblies"
|
||||
],
|
||||
"includePlatforms": [
|
||||
"Editor"
|
||||
],
|
||||
"excludePlatforms": []
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 782de34c17796430ba8d0ceddb60944e
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Loading…
Add table
Add a link
Reference in a new issue