Example #1
0
        public static string Serialize(string identifier, Type storageType, object instance, bool encryptSaveFile)
        {
            var    serializer = new fsSerializer();
            fsData data;

            GetJsonConverters(ref serializer);

            //serialize data
            serializer.TrySerialize(storageType, instance, out data).AssertSuccessWithoutWarnings();                                // 5.1 Serialize data
            string serializedData = (encryptSaveFile) ? fsJsonPrinter.CompressedJson(data) : fsJsonPrinter.PrettyJson(data);        // 5.2 Create Json string

            if (encryptSaveFile)
            {
                serializedData = StringCompression.Compress(serializedData);                                                        // 5.3 Compress Json string
            }
            if (encryptSaveFile)
            {
                serializedData = StringCipher.Encrypt(serializedData, encryptionPassword);                        // 5.4 Encrpyt Json string
            }
            //write identifier
            string identifierStart = "<" + identifier + ">\n";
            string identifierEnd   = "\n</" + identifier + ">\n";

            serializedData  = serializedData.Insert(0, identifierStart);
            serializedData += identifierEnd;

            return(serializedData);
        }
Example #2
0
    private bool SetJsonInfo()
    {
        // Create the sidecar json object
        SidecarJson ??= new SidecarFileJsonSchema();

        // Schema version
        SidecarJson.SchemaVersion = SidecarFileJsonSchema.CurrentSchemaVersion;

        // Media file info
        MediaFileInfo.Refresh();
        SidecarJson.MediaLastWriteTimeUtc = MediaFileInfo.LastWriteTimeUtc;
        SidecarJson.MediaLength           = MediaFileInfo.Length;
        SidecarJson.MediaHash             = ComputeHash();

        // Tool version info
        SidecarJson.FfProbeToolVersion   = Tools.FfProbe.Info.Version;
        SidecarJson.MkvMergeToolVersion  = Tools.MkvMerge.Info.Version;
        SidecarJson.MediaInfoToolVersion = Tools.MediaInfo.Info.Version;

        // Compressed tool info
        SidecarJson.FfProbeInfoData  = StringCompression.Compress(FfProbeInfoJson);
        SidecarJson.MkvMergeInfoData = StringCompression.Compress(MkvMergeInfoJson);
        SidecarJson.MediaInfoData    = StringCompression.Compress(MediaInfoXml);

        // State
        // TODO: Only update tool and file info if changed, else just update state
        SidecarJson.State = State;

        return(true);
    }
        public void TestStringCompression()
        {
            // solution #1 ineffective string comparison
            Assert.Equal("a2b1c5a3", StringCompression.CompressBad("aabcccccaaa"));

            // solution #2 with string builder
            Assert.Equal("a2b1c5a3", StringCompression.CompressStringBuilder("aabcccccaaa"));

            // solution #3 with added check if compressed string is longer than initial one
            Assert.Equal("a2b1c5a3", StringCompression.Compress("aabcccccaaa"));
        }
Example #4
0
        public void StringCompression_ShouldNotReturnACompressedString_WhenTheCompressedStringIsNotSmallerThanTheOriginalString_Testcase_3()
        {
            // Arrange
            string input = "abcdefghijklmnopqrstuvwqyz";

            // Act
            string output = StringCompression.Compress(input);

            // Assert
            Assert.AreEqual("abcdefghijklmnopqrstuvwqyz", output);
        }
Example #5
0
        public void StringCompression_ShouldNotReturnACompressedString_WhenTheCompressedStringIsNotSmallerThanTheOriginalString_Testcase_2()
        {
            // Arrange
            string input = "aabbccddeeffgghhiijjkk";

            // Act
            string output = StringCompression.Compress(input);

            // Assert
            Assert.AreEqual("aabbccddeeffgghhiijjkk", output);
        }
Example #6
0
        public void StringCompressionShouldCompressStringSuccessfully_Testcase_3()
        {
            // Arrange
            string input = "hhhhbboooooaaa";

            // Act
            string output = StringCompression.Compress(input);

            // Assert
            Assert.AreEqual("h4b2o5a3", output);
        }
Example #7
0
        public void StringCompressionShouldCompressStringSuccessfully_Testcase_2()
        {
            // Arrange
            string input = "aabbccc";

            // Act
            string output = StringCompression.Compress(input);

            // Assert
            Assert.AreEqual("a2b2c3", output);
        }
Example #8
0
 public void Compress(string input, string expected)
 {
     Assert.Equal(expected, StringCompression.Compress(input));
 }
Example #9
0
        public void CompressStringWithDictionary(string input, string expectedOutput)
        {
            var result = StringCompression.Compress(input);

            Assert.Equal(expectedOutput, result);
        }
Example #10
0
        public void CanCompress(string input, string expected)
        {
            var actual = StringCompression.Compress(input);

            Assert.Equal(expected, actual);
        }