private void waitOnInstance(ServiceHost host, Microservice service, MicroserviceInstance instance) { ManualResetEvent mEvent = new ManualResetEvent(false); new Thread(() => { while (true) { try { Thread.Sleep(1000); var cnt = host.GetNumOfRunningInstances(service); if (cnt == 0) { mEvent.Set(); Debug.WriteLine($"Microservice instance {instance.OrchestrationInstance.InstanceId} completed."); break; } } catch (Exception ex) { mEvent.Set(); Assert.Fail(ex.Message); } } }).Start(); mEvent.WaitOne(); }
public void When_register_instance_with_null_uri_then_registration_should_return_failure_result() { // Arrange var uri = (Uri)null; var instance = new MicroserviceInstance(MicroserviceName, uri, _metricDictionary); // Act var result = _sut.RegisterInstance(instance); // Assert Assert.True(result.IsFailure); Assert.Equal(Messages.CanNotRegisterInstance(instance), result.Message); }
public void When_register_correct_instance_then_registration_should_return_success_result() { // Arrange var uri = new Uri("http://test"); var instance = new MicroserviceInstance(MicroserviceName, uri, _metricDictionary); // Act var result = _sut.RegisterInstance(instance); var instances = _sut.GetInstances(); // Assert Assert.True(result.IsSuccess); Assert.NotEmpty(instances); Assert.Contains(instance, instances); Assert.Equal(Messages.InstanceSuccessfullyRegistered(instance), result.Message); }
public void When_registered_instance_and_unregister_then_result_of_should_be_success() { // Arrange var uri = new Uri("http://test"); var instance = new MicroserviceInstance(MicroserviceName, uri, _metricDictionary); // Act var registrationResult = _sut.RegisterInstance(instance); var unregistrationResult = _sut.UnregisterInstance(instance.Uri); // Assert Assert.True(registrationResult.IsSuccess); Assert.True(unregistrationResult.IsSuccess); Assert.Equal(Messages.InstanceSuccessfullyRegistered(instance), registrationResult.Message); Assert.Equal(Messages.InstanceSuccessfullyUnregistered(instance), unregistrationResult.Message); }
public MicroserviceInstanceTests() { _instanceUri = new Uri("http://test:5000/test"); _metrics = new Dictionary <MetricType, IInstanceMetric>(); _sut = new MicroserviceInstance(MicroserviceName, _instanceUri, _metrics); }