示例#1
0
    public async Task GZipCompressed()
    {
        var serializer = new UserDataSerializer();

        await using var resultStream =
                        await serializer.SerializeUserData(Enumerable.Empty <UserData>(), new UserDataOptions
        {
            Base64Encode = false,
            GZip         = true
        });

        await using var decompressedStream = new MemoryStream();
        await using var gzipStream         = new GZipStream(resultStream, CompressionMode.Decompress);
        await gzipStream.CopyToAsync(decompressedStream);

        decompressedStream.Seek(0, SeekOrigin.Begin);
        using var reader = new StreamReader(decompressedStream);

        var act = await reader.ReadToEndAsync();

        Assert.Equal(@"From nobody Fri Jan  11 07:00:00 1980
Content-Type: multipart/mixed; boundary=""==BOUNDARY==""
MIME-Version: 1.0
".Replace("\r\n", "\n"), act);
    }
示例#2
0
    public async Task WritesUserData()
    {
        var serializer = new UserDataSerializer();


        await using var resultStream =
                        await serializer.SerializeUserData(
                            new[]
        {
            new UserData(UserDataContentType.CloudConfig, "some config", Encoding.ASCII)
        }, new UserDataOptions
        {
            Base64Encode = false,
            GZip         = false
        });

        using var reader = new StreamReader(resultStream);
        var act = await reader.ReadToEndAsync();

        Assert.Equal(@"From nobody Fri Jan  11 07:00:00 1980
Content-Type: multipart/mixed; boundary=""==BOUNDARY==""
MIME-Version: 1.0
--==BOUNDARY==
MIME-Version: 1.0
Content-Type: text/cloud-config; charset=""us-ascii""
some config
".Replace("\r\n", "\n"), act);
    }
示例#3
0
    public async Task Base64EncodesUserData()
    {
        var serializer = new UserDataSerializer();


        await using var resultStream =
                        await serializer.SerializeUserData(
                            new[]
        {
            new UserData(UserDataContentType.CloudConfig, "some config", Encoding.ASCII)
        }, new UserDataOptions
        {
            Base64Encode = true,
            GZip         = false
        });

        using var reader = new StreamReader(resultStream);
        var act = await reader.ReadToEndAsync();

        Assert.Equal(@$ "From nobody Fri Jan  11 07:00:00 1980
Content-Type: multipart/mixed; boundary=" "==BOUNDARY==" "
MIME-Version: 1.0
--==BOUNDARY==
MIME-Version: 1.0
Content-Type: text/cloud-config; charset=" "us-ascii" "
Content-Transfer-Encoding: base64
{Convert.ToBase64String(Encoding.ASCII.GetBytes(" some config "), Base64FormattingOptions.InsertLineBreaks)}
".Replace("\r\n", "\n"), act);
    }
示例#4
0
 private void LoadSettings()
 {
     if (!File.Exists(UserPath))
     {
         fUserSettings = fData.GenerateDefaultOptionsSet();
         Save();
     }
     else
     {
         fUserSettings = UserDataSerializer.LoadFromFile(UserPath);
     }
 }
示例#5
0
    public async Task WritesFixedHeader()
    {
        var serializer = new UserDataSerializer();

        await using var resultStream =
                        await serializer.SerializeUserData(Enumerable.Empty <UserData>(), new UserDataOptions
        {
            Base64Encode = false,
            GZip         = false
        });

        using var reader = new StreamReader(resultStream);
        var act = await reader.ReadToEndAsync();

        Assert.Equal(@"From nobody Fri Jan  11 07:00:00 1980
Content-Type: multipart/mixed; boundary=""==BOUNDARY==""
MIME-Version: 1.0
".Replace("\r\n", "\n"), act);
    }
示例#6
0
        public static void Initialize(CreateParams createParams)
        {
            fCreateParams = createParams;
            OnItemChanged = createParams.callback;
            fDataProvider = new DataProvider(ItemTree.FromFile(createParams.templateFilePath));
            if (File.Exists(fCreateParams.userSettingsFilePath))
            {
                fData = UserDataSerializer.LoadFromFile(fCreateParams.userSettingsFilePath);
            }
            else
            {
                fData = fDataProvider.GenerateDefaultOptionsSet();
            }

            fDataProvider.ItemChanged += DataProvider_ItemChanged;
            fDataProvider.DataBinding  = fData;
            if (form == null)
            {
                form         = new SettingsForm(fDataProvider);
                form.OnSave += Form_OnSave;
            }
        }
示例#7
0
 private void Save()
 {
     UserDataSerializer.SaveToFile(fData.RootTemplate, fData.DataBinding, UserPath);
 }
示例#8
0
 private static void SaveUserSettingsFile()
 {
     UserDataSerializer.SaveToFile(fDataProvider.RootTemplate, fData, fCreateParams.userSettingsFilePath);
 }