Пример #1
0
        public async Task Should_apply_a_static_effect()
        {
            var color  = Color.FromArgb(139, 0, 0);
            var bgr    = 139;
            var device = "mouse";

            var content = ToStringContent(JsonConvert.SerializeObject(new ChromaEffect()
            {
                Param = new Dictionary <string, int>()
                {
                    { "color", bgr }
                }
            }));


            var subject = new ChromaClient(HttpClient)
            {
                SessionUri = SESSION_URI
            };

            ExpectRequest(HttpMethod.Put, $"{SESSION_URI}/{device}", content);
            await subject.ApplyStaticEffectAsync(device, color);

            Handler.Verify();
        }
Пример #2
0
        public async Task Should_send_heartbeat()
        {
            var subject = new ChromaClient(HttpClient)
            {
                SessionUri = SESSION_URI
            };

            ExpectRequest(HttpMethod.Put, $"{SESSION_URI}/heartbeat");
            await subject.SendHeartbeatAsync();

            Handler.Verify();
        }
Пример #3
0
        public async Task Should_initialize_a_chroma_session()
        {
            var subject = new ChromaClient(HttpClient);

            ExpectRequest(
                method: HttpMethod.Post,
                uri: ChromaClient.CHROMA_INITIALIZATION_ENDPOINT,
                body: ChromaClient.CHROMA_INITIALIZATION_BODY,
                responseBody: $@"{{""sessionid"": 12345, ""uri"": ""{SESSION_URI}""}}"
                );
            await subject.InitializeAsync();

            Assert.AreEqual(SESSION_URI, subject.SessionUri);
        }
Пример #4
0
        public async Task Should_throw_exception_on_failed_initialization()
        {
            var subject = new ChromaClient(HttpClient);

            ExpectRequest(
                method: HttpMethod.Post,
                uri: ChromaClient.CHROMA_INITIALIZATION_ENDPOINT,
                body: ChromaClient.CHROMA_INITIALIZATION_BODY,
                responseBody: $@"{{""error"": ""went to destination f****d"", ""result"": 87}}"
                );

            Assert.ThrowsAsync <ChromaException>(() => subject.InitializeAsync());
            Handler.Verify();
        }
Пример #5
0
        public void Should_throw_exception_when_update_returns_non_zero_exit_code()
        {
            var device  = "keyboard";
            var payload = "some payload";
            var content = ToStringContent(payload);

            var subject = new ChromaClient(HttpClient)
            {
                SessionUri = SESSION_URI
            };

            ExpectRequest(HttpMethod.Put, $"{SESSION_URI}/{device}", content, @"{""result"": 81, ""error"": ""failed big times""}");
            Assert.ThrowsAsync <ChromaException>(() => subject.UpdateAsync(device, payload));

            Handler.Verify();
        }
Пример #6
0
        public void Should_throw_execption_on_failure_to_update()
        {
            var device  = "keyboard";
            var payload = "some payload";
            var content = ToStringContent(payload);

            var subject = new ChromaClient(HttpClient)
            {
                SessionUri = SESSION_URI
            };

            ExpectRequest(HttpMethod.Put, $"{SESSION_URI}/{device}", content, @"{""result"": 76}", HttpStatusCode.InternalServerError);
            Assert.ThrowsAsync <HttpRequestException>(() => subject.UpdateAsync(device, payload));

            Handler.Verify();
        }
Пример #7
0
        public async Task Should_update()
        {
            var device  = "keyboard";
            var payload = "some payload";
            var content = ToStringContent(payload);

            var subject = new ChromaClient(HttpClient)
            {
                SessionUri = SESSION_URI
            };

            ExpectRequest(HttpMethod.Put, $"{SESSION_URI}/{device}", content);
            await subject.UpdateAsync(device, payload);

            Handler.Verify();
        }
Пример #8
0
        public void Should_throw_exception_when_apply_static_effect_returns_non_zero_exit_code()
        {
            var color  = Color.FromArgb(139, 0, 0);
            var bgr    = 139;
            var device = "mouse";

            var content = ToStringContent(JsonConvert.SerializeObject(new ChromaEffect()
            {
                Param = new Dictionary <string, int>()
                {
                    { "color", bgr }
                }
            }));

            var subject = new ChromaClient(HttpClient)
            {
                SessionUri = SESSION_URI
            };

            ExpectRequest(HttpMethod.Put, $"{SESSION_URI}/{device}", content, @"{""result"": 76, ""error"": ""failed big times""}");

            Assert.ThrowsAsync <ChromaException>(() => subject.ApplyStaticEffectAsync(device, color));
            Handler.Verify();
        }
Пример #9
0
        public void Should_throw_exception_on_request_failure_to_apply_static_effect()
        {
            var color  = Color.FromArgb(139, 0, 0);
            var bgr    = 139;
            var device = "mouse";

            var content = ToStringContent(JsonConvert.SerializeObject(new ChromaEffect()
            {
                Param = new Dictionary <string, int>()
                {
                    { "color", bgr }
                }
            }));

            var subject = new ChromaClient(HttpClient)
            {
                SessionUri = SESSION_URI
            };

            ExpectRequest(HttpMethod.Put, $"{SESSION_URI}/{device}", content, @"{""result"": 76}", HttpStatusCode.InternalServerError);

            Assert.ThrowsAsync <HttpRequestException>(() => subject.ApplyStaticEffectAsync(device, color));
            Handler.Verify();
        }