Exemple #1
0
        internal string FindFirstMissingModuleName(IEnumerable <string> availableNames)
        {
            foreach (SocketUse use in this.SocketUses)
            {
                if (use.Socket != null)
                {
                    Module         m  = use.Socket.GadgeteerHardware as Module;
                    ProvidedSocket ps = use.Socket.Definition as ProvidedSocket;
                    if (m != null && ps != null)
                    {
                        int socketNumber;
                        if (!availableNames.Contains(m.Name) && !int.TryParse(ps.ConstructorParameter, out socketNumber))
                        {
                            return(m.Name);
                        }
                    }
                }
            }

            return(null);
        }
        public void CanConnectTest()
        {
            var providedSocket = new ProvidedSocket();
            var socketUse      = new Microsoft.Gadgeteer.Designer.Definitions.SocketUse();

            Assert.IsFalse(Microsoft.Gadgeteer.Designer.SocketUse.CanTypeConnect(providedSocket, socketUse), "null collections");

            socketUse.Types = new Collection <SocketType>();
            socketUse.Types.Add(new SingleSocketType()
            {
                Value = "A"
            });
            socketUse.Types.Add(new SingleSocketType()
            {
                Value = "B"
            });
            var composite = new CompositeType();

            composite.Types = new Collection <SingleSocketType>();
            composite.Types.Add(new SingleSocketType()
            {
                Value = "Z"
            });
            composite.Types.Add(new SingleSocketType()
            {
                Value = "Y"
            });
            socketUse.Types.Add(composite);

            Assert.IsFalse(Microsoft.Gadgeteer.Designer.SocketUse.CanTypeConnect(providedSocket, socketUse), "Tried to connect nothing");
            providedSocket.Types = new Collection <string>();
            Assert.IsFalse(Microsoft.Gadgeteer.Designer.SocketUse.CanTypeConnect(providedSocket, socketUse), "Empty collection");

            providedSocket.Types.Add("A");
            Assert.IsTrue(Microsoft.Gadgeteer.Designer.SocketUse.CanTypeConnect(providedSocket, socketUse), "Connect to 'A'");

            providedSocket.Types.Clear();
            providedSocket.Types.Add("a");
            Assert.IsFalse(Microsoft.Gadgeteer.Designer.SocketUse.CanTypeConnect(providedSocket, socketUse), "Connect to 'a'");

            providedSocket.Types.Clear();
            providedSocket.Types.Add("C");
            Assert.IsFalse(Microsoft.Gadgeteer.Designer.SocketUse.CanTypeConnect(providedSocket, socketUse), "Tried to connect to 'C'");

            providedSocket.Types.Clear();
            providedSocket.Types.Add("B");
            providedSocket.Types.Add("C");
            Assert.IsTrue(Microsoft.Gadgeteer.Designer.SocketUse.CanTypeConnect(providedSocket, socketUse), "Connect to 'B' or 'C'");

            providedSocket.Types.Clear();
            providedSocket.Types.Add("B");
            providedSocket.Types.Add("Z");
            Assert.IsTrue(Microsoft.Gadgeteer.Designer.SocketUse.CanTypeConnect(providedSocket, socketUse), "Connect to single with part of composite");

            providedSocket.Types.Clear();
            providedSocket.Types.Add("Z");
            Assert.IsFalse(Microsoft.Gadgeteer.Designer.SocketUse.CanTypeConnect(providedSocket, socketUse), "try to connect to composite");

            providedSocket.Types.Clear();
            providedSocket.Types.Add("Y");
            providedSocket.Types.Add("Z");
            Assert.IsTrue(Microsoft.Gadgeteer.Designer.SocketUse.CanTypeConnect(providedSocket, socketUse), "Connect to composite");
        }