예제 #1
0
    public void InvalidKind()
    {
        var reader = new RegFileReader(Resources.InvalidKind);

        Assert.IsTrue(reader.Read());
        reader.Read();
    }
예제 #2
0
    public void TruncatedValue()
    {
        var reader = new RegFileReader(Resources.TruncatedValue);

        Assert.IsTrue(reader.Read());
        reader.Read();
    }
예제 #3
0
    public void Multipart()
    {
        var reader = new RegFileReader(Resources.ValueParts);

        Assert.IsTrue(reader.Read());
        Assert.IsTrue(reader.Read());

        var expected = new string[] { "Str0", "Str1" };

        CollectionAssert.AreEqual(expected, (string[])reader.Value);
    }
예제 #4
0
    /// <summary>
    /// 对比 Reg 文件和注册表,判断是否存在不同,如果不同就说明需要优化。
    /// </summary>
    public bool NeedOptimize()
    {
        var reader   = new RegFileReader(content);
        var expected = true;

        while (expected && reader.Read())
        {
            if (reader.IsKey)
            {
                var exists = RegHelper.KeyExists(reader.Key);
                expected = reader.IsDelete ^ exists;
            }
            else if (reader.IsDelete)
            {
                expected = Registry.GetValue(reader.Key, reader.Name, null) == null;
            }
            else
            {
                expected = CheckValueInDB(reader.Key,
                                          reader.Name, reader.Value, reader.Kind);
            }
        }

        return(!expected);
    }
예제 #5
0
    public void ReadKey()
    {
        var reader = new RegFileReader(Resources.ImportTest);

        Assert.IsTrue(reader.Read());
        Assert.IsTrue(reader.IsKey);
        Assert.AreEqual(@"HKEY_CURRENT_USER\_Test_Import\Key", reader.Key);
    }
예제 #6
0
    public bool Read()
    {
        var t = new RegFileReader(content);
        var avoidElimination = false;

        while (t.Read())
        {
            avoidElimination = t.IsKey;
        }

        return(avoidElimination);
    }