/// <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; }
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) { }
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) { }
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) { }
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 ) { }
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) { }
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) { }
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(); } }
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); } }
/// <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)); }
public void GetVersionNumber_WhenAssemblyIsNull_Throws() { Assert.Throws <ArgumentNullException>(() => VersionPolicy.GetVersionNumber(null)); }
public void GetVersionLabel_WhenAssemblyIsNull_Throws() { Assert.Throws <ArgumentNullException>(() => VersionPolicy.GetVersionLabel((Assembly)null)); }
private void DisplayVersion() { string versionLabel = VersionPolicy.GetVersionLabel(Assembly.GetExecutingAssembly()); Log(Level.Info, String.Format(Resources.TaskNameAndVersion, versionLabel)); }