Example #1
0
        public void Accessor_Private_Type_Field()
        {
            var typeAcc = new TypeAccessor(typeof(AccessorTestObject));

            var origValue = (int)typeAcc.GetStaticField("_staticPrivateField");

            typeAcc.SetStaticField("_staticPrivateField", origValue + 1);
            var actualValue = (int)typeAcc.GetStaticField("_staticPrivateField");

            Assert.AreEqual(origValue + 1, actualValue);

            typeAcc.SetStaticFieldOrProperty("_staticPrivateField", origValue - 1);
            actualValue = (int)typeAcc.GetStaticFieldOrProperty("_staticPrivateField");
            Assert.AreEqual(origValue - 1, actualValue);
        }
Example #2
0
        public void PrepareTest()
        {
            // preparing logger
            _log = new StringBuilder();
            var loggers   = new[] { new PackagingTestLogger(_log) };
            var loggerAcc = new TypeAccessor(typeof(Logger));

            loggerAcc.SetStaticField("_loggers", loggers);

            var builder = CreateRepositoryBuilderForTest();

            builder.UsePackagingDataProviderExtension(new InMemoryPackageStorageProvider());

            RepositoryVersionInfo.Reset();
        }
Example #3
0
        private void InitializePackagingTest(RepositoryBuilder builder)
        {
            _log = new StringBuilder();
            var loggers   = new[] { new PackagingTestLogger(_log) };
            var loggerAcc = new TypeAccessor(typeof(SenseNet.Packaging.Logger));

            loggerAcc.SetStaticField("_loggers", loggers);

            using (var ctx = new MsSqlDataContext(ConnectionStrings.ConnectionString, DataOptions.GetLegacyConfiguration(), CancellationToken.None))
            {
                DropPackagesTable(ctx);
                InstallPackagesTable(ctx);
            }

            RepositoryVersionInfo.Reset();
        }
Example #4
0
        public void PrepareTest()
        {
            // preparing logger
            _log = new StringBuilder();
            var loggers   = new[] { new PackagingTestLogger(_log) };
            var loggerAcc = new TypeAccessor(typeof(Logger));

            loggerAcc.SetStaticField("_loggers", loggers);

            var builder = CreateRepositoryBuilderForTest(TestContext, services =>
            {
                services.AddSingleton <IPackagingDataProvider, InMemoryPackageStorageProvider>();
            });

            RepositoryVersionInfo.Reset();
        }
Example #5
0
        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]);
                }
            });
        }