public async Task GetInstanceId_IncrementedId_Valid() { var instanceDataStoreMock = new Mock <IInstanceDataStore>(); var lockProviderMock = new Mock <ILockProvider>(); lockProviderMock.Setup(loc => loc.TryGetLockAsync("abc", LockType.Write, CancellationToken.None)).ReturnsAsync(true); var configProviderMock = new Mock <IConfigurationProvider>(); configProviderMock.Setup(cp => cp.GetGlobalConfiguration <int>("", "")).Returns(1800); var instanceList = new Dictionary <string, InstanceInfo>(); var instance1 = new InstanceInfo(0, 0, 0, DateTime.UtcNow.Subtract(new TimeSpan(0, 30, 0))); var instance2 = new InstanceInfo(0, 0, 1, DateTime.UtcNow.Subtract(new TimeSpan(0, 15, 0))); instanceList.Add(instance1.GetUniqueId(), instance1); instanceList.Add(instance2.GetUniqueId(), instance2); instanceDataStoreMock.Setup(ds => ds.GetInstanceList()).Returns(instanceList); var webFarm = new WebFarmConfiguration(instanceDataStoreMock.Object, lockProviderMock.Object, configProviderMock.Object); webFarm.Intialize(); var instanceId = webFarm.GetInstanceId(); Assert.AreEqual(instanceId, (UInt32)2); }
public async Task MultiRegion_AddSameInstanceId_Valid() { var instanceDataStoreMock = new Mock <IInstanceDataStore>(); var lockProviderMock = new Mock <ILockProvider>(); lockProviderMock.Setup(loc => loc.TryGetLockAsync("abc", LockType.Write, CancellationToken.None)).ReturnsAsync(true); var configProviderMock = new Mock <IConfigurationProvider>(); configProviderMock.Setup(cp => cp.GetGlobalConfiguration <int>("", "", "")).Returns(1800); var instanceList = new Dictionary <string, InstanceInfo>(); var instance1 = new InstanceInfo(0, 0, 0, DateTime.UtcNow); var instance2 = new InstanceInfo(1, 0, 0, DateTime.UtcNow); instanceList.Add(instance1.GetUniqueId(), instance1); instanceList.Add(instance2.GetUniqueId(), instance2); configProviderMock.Setup(cp => cp.GetGlobalConfiguration <uint>("montone_id_generator", "webfarm_settings", "webfarm_regionid")).Returns(2); instanceDataStoreMock.Setup(ds => ds.GetInstanceList()).Returns(instanceList); var webFarm = new WebFarmConfiguration(instanceDataStoreMock.Object, lockProviderMock.Object, configProviderMock.Object); webFarm.Intialize(); var instanceId = webFarm.GetInstanceId(); Assert.AreEqual(instanceId, (UInt32)0); }
public async Task CheckHeartBeat_TimerSetting_Valid() { var instanceDataStore = new DummyInstanceStore(); var lockProviderMock = new Mock <ILockProvider>(); lockProviderMock.Setup(loc => loc.TryGetLockAsync("abc", LockType.Write, CancellationToken.None)).ReturnsAsync(true); var configProviderMock = new Mock <IConfigurationProvider>(); _settings.Add("reset_time_sec", "5"); configProviderMock.Setup(cp => cp.GetGlobalConfigurationAsNameValueCollection("montone_id_generator", "webfarm_settings", "heartbeat_settings")).Returns(_settings); var webFarm = new WebFarmConfiguration(instanceDataStore, lockProviderMock.Object, configProviderMock.Object); webFarm.Intialize(); var instanceInfo = new InstanceInfo(webFarm.GetRegionId(), webFarm.GetZoneId(), webFarm.GetInstanceId(), DateTime.UtcNow); var datetime1 = instanceDataStore.InstanceList[instanceInfo.GetUniqueId()].UpdateTimestamp; Thread.Sleep(6000); var datetime2 = instanceDataStore.InstanceList[instanceInfo.GetUniqueId()].UpdateTimestamp; Assert.IsTrue(datetime2 > datetime1); }
public async Task GetInstanceId_FirstInstance_Valid() { var instanceDataStoreMock = new Mock <IInstanceDataStore>(); var lockProviderMock = new Mock <ILockProvider>(); var configProviderMock = new Mock <IConfigurationProvider>(); configProviderMock.Setup(cp => cp.GetGlobalConfiguration <int>("", "", "")).Returns(1800); lockProviderMock.Setup(loc => loc.TryGetLockAsync("abc", LockType.Write, CancellationToken.None)).ReturnsAsync(true); instanceDataStoreMock.Setup(ds => ds.GetInstanceList()).Returns(new Dictionary <string, InstanceInfo>()); instanceDataStoreMock.Setup(ds => ds.AddOrUpdate(new InstanceInfo(0, 0, 0, DateTime.UtcNow))); var webFarm = new WebFarmConfiguration(instanceDataStoreMock.Object, lockProviderMock.Object, configProviderMock.Object); webFarm.Intialize(); var instanceId = webFarm.GetInstanceId(); Assert.IsNotNull(instanceId); Assert.AreEqual((UInt32)(0), instanceId); }