private IInternalCluster GetCluster() { var cluster = Mock.Of <IInternalCluster>(); var config = GetConfig(); var metadata = new Metadata(config) { ControlConnection = Mock.Of <IControlConnection>() }; var contactPoint = new HostnameContactPoint( config.DnsResolver, config.ProtocolOptions, config.ServerNameResolver, config.KeepContactPointsUnresolved, "localhost"); var connectionEndPoint = new ConnectionEndPoint( new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9011), config.ServerNameResolver, contactPoint); Mock.Get(metadata.ControlConnection).SetupGet(cc => cc.ProtocolVersion).Returns(ProtocolVersion.V4); Mock.Get(metadata.ControlConnection).SetupGet(cc => cc.EndPoint).Returns(connectionEndPoint); Mock.Get(metadata.ControlConnection).SetupGet(cc => cc.LocalAddress).Returns(new IPEndPoint(IPAddress.Parse("10.10.10.2"), 9015)); var hostIp = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9042); metadata.SetResolvedContactPoints(new Dictionary <IContactPoint, IEnumerable <IConnectionEndPoint> > { { contactPoint, new [] { connectionEndPoint } } }); metadata.AddHost(hostIp); metadata.Hosts.ToCollection().First().Datacenter = "dc123"; Mock.Get(cluster).SetupGet(m => m.Configuration).Returns(config); Mock.Get(cluster).SetupGet(m => m.Metadata).Returns(metadata); Mock.Get(cluster).Setup(c => c.AllHosts()).Returns(metadata.AllHosts); return(cluster); }
public IEnumerable <IContactPoint> ParseContactPoints(IEnumerable <object> providedContactPoints) { var result = new HashSet <IContactPoint>(); foreach (var contactPoint in providedContactPoints) { IContactPoint parsedContactPoint; switch (contactPoint) { case IContactPoint typedContactPoint: parsedContactPoint = typedContactPoint; break; case IPEndPoint ipEndPointContactPoint: parsedContactPoint = new IpLiteralContactPoint(ipEndPointContactPoint, _serverNameResolver); break; case IPAddress ipAddressContactPoint: parsedContactPoint = new IpLiteralContactPoint(ipAddressContactPoint, _protocolOptions, _serverNameResolver); break; case string contactPointText: { if (IPAddress.TryParse(contactPointText, out var ipAddress)) { parsedContactPoint = new IpLiteralContactPoint(ipAddress, _protocolOptions, _serverNameResolver); } else { parsedContactPoint = new HostnameContactPoint( _dnsResolver, _protocolOptions, _serverNameResolver, _keepContactPointsUnresolved, contactPointText); } break; } default: throw new InvalidOperationException("Contact points should be either string or IPEndPoint instances"); } if (result.Contains(parsedContactPoint)) { Cluster.Logger.Warning("Found duplicate contact point: {0}. Ignoring it.", contactPoint.ToString()); continue; } result.Add(parsedContactPoint); } return(result); }