예제 #1
0
 public void ParseLogOutput()
 {
     var processControl = new ProcessObserver<ChangeLogInfo>();
     PlasticXmlOutputParser.ChangeLogInfoFromTextReaderXml(new StringReader(Resources.logoutput), processControl, CancellationToken.None);
     var output = processControl.Output.ToList();
     Assert.AreEqual(1, output.Count);
     var first = output[0];
     Assert.AreEqual(2114, first.ChangesetId);
     Assert.AreEqual(242, first.Changes.Count);
 }
예제 #2
0
 public void ParseAddOutputTest()
 {
     var processControl = new ProcessObserver<AddedInfo>();
     Plastic.ParseAddOutput(new StringReader(Resources.add), processControl, CancellationToken.None);
     var output = processControl.Output.ToList();
     Assert.AreEqual(35, output.Count);
     var first = output[0];
     Assert.AreEqual(@"b:\cm\monkeyfarm\Plastic", first.Path);
     Assert.AreEqual(OperationStatus.Success, first.Status);
 }
예제 #3
0
        /// <summary>
        /// </summary>
        /// <param name="msg">A <see cref="T:System.Windows.Forms.Message"/>, passed by reference, that represents the window message to process.</param>
        /// <param name="keyData">One of the <see cref="T:System.Windows.Forms.Keys"/> values that represents the key to process.</param>
        /// <returns>
        /// true if the character was processed by the control; otherwise, false.
        /// </returns>
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (this.InterJetAvailabilityOfFlightsHandler.IsWebServiceRuning)
            {
                if (ProcessObserver.HandleEvent(ref msg, keyData))
                {
                    return(true);
                }
            }

            return(base.ProcessCmdKey(ref msg, keyData));
        }
예제 #4
0
 public void ParseXLinkWritableTest()
 {
     var obs = new ProcessObserver<XLinkInfo, Unit>();
     const string Output = @"b:\cm\build\ExampleData --> wxlink:ExampleData:/@121@ExampleData@dice-plastic-1:8087";
     Plastic.ParseXLink(Output.ToStreamReader(), obs, CancellationToken.None);
     var xlink = obs.Output.First();
     Assert.AreEqual(@"b:\cm\build\ExampleData", xlink.Path);
     Assert.AreEqual(@"ExampleData@dice-plastic-1:8087", xlink.Repository);
     Assert.AreEqual(121, xlink.Changeset);
     Assert.AreEqual(@"/", xlink.RemotePath);
     Assert.IsTrue(xlink.Writeable);
 }
예제 #5
0
 public void GetFileInfoTest()
 {
     var processControl = new ProcessObserver<FileInfo, Unit>();
     PlasticXmlOutputParser.FileInfoFromTextReaderXml(new StringReader(Resources.fileinfo), processControl, CancellationToken.None);
     var output = processControl.Output.ToList();
     Assert.AreEqual(9, output.Count);
     var third = output[2];
     Assert.AreEqual(@"b:\cm\frostbite\ExampleData", third.ClientPath);
     Assert.AreEqual(0, third.Size);
     Assert.IsNotNull(third.XlinkInfo);
     Assert.AreEqual(437, third.XlinkInfo.Changeset);
 }
예제 #6
0
 public void GetFileInfoFieldsTest()
 {
     var processControl = new ProcessObserver<FileInfo, Unit>();
     PlasticXmlOutputParser.FileInfoFromTextReaderXml(new StringReader(Resources.fileinfo_fields), processControl, CancellationToken.None);
     var output = processControl.Output.ToList();
     Assert.AreEqual(9, output.Count);
     var third = output[2];
     Assert.AreEqual(0, third.Size);
     Assert.IsNotNull(third.XlinkInfo);
     Assert.AreEqual("/ExampleData", third.ServerPath);
     Assert.AreEqual("ExampleData", third.XlinkInfo.RemotePath);
 }
예제 #7
0
        public void ParseListOutputTest()
        {
            var processControl = new ProcessObserver<ListInfo>();

            PlasticXmlOutputParser.ListInfoFromTextReaderXml(new StringReader(Resources.ls),
                processControl,
                CancellationToken.None);
            var statusChanges = processControl.Output.ToList();
            Assert.AreEqual(3, statusChanges.Count);
            var first = statusChanges[0];
            Assert.AreEqual(ChangeTypes.CheckedOut, first.ChangeType);
            Assert.AreEqual(@"b:\cm\frostbite\TnT\Code\Tools\FrostEd\Common\Framework\Managers\DataManager\PlasticSourceControl.cs", first.Fullname);
        }
예제 #8
0
        public void ParseChangesetInfo()
        {
            const string Data = @"892937;C;b:\cm\frostbite\TnT\Code\Tools\FrostEd\Common\Scene\Tools\SceneToolBase.cs;4711
            892938;C;b:\cm\frostbite\TnT\Code\Tools\FrostEd\Common\Scene\VectorShape\Sphere\SphereShapeTool.cs;4712
            ";

            var processObserver = new ProcessObserver<ChangesetItemInfo>();
            Plastic.ParseChangesetItems(new StringReader(Data), processObserver, CancellationToken.None,
                Tuple.Create(10L, "myRepo"));
            var retVal = processObserver.Output.ToList();
            Assert.AreEqual(2, retVal.Count);
            var first = retVal.First();
            Assert.AreEqual(892937, first.Revision);
            Assert.AreEqual("C", first.Kind);
            Assert.AreEqual(4711, first.Parent);
            Assert.AreEqual(10, first.Changeset);
            Assert.AreEqual("myRepo", first.Repository);
            Assert.AreEqual(@"b:\cm\frostbite\TnT\Code\Tools\FrostEd\Common\Scene\Tools\SceneToolBase.cs", first.Item);
        }
