public void GetApiVersionReturnsVersionOfOsramLightifyApi()
        {
            // Arrange
            var major = 1;
            var minor = 2;
            var build = 3;
            var version = new Version(major, minor, build, 0);
            var apiVersionResponse = new ApiVersion()
            {
                Version = version
            };

            var client = new Client(TestConstants.OSRAM_LIGHTIFY_BASE_URI);

            client.UserInformation = new UserInformation()
            {
                UserId = TestConstants.USER_ID,
                Username = TestConstants.USERNAME,
                Password = TestConstants.PASSWORD,
                SerialNumber = TestConstants.SERIAL_NUMBER,
                SecurityToken = TestConstants.SECURITY_TOKEN
            };

            var restCallExecutor = Mock.Create<RestCallExecutor>();
            Mock.Arrange(() => restCallExecutor.Invoke(HttpMethod.Get, Arg.Matches<string>(s => s.Contains(Constants.ApiOperation.VERSION)), Arg.IsAny<Dictionary<string, string>>(), Arg.AnyString))
                .IgnoreInstance()
                .Returns(apiVersionResponse.SerializeObject())
                .OccursOnce();

            // Act
            var result = client.GetApiVersion();

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(major, result.Major);
            Assert.AreEqual(minor, result.Minor);
            Assert.AreEqual(build, result.Build);

            Mock.Assert(restCallExecutor);
        }