public void GetRoomsByteReturnsCorrectValue(Byte[] rooms, Byte expectedRomByte)
        {
            var  messagesGenerator = new MessagesGenerator();
            Byte roomsByte         = messagesGenerator.GetRoomsByte(rooms);

            Assert.Equal(roomsByte, expectedRomByte);
        }
Exemple #2
0
        public void Rename2Variables_Confilct()
        {
            var startCode = Library.GetCode("Ex_1");

            var resultCode =

                startCode
                .ForkBranches()
                .AddLeft(Commands.Rename("GeneralCase", "Method", "variable", "variable1"))
                .AddRight(Commands.Rename("GeneralCase", "Method", "tail", "variable1"))
                .MergeBranches(
                    User
                    .BeingAsked(MessagesGenerator.VariablesHaveBeenRenamedWithConflict("variable", "variable1"))
                    .Answer("variable1")
                    .BeingAsked(MessagesGenerator.VariablesHaveBeenRenamedWithConflict("tail", "variable1"))
                    .Answer("tail2")
                    .Done())
                .Code;

            Assert.AreEqual(
                Utility.ApplyCommands(
                    startCode.Code,
                    Commands.Rename("GeneralCase", "Method", "variable", "variable1"),
                    Commands.Rename("GeneralCase", "Method", "tail", "tail2")),
                resultCode);
        }
        public void ConversionsAreReversible()
        {
            var messagesGenerator = new MessagesGenerator();

            for (Int32 roomsByte = 0; roomsByte <= 255; roomsByte++)
            {
                var  rooms        = messagesGenerator.GetRoomsFromByte((Byte)roomsByte);
                Byte newRoomsByte = messagesGenerator.GetRoomsByte(rooms);
                Assert.Equal(roomsByte, newRoomsByte);
            }
        }
Exemple #4
0
        private static void Main(String[] args)
        {
            var messagesGenerator = new MessagesGenerator();
            var messagesProvider  = new MessagesProvider(messagesGenerator);
            var random            = new Random();

            //Just an example of how to use API, pretty bad example
            using (var client = new SunricherTcpClient("192.168.12.194", ApiConstants.DefaultTcpPort))
            {
                client.MessageSent += (s, e) =>
                {
                    String messageStr = String.Join("-",
                                                    e.Message.Select(b => Convert.ToString(b, 16).PadLeft(2, '0')));

                    Console.WriteLine($"Message sent: {messageStr}");
                };

                var cts  = new CancellationTokenSource();
                var ct   = cts.Token;
                var task = Task.Run(() =>
                {
                    try
                    {
                        client.SendMessageAsync(messagesProvider.PowerOn(), ct).Wait(ct);
                        while (true)
                        {
                            if (ct.IsCancellationRequested)
                            {
                                break;
                            }

                            client.SendMessageAsync(messagesProvider.SetRed((Byte)random.Next(0, 100)), ct).Wait();
                            client.SendMessageAsync(messagesProvider.SetGreen((Byte)random.Next(0, 100)), ct).Wait();
                            client.SendMessageAsync(messagesProvider.SetBlue((Byte)random.Next(0, 100)), ct).Wait();
                            client.SendMessageAsync(messagesProvider.SetWhite((Byte)random.Next(0, 100)), ct).Wait();
                            client.SendMessageAsync(messagesProvider.SetBrightness((Byte)random.Next(0, 255)), ct).Wait();
                            Thread.Sleep(1000);
                        }
                    }
                    catch (Exception)
                    {
                        cts.Cancel();
                        throw;
                    }
                }, ct);

                Console.ReadKey();
                cts.Cancel();
                task.Wait(TimeSpan.FromSeconds(10));
            }
        }
Exemple #5
0
        public void RenameVariable_Confilct()
        {
            var startCode = Library.GetCode("Ex_1");

            var resultCode =

                startCode
                .ForkBranches()
                .AddLeft(Commands.Rename("GeneralCase", "Method", "variable", "variable1"))
                .AddRight(Commands.Rename("GeneralCase", "Method", "variable", "variable2"))
                .MergeBranches(
                    User
                    .BeingAsked(MessagesGenerator.VariableHasBeenRenamedDifferently("variable1", "variable2"))
                    .Answer("variable3")
                    .Done())
                .Code;

            Assert.AreEqual(Utility.ApplyCommand(startCode.Code, Commands.Rename("GeneralCase", "Method", "variable", "variable3")), resultCode);
        }