private (IAuthenticator, IUsernameParser, IClientCredentialsFactory, ISystemComponentIdProvider) SetupAcceptEverything(string hubname = "testhub") { var authenticator = Mock.Of <IAuthenticator>(); var usernameParser = new MqttUsernameParser(); var credFactory = new ClientCredentialsFactory(new IdentityProvider(hubname)); var sysIdProvider = Mock.Of <ISystemComponentIdProvider>(); Mock.Get(authenticator).Setup(a => a.AuthenticateAsync(It.IsAny <IClientCredentials>())).Returns(Task.FromResult(true)); Mock.Get(sysIdProvider).Setup(a => a.EdgeHubBridgeId).Returns("testdev/$edgeHub/$bridge"); return(authenticator, usernameParser, credFactory, sysIdProvider); }
public void ParseUsernameTest(string username, string expectedDeviceId, string expectedModuleId, string expectedDeviceClientType, string expectedModelId) { var usernameParser = new MqttUsernameParser(); ClientInfo clientInfo = usernameParser.Parse(username); Assert.Equal(expectedDeviceId, clientInfo.DeviceId); Assert.Equal(expectedModuleId, clientInfo.ModuleId); Assert.Equal(expectedDeviceClientType, clientInfo.DeviceClientType); Assert.Equal(!string.IsNullOrWhiteSpace(expectedModelId), clientInfo.ModelId.HasValue); clientInfo.ModelId.ForEach(mId => Assert.Equal(expectedModelId, mId)); }
static async Task <IClientCredentials> GetClientCredentials(string iotHubHostName, string deviceId, string userName, string token, bool isCertAuthAllowed = false, string productInfo = "", X509Certificate2 certificate = null, IList <X509Certificate2> chain = null, IMetadataStore metadataStore = null) { metadataStore = metadataStore ?? Mock.Of <IMetadataStore>(); var authenticator = Mock.Of <IAuthenticator>(a => a.AuthenticateAsync(It.IsAny <IClientCredentials>()) == Task.FromResult(true)); var usernameParser = new MqttUsernameParser(); var factory = new ClientCredentialsFactory(new IdentityProvider(iotHubHostName), productInfo); var credentialIdentityProvider = new DeviceIdentityProvider(authenticator, usernameParser, factory, metadataStore, isCertAuthAllowed); if (certificate != null && chain != null) { credentialIdentityProvider.RegisterConnectionCertificate(certificate, chain); } IDeviceIdentity deviceIdentity = await credentialIdentityProvider.GetAsync(deviceId, userName, token, null); Assert.NotNull(deviceIdentity); IClientCredentials clientCredentials = (deviceIdentity as ProtocolGatewayIdentity)?.ClientCredentials; return(clientCredentials); }
public void ParseUserNameErrorTest(string username) { var usernameParser = new MqttUsernameParser(); Assert.Throws <EdgeHubConnectionException>(() => usernameParser.Parse(username)); }