public void Accessor_Public_Type_Field() { var typeAcc = new TypeAccessor(typeof(AccessorTestObject)); var origValue = (int)typeAcc.GetStaticField("_staticPublicField"); typeAcc.SetStaticField("_staticPublicField", origValue + 1); var actualValue = (int)typeAcc.GetStaticField("_staticPublicField"); Assert.AreEqual(origValue + 1, actualValue); typeAcc.SetStaticFieldOrProperty("_staticPublicField", origValue - 1); actualValue = (int)typeAcc.GetStaticFieldOrProperty("_staticPublicField"); Assert.AreEqual(origValue - 1, actualValue); }
public void ContentNaming_FromDisplayName() { var providers = new[] { (ContentNamingProvider) new CharReplacementContentNamingProvider(), (ContentNamingProvider) new Underscore5FContentNamingProvider() }; var contentNamingProviderAcc = new TypeAccessor(typeof(ContentNamingProvider)); var originalProvider = contentNamingProviderAcc.GetStaticField("__instance"); try { foreach (var provider in providers) { contentNamingProviderAcc.SetStaticField("__instance", provider); var providerName = provider.GetType().Name; Assert.AreEqual("árvíztűrőtükörfúrógép", ContentNamingProvider.GetNameFromDisplayName("árvíztűrőtükörfúrógép")); Assert.AreEqual("ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP", ContentNamingProvider.GetNameFromDisplayName("ÁRVÍZTŰRŐTÜKÖRFÚRÓGÉP")); Assert.AreEqual("ÁrvíztűrőTükörfúrógép", ContentNamingProvider.GetNameFromDisplayName("ÁrvíztűrőTükörfúrógép")); Assert.AreEqual("árvíztűrőtükörfúrógép.txt", ContentNamingProvider.GetNameFromDisplayName("árvíztűrőtükörfúrógép.txt")); Assert.AreEqual("árvíztűrőtükörfúrógép.doc.txt", ContentNamingProvider.GetNameFromDisplayName("árvíztűrőtükörfúrógép.txt", "árvíztűrőtükörfúrógép.doc")); Assert.AreEqual("árvíztűrőtükörfúrógép.doc.txt", ContentNamingProvider.GetNameFromDisplayName(".txt", "árvíztűrőtükörfúrógép.doc")); var name = ContentNamingProvider.GetNameFromDisplayName("!*_~@#$%a^&()b{}+\"'|:<>?c/.,"); if (providerName == typeof(CharReplacementContentNamingProvider).Name) { Assert.AreEqual("!-_-a-()b-c", name); } else if (providerName == typeof(Underscore5FContentNamingProvider).Name) { Assert.AreEqual("!_2a_5f_7e_40_23_24_25a_5e_26()b_7b_7d_2b_22_27_7c_3a_3c_3e_3fc_2f._2c", name); } else { Assert.Inconclusive("Unknown ContentNamingProvider: " + providerName); } } } finally { contentNamingProviderAcc.SetStaticField("__instance", originalProvider); } }
public void Packaging_DependencyCheck_LoggingDependencies() { PackagingTest(() => { var logger = new StringBuilder(); var loggers = new[] { new PackagingTestLogger(logger) }; var loggerAcc = new TypeAccessor(typeof(SenseNet.Packaging.Logger)); loggerAcc.SetStaticField("_loggers", loggers); using (new Swindler <IPackagingLogger[]>(loggers, () => (IPackagingLogger[])loggerAcc.GetStaticField("_loggers"), value => loggerAcc.SetStaticField("_loggers", loggers))) { for (var i = 0; i < 9; i++) { ExecutePhases($@"<?xml version='1.0' encoding='utf-8'?> <Package type='Install'> <Id>Component{i + 1}</Id> <ReleaseDate>2017-01-01</ReleaseDate> <Version>{i + 1}.0</Version> </Package>"); } logger.Clear(); // action ExecutePhases(@"<?xml version='1.0' encoding='utf-8'?> <Package type='Install'> <Id>MyCompany.MyComponent</Id> <ReleaseDate>2017-01-02</ReleaseDate> <Version>1.2</Version> <Dependencies> <Dependency id='Component1' version= '1.0' /> <Dependency id='Component2' minVersion= '1.0' /> <Dependency id='Component3' maxVersion= '9.0' /> <Dependency id='Component4' minVersionExclusive='1.0' /> <Dependency id='Component5' maxVersionExclusive='9.0' /> <Dependency id='Component6' minVersion= '1.0' maxVersion= '10.0' /> <Dependency id='Component7' minVersion= '1.0' maxVersionExclusive='10.0' /> <Dependency id='Component8' minVersionExclusive='1.0' maxVersion= '10.0' /> <Dependency id='Component9' minVersionExclusive='1.0' maxVersionExclusive='10.0' /> </Dependencies> </Package>"); // check var log = logger.ToString(); var relevantLines = new List <string>(); using (var reader = new StringReader(log)) { string line; while ((line = reader.ReadLine()) != null) { line = line.Trim(); if (line.StartsWith("Component") && !line.StartsWith("ComponentId")) { relevantLines.Add(line); } } } Assert.AreEqual("Component1: 1.0 = 1.0 (current)", relevantLines[0]); Assert.AreEqual("Component2: 1.0 <= 2.0 (current)", relevantLines[1]); Assert.AreEqual("Component3: 3.0 (current) <= 9.0", relevantLines[2]); Assert.AreEqual("Component4: 1.0 < 4.0 (current)", relevantLines[3]); Assert.AreEqual("Component5: 5.0 (current) <= 9.0", relevantLines[4]); Assert.AreEqual("Component6: 1.0 <= 6.0 (current) <= 10.0", relevantLines[5]); Assert.AreEqual("Component7: 1.0 <= 7.0 (current) <= 10.0", relevantLines[6]); Assert.AreEqual("Component8: 1.0 < 8.0 (current) < 10.0", relevantLines[7]); Assert.AreEqual("Component9: 1.0 < 9.0 (current) < 10.0", relevantLines[8]); } }); }