Exemple #1
0
        public void CheckFileWriteWithMove()
        {
            var actions = new List <FileModification>()
            {
                new MoveFileModification(exampleFile1, exampleDestination1, false, "Test.Move")
            };

            var fileWriter = new FileWriterUtility();
            var content    = new WriteToFileAction.WriteContent()
            {
                Text = "Test", StartOffset = 12
            };
            var mod = new GameModification()
            {
                Config = new Data.BaseModConfiguration()
                {
                    ModID = "Test.Edit"
                }
            };

            bool hasCollision = ModCollisionTracker.HasEditCollision(mod, exampleFile1, content, fileWriter, actions, out var collision);

            Assert.AreEqual(true, hasCollision);
            Assert.AreEqual(collision.severity, ModCollisionSeverity.Clash);
            Assert.AreEqual(collision.modID, "Test.Move");
            Assert.IsTrue(collision.description.Contains("Attempting to write to a file that has been moved by another mod"), $"Actual: {collision.description}");
        }
Exemple #2
0
        public void CheckFileMoveWithAdd_DiffDest()
        {
            var actions = new List <FileModification>()
            {
                new AddFileModification(exampleFile2, false, "Test.Add")
            };

            var mod = new GameModification()
            {
                Config = new Data.BaseModConfiguration()
                {
                    ModID = "Test.Move"
                }
            };
            bool hasCollision = ModCollisionTracker.HasMoveCollision(mod, exampleFile3, exampleFile1, actions, out var collision);

            Assert.AreEqual(false, hasCollision);
        }
Exemple #3
0
        public void CheckFileReplaceWithReplace_SameData()
        {
            var actions = new List <FileModification>()
            {
                new ReplaceFileModification(exampleDestination1, false, "Test.Replace1")
            };

            var mod = new GameModification()
            {
                Config = new Data.BaseModConfiguration()
                {
                    ModID = "Test.Replace2"
                }
            };
            bool hasCollision = ModCollisionTracker.HasReplaceCollision(mod, exampleFile1, exampleDestination3_exampleDestination1, actions, out var collision);

            Assert.AreEqual(false, hasCollision);
        }
Exemple #4
0
        public void CheckFileMoveWithMove_SameTarget()
        {
            var actions = new List <FileModification>()
            {
                new MoveFileModification(exampleFile1, exampleDestination1, false, "Test.Move")
            };

            var mod = new GameModification()
            {
                Config = new Data.BaseModConfiguration()
                {
                    ModID = "Test.Move2"
                }
            };
            bool hasCollision = ModCollisionTracker.HasMoveCollision(mod, exampleFile1, exampleDestination1, actions, out var collision);

            Assert.AreEqual(false, hasCollision);
        }
Exemple #5
0
        public void CheckFileReplaceWithReplace_DifferentData()
        {
            var actions = new List <FileModification>()
            {
                new ReplaceFileModification(exampleFile1, false, "Test.Replace1")
            };

            var mod = new GameModification()
            {
                Config = new Data.BaseModConfiguration()
                {
                    ModID = "Test.Replace2"
                }
            };
            bool hasCollision = ModCollisionTracker.HasReplaceCollision(mod, exampleFile1, testFile2, actions, out var collision);

            Assert.AreEqual(true, hasCollision);
            Assert.AreEqual(collision.severity, ModCollisionSeverity.Clash);
            Assert.AreEqual(collision.modID, "Test.Replace1");
            Assert.IsTrue(collision.description.Contains("Attempting to replace a file that has been replaced by another mod (with different data)"), $"Actual: {collision.description}");
        }
Exemple #6
0
        public void CheckFileReplaceWithMove()
        {
            var actions = new List <FileModification>()
            {
                new MoveFileModification(exampleFile1, "C:\\Example\\ExampleFile.txt", false, "Test.Move")
            };

            var mod = new GameModification()
            {
                Config = new Data.BaseModConfiguration()
                {
                    ModID = "Test.Replace"
                }
            };
            bool hasCollision = ModCollisionTracker.HasReplaceCollision(mod, exampleFile1, exampleFile2, actions, out var collision);

            Assert.AreEqual(true, hasCollision);
            Assert.AreEqual(collision.severity, ModCollisionSeverity.Clash);
            Assert.AreEqual(collision.modID, "Test.Move");
            Assert.IsTrue(collision.description.Contains("Attempting to replace a file that has been moved by another mod"), $"Actual: {collision.description}");
        }
Exemple #7
0
        public void CheckFileMoveWithAdd_SameDest()
        {
            var actions = new List <FileModification>()
            {
                new AddFileModification(exampleFile1, false, "Test.Add")
            };

            var mod = new GameModification()
            {
                Config = new Data.BaseModConfiguration()
                {
                    ModID = "Test.Move"
                }
            };
            bool hasCollision = ModCollisionTracker.HasMoveCollision(mod, exampleFile2, exampleFile1, actions, out var collision);

            Assert.AreEqual(true, hasCollision);
            Assert.AreEqual(collision.severity, ModCollisionSeverity.Clash);
            Assert.AreEqual(collision.modID, "Test.Add");
            Assert.IsTrue(collision.description.Contains("Attempting to move a file to a destination that has been modified by another mod (with different data)"), $"Actual: {collision.description}");
        }
Exemple #8
0
        public void CheckFileMoveWithWrite()
        {
            var actions = new List <FileModification>()
            {
                new EditFileModification(exampleFile1, false, "Test.Edit")
            };

            var mod = new GameModification()
            {
                Config = new Data.BaseModConfiguration()
                {
                    ModID = "Test.Move2"
                }
            };
            bool hasCollision = ModCollisionTracker.HasMoveCollision(mod, exampleFile1, exampleDestination1, actions, out var collision);

            Assert.AreEqual(true, hasCollision);
            Assert.AreEqual(collision.severity, ModCollisionSeverity.Clash);
            Assert.AreEqual(collision.modID, "Test.Edit");
            Assert.IsTrue(collision.description.Contains("Attempting to move a file that has been written to by another mod"), $"Actual: {collision.description}");
        }