public void an_older_message_for_existing_breaker_is_ignored_by_update_and_returns_the_more_recent_state() { SystemTime.Is(second: 1, millisecond: 100); CircuitBreakerState original = Helper.MakeBreakerState("a", messageSequenceNumber: 15); CircuitBreakerState originalResult = _set.ProcessCircuitStateMessage(original); CircuitBreakerState ignoredResult = _set.ProcessCircuitStateMessage(Helper.MakeBreakerState("a", messageSequenceNumber: 14)); Assert.That(ignoredResult.CircuitBreakerId, Is.EqualTo(originalResult.CircuitBreakerId), "CircuitBreakerId"); Assert.That(ignoredResult.MessageSequenceNumber, Is.EqualTo(originalResult.MessageSequenceNumber), "RequestMessageSequenceNumber"); Assert.That(ignoredResult.ProcessId, Is.EqualTo(originalResult.ProcessId), "ProcessID"); Assert.That(ignoredResult.Status, Is.EqualTo(originalResult.Status), "Status"); Assert.That(ignoredResult.MachineName, Is.EqualTo(originalResult.MachineName), "MachineName"); Assert.That(ignoredResult.LastModifiedDate, Is.EqualTo(SystemTime.Now()), "LastModifiedDate should be now"); }
public void adding_an_unseen_circuit_returns_a_passthrough_message_stamped_with_current_time() { SystemTime.Is(millisecond: 100); CircuitBreakerState input = Helper.MakeBreakerState(messageSequenceNumber: 15); SystemTime.Is(millisecond: 200); CircuitBreakerState result = _set.ProcessCircuitStateMessage(input); Assert.That(result.CircuitBreakerId, Is.EqualTo(input.CircuitBreakerId), "CircuitBreakerId"); Assert.That(result.MessageSequenceNumber, Is.EqualTo(input.MessageSequenceNumber), "RequestMessageSequenceNumber"); Assert.That(result.ProcessId, Is.EqualTo(input.ProcessId), "ProcessID"); Assert.That(result.Status, Is.EqualTo(input.Status), "Status"); Assert.That(result.MachineName, Is.EqualTo(input.MachineName), "MachineName"); Assert.That(result.LastModifiedDate, Is.EqualTo(input.LastModifiedDate.AddMilliseconds(100)), "LastModifiedDate"); Assert.That(result.LastModifiedDate, Is.EqualTo(SystemTime.Now()), "LastModifiedDate should be now"); }
public void a_newer_message_number_for_existing_breaker_is_processed_for_update() { SystemTime.Is(second: 1, millisecond: 100); CircuitBreakerState original = Helper.MakeBreakerState("a", messageSequenceNumber: 15); CircuitBreakerState originalResult = _set.ProcessCircuitStateMessage(original); SystemTime.Is(second: 2, millisecond: 200); CircuitBreakerState newResult = _set.ProcessCircuitStateMessage(Helper.MakeBreakerState("a", messageSequenceNumber: 16)); Assert.That(newResult.CircuitBreakerId, Is.EqualTo(originalResult.CircuitBreakerId), "CircuitBreakerId"); Assert.That(newResult.MessageSequenceNumber, Is.EqualTo(16), "RequestMessageSequenceNumber"); Assert.That(newResult.ProcessId, Is.EqualTo(originalResult.ProcessId), "ProcessID"); Assert.That(newResult.Status, Is.EqualTo(originalResult.Status), "Status"); Assert.That(newResult.MachineName, Is.EqualTo(originalResult.MachineName), "MachineName"); Assert.That(newResult.LastModifiedDate, Is.EqualTo(SystemTime.Now()), "LastModifiedDate should be now"); }
public void all_entries_older_than_expirydate_get_wiped_leaving_newer_ones_untouched() { for (int i = 0; i < 13; i++) { var dt = SystemTime.Is(i); var c = Helper.AddRandomCircuit(_set); var cb = _set.TryGetCircuit(c); Assert.AreEqual(dt, cb.LastModifiedDate); } Assert.That(_set.Circuits().Length, Is.EqualTo(13)); DateTime expiryDateTime = SystemTime.Is(10); _set.RemoveExpiredCircuitBreakers(expiryDateTime); Assert.That(_set.Circuits().Length, Is.EqualTo(2)); foreach (var id in _set.Circuits()) { var state = _set.TryGetCircuit(id); Assert.That(state.LastModifiedDate > expiryDateTime); } }