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();
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
 }