コード例 #1
0
        public async Task TestActuator()
        {
            SessionInfo session = new SessionInfo(TestCredentials.USERNAME, TestCredentials.PASSWORD, TestCredentials.HOSTNAME);
            await session.AuthenticateAsync();

            string ain = "087610251884";

            bool?initial_state = await session.GetSwitchStateAsync(TestCredentials.LampAIN);

            switch (initial_state)
            {
            case true: Debug.WriteLine($"{ain} ist AN"); break;

            case false: Debug.WriteLine($"{ain} ist AUS"); break;

            case null: Debug.WriteLine($"{ain} ist UNBEKANNT"); break;
            }

            Assert.IsNotNull(initial_state);

            await Task.Delay(500);

            bool temp_state = await session.SetSwitchAsync(ain, initial_state == false);

            await Task.Delay(1500);

            bool restored_state = await session.ToggleSwitchAsync(ain);

            await Task.Delay(1500);

            bool?check_state = await session.GetSwitchStateAsync(ain);

            Assert.IsTrue(initial_state == check_state);
        }
コード例 #2
0
        public async Task GetSwitchTemperatures()
        {
            SessionInfo session = new SessionInfo(TestCredentials.USERNAME, TestCredentials.PASSWORD, TestCredentials.HOSTNAME);
            await session.AuthenticateAsync();

            string[] switches = await session.GetSwitchesAsync();

            foreach (string ain in switches)
            {
                string name = await session.GetSwitchNameAsync(ain);

                double power = await session.GetSwitchPowerAsync(ain);

                double energy = await session.GetSwitchEnergyAsync(ain);

                double temp = await session.GetSwitchTemperatureAsync(ain);

                string message = $"Switch {ain}" +
                                 $"\r\n name   = {name}" +
                                 $"\r\n P [mW] = {power}" +
                                 $"\r\n E [Wh] = {energy}" +
                                 $"\r\n T [°C] = {temp}";
                Debug.WriteLine(message);
            }
        }
コード例 #3
0
        public async Task GetSwitchList()
        {
            SessionInfo session = new SessionInfo(TestCredentials.USERNAME, TestCredentials.PASSWORD, TestCredentials.HOSTNAME);
            await session.AuthenticateAsync();

            string[] switches = await session.GetSwitchesAsync();
        }
コード例 #4
0
        public async Task TestDeviceListInfos()
        {
            SessionInfo session = new SessionInfo(TestCredentials.USERNAME, TestCredentials.PASSWORD, TestCredentials.HOSTNAME);
            await session.AuthenticateAsync();

            var result = await session.GetDeviceListInfosAsync();

            Assert.IsTrue(result.Device.Count > 0);
        }
コード例 #5
0
ファイル: TestErrors.cs プロジェクト: lazou/AvmSmartHome
        public async Task InvalidCredentials()
        {
            SessionInfo session = new SessionInfo("nsa", "masterpassword", TestCredentials.HOSTNAME);
            await Assert.ThrowsExceptionAsync <UnauthorizedAccessException>(async delegate
            {
                await session.AuthenticateAsync();
            });

            // wait because other tests would fail due to the brute-force protection
            await Task.Delay(5000);
        }
コード例 #6
0
ファイル: TestErrors.cs プロジェクト: lazou/AvmSmartHome
        public async Task InvalidAIN()
        {
            SessionInfo session = new SessionInfo(TestCredentials.USERNAME, TestCredentials.PASSWORD, TestCredentials.HOSTNAME);
            await session.AuthenticateAsync();

            string ain = "012345678910";

            await Assert.ThrowsExceptionAsync <HttpRequestException>(async delegate
            {
                bool?state = await session.GetSwitchStateAsync(ain);
            });
        }
コード例 #7
0
        public async Task TestSetSimpleOnOffAsync()
        {
            SessionInfo session = new SessionInfo(TestCredentials.USERNAME, TestCredentials.PASSWORD, TestCredentials.HOSTNAME);
            await session.AuthenticateAsync();

            var deviceList = await session.GetDeviceListInfosAsync();

            var compatibleDevice = deviceList.Device.FirstOrDefault(d => d.SimpleOnOff != null);

            if (compatibleDevice == null)
            {
                Assert.Fail("No compatible device found!");
            }
            else
            {
                var result = await session.SetSimpleOnOffAsync(compatibleDevice.Identifier, SimpleOnOffStates.Toggle);
            }
        }
コード例 #8
0
 public async Task SessionCreation()
 {
     SessionInfo session = new SessionInfo(TestCredentials.USERNAME, TestCredentials.PASSWORD, TestCredentials.HOSTNAME);
     await session.AuthenticateAsync();
 }