Пример #1
0
        /// <summary>
        ///     Relolves cache versions using persistent storage
        /// </summary>
        /// <param name="name">Name of the cache (region)</param>
        /// <param name="infoProvider"> </param>
        public VersionHelper(string name, ICacheInfoProvider infoProvider)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentException(nameof(name) + " should not be null or empty");
            }
            if (infoProvider == null)
            {
                throw new ArgumentException(nameof(infoProvider) + " should not be null");
            }

            var config = ConfigurationManager.GetSection("cacheSettings") as NameValueCollection ?? new NameValueCollection();

            if (!Enum.TryParse(config["VersionPolicy"], out _retrievalPolicy))
            {
                _retrievalPolicy = VersionPolicy.Once;                                                                //NOTE: default to Once like in running job in a thread
            }
            if (_retrievalPolicy == VersionPolicy.Timeout)
            {
                _timeout = TimeSpan.FromSeconds(Convert.ToInt32(config["VersionTimeout"]));
            }

            _cacheName    = name;
            _infoProvider = infoProvider;
        }
Пример #2
0
        public void GetVersionLabel_WhenVersionIsProvided_ReturnsFormattedLabel()
        {
            var version = new Version(1, 2, 3, 4);

            string label = VersionPolicy.GetVersionLabel(version);

            Assert.AreEqual("1.2 build 3", label);
        }
 public PersistenceMondayMorningBluesRedis(string connection
                                           , VersionPolicy <MondayMorningBlues> versionPolicy      = null
                                           , ICacheManager <Guid, MondayMorningBlues> cacheManager = null)
     : base(connection, (k) => k.Id, (s) => new Guid(s)
            , versionPolicy: versionPolicy
            , referenceMaker: MondayMorningBluesHelper.ToReferences)
 {
 }
Пример #4
0
 public PersistenceMondayMorningBluesDocDb(DocumentDbConnection connection, string name
                                           , VersionPolicy <MondayMorningBlues> versionPolicy      = null
                                           , ICacheManager <Guid, MondayMorningBlues> cacheManager = null)
     : base(connection, name, (k) => k.Id, (s) => new Guid(s)
            , versionPolicy: versionPolicy
            , referenceMaker: MondayMorningBluesHelper.ToReferences
            , cacheManager: cacheManager)
 {
 }
Пример #5
0
        public void GetVersionLabel_WhenAssemblyIsProvided_ReturnsFormattedLabel()
        {
            var assembly = typeof(VersionPolicy).Assembly;
            var version  = VersionPolicy.GetVersionNumber(assembly);

            string label = VersionPolicy.GetVersionLabel(version);

            Assert.AreEqual(string.Format("{0}.{1} build {2}", version.Major, version.Minor, version.Build), label);
        }
 public PersistenceMondayMorningBluesMemory(
     VersionPolicy <MondayMorningBlues> versionPolicy        = null
     , ICacheManager <Guid, MondayMorningBlues> cacheManager = null)
     : base(
         (k) => k.Id
         , (s) => new Guid(s)
         , versionPolicy: versionPolicy
         , referenceMaker: MondayMorningBluesHelper.ToReferences
         , cacheManager: cacheManager)
 {
 }
Пример #7
0
 public PersistenceMondayMorningBluesBlob(StorageCredentials credentials
                                          , VersionPolicy <MondayMorningBlues> versionPolicy      = null
                                          , ICacheManager <Guid, MondayMorningBlues> cacheManager = null
                                          , IEncryptionHandler encryption = null)
     : base(credentials, (k) => k.Id, (s) => new Guid(s), keySerializer: (g) => g.ToString("N").ToUpperInvariant(), cacheManager: cacheManager
            , versionPolicy: versionPolicy
            , referenceMaker: MondayMorningBluesHelper.ToReferences
            , encryption: encryption
            )
 {
 }
Пример #8
0
 public PersistenceComplexEntityMemory(
     VersionPolicy <ComplexEntity> versionPolicy = null
     , ICacheManager <ComplexKey, ComplexEntity> cacheManager = null)
     : base(
         (k) => k.ToKey()
         , (s) => KeyMapper.Resolve <ComplexKey>().ToKey(s)
         , versionPolicy: versionPolicy
         //, referenceMaker: MondayMorningBluesHelper.ToReferences
         , cacheManager: cacheManager)
 {
 }
