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"); }