예제 #9
0
        public void ParseLocksOutput()
        {
            const string Output =
                @"b6f8c2c4-ba1d-4e77-9a20-313a80a337bc S-1-5-21-2021117682-251527243-912297744-16124 frostbite  /VeniceData/Raw/Test/Svarling/Objects/CardboardBoxes/CardboardBoxes_01.fbx
            32c4cced-f43b-4572-ab25-bccda7224f7c S-1-5-21-2021117682-251527243-912297744-1987 fb-dev-jlindqvis1 /ExampleData/Raw/Voyager/Characters/SoldierZombie/SoldierZombie/Resources/Clips/Characters/SoldierZombie/Anim/fbx/Soldier_Idle_Anim.fbx";
            var observer = new ProcessObserver<LockInfo>();
            Plastic.ParseListLockOutput(Output.ToStreamReader(), observer, CancellationToken.None, "dice-plastic-1:8087");

            var guid = Guid.Parse("b6f8c2c4-ba1d-4e77-9a20-313a80a337bc");

            var locks = observer.Output.ToArray();
            Assert.AreEqual(2, locks.Length);
            var aLock = observer.Output.FirstOrDefault();
            Assert.IsNotNull(aLock);
            Assert.AreEqual(guid, aLock.Guid);
            Assert.AreEqual("frostbite", aLock.Workspace);
            Assert.AreEqual("/VeniceData/Raw/Test/Svarling/Objects/CardboardBoxes/CardboardBoxes_01.fbx", aLock.ServerPath);
            Assert.AreEqual("/ExampleData/Raw/Voyager/Characters/SoldierZombie/SoldierZombie/Resources/Clips/Characters/SoldierZombie/Anim/fbx/Soldier_Idle_Anim.fbx", locks[1].ServerPath);
        }
예제 #10
0
 public void ParseXLinkWithExpansionRuleTest()
 {
     var obs = new ProcessObserver<XLinkInfo, Unit>();
     const string Output = @"b:\cm\build\ExampleData --> xlink:ExampleData:/@121@ExampleData@dice-plastic-1:8087
     Branch expansion rules:
     br:/main@frostbite@dice-plastic-1:8087 -> br:/main@ExampleData@dice-plastic-1:8087
     ";
     Plastic.ParseXLink(Output.ToStreamReader(), obs, CancellationToken.None);
     var xlink = obs.Output.First();
     Assert.AreEqual(@"b:\cm\build\ExampleData", xlink.Path);
     Assert.AreEqual(@"ExampleData@dice-plastic-1:8087", xlink.Repository);
     Assert.AreEqual(121, xlink.Changeset);
     Assert.AreEqual(@"/", xlink.RemotePath);
     Assert.IsFalse(xlink.Writeable);
     Assert.AreEqual(1, xlink.BranchExpansionRules.Count);
     var ber = xlink.BranchExpansionRules[0];
     Assert.AreEqual("br:/main@frostbite@dice-plastic-1:8087", ber.From);
     Assert.AreEqual("br:/main@ExampleData@dice-plastic-1:8087", ber.To);
 }
예제 #11
0
        public void ParseStatusOutputTest()
        {
            var processControl = new ProcessObserver<StatusChangeInfo>();

            PlasticXmlOutputParser.StatusChangeInfoFromTextReaderXml(new StringReader(Resources.statusout), processControl,
                CancellationToken.None, @"B:\cm\build");
            var statusChanges = processControl.Output.ToList();
            Assert.AreEqual(12, statusChanges.Count);
            Assert.AreEqual(1, statusChanges.Count(si => si.ChangeType == ChangeTypes.Added));
            Assert.AreEqual(1, statusChanges.Count(si => si.ChangeType == ChangeTypes.Changed));
            Assert.AreEqual(2, statusChanges.Count(si => si.ChangeType == ChangeTypes.CheckedOut));
            Assert.AreEqual(1, statusChanges.Count(si => si.ChangeType == ChangeTypes.LocallyDeleted));
            Assert.AreEqual(2, statusChanges.Count(si => si.ChangeType == ChangeTypes.LocallyMoved));
            var first = statusChanges[0];
            Assert.AreEqual(string.Empty, first.OldPath);
            Assert.AreEqual(@"B:\cm\build\Frostbite.diceconfig", first.Path);
            Assert.AreEqual(" (Merge from 432)", first.MergeInfo);

            var last = statusChanges[10];
            Assert.IsTrue(last.SimilarityPerUnit > 0.9);
        }
예제 #12
0
        public void ParseChangelistInfoTest()
        {
            const string Line = @"""foobar"" ""my cl desc"" persistent
            ""My second changelist"" ""With a desc""";

            var pc = new ProcessObserver<ChangelistInfo>();
            Plastic.ParseChangelistOutput(new StringReader(Line), pc, CancellationToken.None, null);
            var output = pc.Output.ToList();
            Assert.AreEqual(output.Count, 2);
            var r1 = output[0];
            Assert.AreEqual("foobar", r1.Name);
            Assert.AreEqual("my cl desc", r1.Description);
            Assert.IsTrue(r1.Persistent);

            var r2 = output[1];
            Assert.AreEqual("My second changelist", r2.Name);
            Assert.AreEqual("With a desc", r2.Description);
            Assert.IsFalse(r2.Persistent);
        }