public void SteamDataParse()
        {
            var data    = @"
{
    'name':'My Mod Name',
    'steamdata': {
        'publishedfileid':'123',
        'contentfolder':'path',
        'visibility':0,
        'title':'test',
        'tags':[
            'foc', 'eaw'
        ]
    }
}";
            var modinfo = ModinfoData.Parse(data);

            Assert.Equal("My Mod Name", modinfo.Name);
            Assert.NotNull(modinfo.SteamData);
            Assert.Equal("123", modinfo.SteamData !.Id);
            Assert.Equal("test", modinfo.SteamData.Title);
            Assert.Equal("path", modinfo.SteamData.ContentFolder);
            Assert.Equal(SteamWorkshopVisibility.Public, modinfo.SteamData.Visibility);
            Assert.Null(modinfo.SteamData.Metadata);
            Assert.Equal(2, modinfo.SteamData.Tags.Count());
        }
        public void ModRefParseTestWithLayout()
        {
            var data    = @"
{
    'name':'My Mod Name',
    'dependencies': [
        'FullResolved',
        {
            'identifier':'12313',
            'modtype':1
        },
        {
            'identifier':'654987',
            'modtype':1
        }
    ]
}";
            var modinfo = ModinfoData.Parse(data);

            Assert.Equal("My Mod Name", modinfo.Name);
            Assert.Equal(2, modinfo.Dependencies.Count);
            Assert.Equal("12313", modinfo.Dependencies[0].Identifier);
            Assert.Equal("654987", modinfo.Dependencies[1].Identifier);
            Assert.Equal(DependencyResolveLayout.FullResolved, modinfo.Dependencies.ResolveLayout);
        }
Пример #3
0
        private IModinfo Parse()
        {
            var fs   = File.FileSystem;
            var text = fs.File.ReadAllText(File.FullName);

            return(ModinfoData.Parse(text));
        }
        public void TolerantVersionParseTest()
        {
            var data    = @"
{
    'name':'My Mod Name',
    'version': '1.0'
}";
            var modinfo = ModinfoData.Parse(data);

            Assert.Equal("My Mod Name", modinfo.Name);
            Assert.Equal(new Version(1, 0, 0), modinfo.Version);
        }
        public void ModRefParseTest1()
        {
            var data    = @"
{
    'name':'My Mod Name'
}";
            var modinfo = ModinfoData.Parse(data);

            Assert.Equal("My Mod Name", modinfo.Name);
            Assert.Equal(0, modinfo.Dependencies.Count);
            Assert.Equal(DependencyResolveLayout.ResolveRecursive, modinfo.Dependencies.ResolveLayout);
        }
        public void VersionParseTest()
        {
            var data = @"
{
    'name':'My Mod Name',
    'version':'1.1.1-BETA'
}";

            var modinfo = ModinfoData.Parse(data);

            Assert.Equal("My Mod Name", modinfo.Name);
            Assert.Equal(new Version(1, 1, 1, "BETA"), modinfo.Version);
        }
        public void MinimalParseTest()
        {
            var data = @"
{
    'name':'My Mod Name'
}";

            var modinfo = ModinfoData.Parse(data);

            Assert.Equal("My Mod Name", modinfo.Name);
            Assert.Null(modinfo.Version);
            Assert.Null(modinfo.SteamData);
        }
        public void LangParseTest5()
        {
            var data    = @"
{
    'name':'My Mod Name'
}";
            var modinfo = ModinfoData.Parse(data);

            Assert.Equal("My Mod Name", modinfo.Name);
            Assert.Single(modinfo.Languages);
            Assert.Equal("en", modinfo.Languages.ElementAt(0).Code);
            Assert.Equal(LanguageSupportLevel.FullLocalized, modinfo.Languages.ElementAt(0).Support);
        }
        public void CustomParseTest()
        {
            var data    = @"
{
    'name':'My Mod Name',
    'custom': {
        
    }
}";
            var modinfo = ModinfoData.Parse(data);

            Assert.Equal("My Mod Name", modinfo.Name);
            Assert.Equal(0, modinfo.Custom.Count);
        }
        public void LangParseTest1()
        {
            var data    = @"
{
    'name':'My Mod Name',
    'languages':[
        {
            'code':'en'
        }
    ]
}";
            var modinfo = ModinfoData.Parse(data);

            Assert.Equal("My Mod Name", modinfo.Name);
            Assert.Single(modinfo.Languages);
        }
        public void CustomParseTest1()
        {
            var data    = @"
{
    'name':'My Mod Name',
    'custom': {
        'test-key':{},
        'test-key2':'123',
    }
}";
            var modinfo = ModinfoData.Parse(data);

            Assert.Equal("My Mod Name", modinfo.Name);
            Assert.Equal(2, modinfo.Custom.Count);
            Assert.Equal("123", modinfo.Custom["test-key2"]);
            Assert.Equal(new JObject(), modinfo.Custom["test-key"]);
        }
        public void LangParseTest2()
        {
            var data    = @"
{
    'name':'My Mod Name',
    'languages':[
        {
            'code':'en'
        },
        {
            'code':'de'
        }
    ]
}";
            var modinfo = ModinfoData.Parse(data);

            Assert.Equal("My Mod Name", modinfo.Name);
            Assert.Equal(2, modinfo.Languages.Count());
        }
        public void ModRefParseTestFailure2()
        {
            var data = @"
{
    'name':'My Mod Name',
    'dependencies': [
        'BlaBlub',
        {
            'identifier':'12313',
            'modtype':1
        },
        {
            'identifier':'654987',
            'modtype':1
        }
    ]
}";

            Assert.Throws <ModinfoParseException>(() => ModinfoData.Parse(data));
        }
 public void FailingParseTest(string data)
 {
     Assert.Throws <ModinfoParseException>(() => ModinfoData.Parse(data));
 }
Пример #15
0
        private async Task <IModinfo> ParseAsync()
        {
            var text = await ReadTextAsync().ConfigureAwait(false);

            return(await Task.Run(() => ModinfoData.Parse(text)).ConfigureAwait(false));
        }