public async Task RegisterReturnsAssignedId()
        {
            var appBuilder = new Mock <IApplicationBuilder>();

            appBuilder.Setup(x => x.CreateApplication()).Returns(new Application());

            Uri uri    = new Uri("http://example.com");
            var config = new SpringBootConfig()
            {
                SpringBootServerUrl = uri
            };

            var acessor = new Mock <IOptionsMonitor <SpringBootConfig> >();

            acessor.Setup(x => x.CurrentValue).Returns(config);

            var logger      = new Mock <ILogger <SpringBootClient> >();
            var restAPiMock = new Mock <ISpringBootAdminRESTAPI>();

            restAPiMock.Setup(x => x.PostAsync(It.IsNotNull <Application>(), It.Is <Uri>(x => x == uri))).Returns(new ValueTask <SpringBootRegisterResponse>(new SpringBootRegisterResponse()
            {
                Id = Id
            }).AsTask);

            var sbc = new SpringBootClient(logger.Object, appBuilder.Object, acessor.Object, restAPiMock.Object);

            var result = await sbc.RegisterAsync().ConfigureAwait(false);

            result.Should().Equals(Id);
            sbc.Dispose();
        }