Пример #9
0
        public void PopulateTestTree_WhenAssemblyReferencesMbUnit_ContainsSimpleTest()
        {
            TestModel testModel = PopulateTestTree();

            Version expectedVersion = VersionPolicy.GetVersionNumber(typeof(Assert).Assembly);

            Test rootTest = testModel.RootTest;

            Assert.IsNull(rootTest.Parent);
            Assert.AreEqual(TestKinds.Root, rootTest.Kind);
            Assert.IsNull(rootTest.CodeElement);
            Assert.Count(1, rootTest.Children);

            Test assemblyTest = rootTest.Children[0];

            Assert.AreSame(rootTest, assemblyTest.Parent);
            Assert.AreEqual(MbUnitTestFramework.AssemblyKind, assemblyTest.Kind);
            Assert.AreEqual(MbUnitTestFramework.VersionLabel, assemblyTest.Metadata.GetValue(MetadataKeys.Framework));
            Assert.AreEqual(CodeReference.CreateFromAssembly(SimpleFixtureAssembly), assemblyTest.CodeElement.CodeReference);
            Assert.AreEqual(SimpleFixtureAssembly, ((IAssemblyInfo)assemblyTest.CodeElement).Resolve(true));
            Assert.GreaterThanOrEqualTo(assemblyTest.Children.Count, 1);

            Test typeTest = GetDescendantByName(assemblyTest, "SimpleTest");

            Assert.IsNotNull(typeTest, "Could not find the SimpleTest fixture.");
            Assert.AreSame(assemblyTest, typeTest.Parent);
            Assert.AreEqual(TestKinds.Fixture, typeTest.Kind);
            Assert.AreEqual(CodeReference.CreateFromType(typeof(SimpleTest)), typeTest.CodeElement.CodeReference);
            Assert.AreEqual(typeof(SimpleTest), ((ITypeInfo)typeTest.CodeElement).Resolve(true));
            Assert.AreEqual("SimpleTest", typeTest.Name);
            Assert.Count(2, typeTest.Children);

            Test passTest = GetDescendantByName(typeTest, "Pass");

            Assert.IsNotNull(passTest, "Could not find the Pass test.");
            Assert.AreSame(typeTest, passTest.Parent);
            Assert.AreEqual(TestKinds.Test, passTest.Kind);
            Assert.AreEqual(CodeReference.CreateFromMember(typeof(SimpleTest).GetMethod("Pass")), passTest.CodeElement.CodeReference);
            Assert.AreEqual(typeof(SimpleTest).GetMethod("Pass"), ((IMethodInfo)passTest.CodeElement).Resolve(true));
            Assert.AreEqual("Pass", passTest.Name);

            Test failTest = GetDescendantByName(typeTest, "Fail");

            Assert.IsNotNull(failTest, "Could not find the Fail test.");
            Assert.AreSame(typeTest, failTest.Parent);
            Assert.AreEqual(TestKinds.Test, failTest.Kind);
            Assert.AreEqual(CodeReference.CreateFromMember(typeof(SimpleTest).GetMethod("Fail")), failTest.CodeElement.CodeReference);
            Assert.AreEqual(typeof(SimpleTest).GetMethod("Fail"), ((IMethodInfo)failTest.CodeElement).Resolve(true));
            Assert.AreEqual("Fail", failTest.Name);
        }
 public PersistenceMondayMorningBluesSql(string sqlConnection
                                         , VersionPolicy <MondayMorningBlues> versionPolicy      = null
                                         , ICacheManager <Guid, MondayMorningBlues> cacheManager = null)
     : base(
         sqlConnection
         , (k) => k.Id
         , (s) => new Guid(s)
         , new EntitySerializer <MondayMorningBlues>(MondayMorningBluesHelper.ToXml, MondayMorningBluesHelper.ToMondayMorningBlues)
         , xmlVersionMaker: MondayMorningBluesHelper.ToVersion
         , versionPolicy: versionPolicy
         , cacheManager: cacheManager
         , referenceMaker: ReferenceMaker)
 {
 }
Пример #11
0
        public EntityPersistence(string storeDir, VersionPolicy policy = VersionPolicy.Tolerant)
        {
            _persistenceStoreDir = storeDir;
            _policy = policy;

            // enable profiling by default
            Profiling.Profiler.Default.Log.Level = LogLevel.Info;

            using (Profiling.Profiler.Default.ProfileBlock("EntityPersistence::Load"))
            {
                EnsureStoreDir();
                SetSyncContextForVersionPolicy();
                SaveVersionFile();
            }
        }
Пример #12
0
        public void GetVersionNumber_WhenAssemblyIsProvided_ReturnsFileVersionWhenAvailableOrAssemblyVersionOtherwise()
        {
            var assembly = typeof(VersionPolicy).Assembly;

            var version = VersionPolicy.GetVersionNumber(typeof(VersionPolicy).Assembly);

            var attribs = (AssemblyFileVersionAttribute[])assembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false);

            if (attribs.Length != 0)
            {
                Assert.AreEqual(version.ToString(), attribs[0].Version);
            }
            else
            {
                Assert.AreEqual(version, assembly.GetName().Version);
            }
        }
Пример #13
0
        /// <inheritdoc />
        protected override FacadeTestRunState RunImpl(IFacadeTestListener testListener, string assemblyPath, string cref, FacadeOptions facadeOptions)
        {
            string versionLabel = VersionPolicy.GetVersionLabel(Assembly.GetExecutingAssembly());

            testListener.WriteLine(String.Format(Resources.RunnerNameAndVersion + "\n", versionLabel), FacadeCategory.Info);

            switch (facadeOptions.FilterCategoryMode)
            {
            case FacadeFilterCategoryMode.Include:
                testListener.WriteLine(String.Format("Included categories: {0}\n", CombineCategoryNameList(facadeOptions.FilterCategoryNames)), FacadeCategory.Info);
                break;

            case FacadeFilterCategoryMode.Exclude:
                testListener.WriteLine(String.Format("Excluded categories: {0}\n", CombineCategoryNameList(facadeOptions.FilterCategoryNames)), FacadeCategory.Info);
                break;
            }

            EnsureTestRunnerIsCreated();
            return(testRunner.Run(testListener, assemblyPath, cref, facadeOptions));
        }
Пример #14
0
 public void GetVersionNumber_WhenAssemblyIsNull_Throws()
 {
     Assert.Throws <ArgumentNullException>(() => VersionPolicy.GetVersionNumber(null));
 }
Пример #15
0
 public void GetVersionLabel_WhenAssemblyIsNull_Throws()
 {
     Assert.Throws <ArgumentNullException>(() => VersionPolicy.GetVersionLabel((Assembly)null));
 }
Пример #16
0
        private void DisplayVersion()
        {
            string versionLabel = VersionPolicy.GetVersionLabel(Assembly.GetExecutingAssembly());

            Log(Level.Info, String.Format(Resources.TaskNameAndVersion, versionLabel));
        }