public void TelemetryDataLoginRequiredTest() { var connection = Substitute.For <IPersistentConnection>(); var deviceAuthenticator = Substitute.For <IDeviceAuthenticator>(); var deviceOperations = Substitute.For <IDeviceOperations>(); var dateTimeProvider = Substitute.For <IDateTimeProvider>(); var telemetryDataSinkResolver = Substitute.For <ITelemetryDataSinkResolver>(); dateTimeProvider.UtcNow.Returns(DateTime.UtcNow); var pusherRegistry = new PusherRegistry(dateTimeProvider); var connectionRegistry = new ConnectionRegistry(pusherRegistry, null); var deviceId = Identity.Next(); connection.ConnectionId.Returns(Guid.NewGuid()); deviceAuthenticator.Authenticate(null).ReturnsForAnyArgs(true); deviceOperations.Get(null).ReturnsForAnyArgs(TestDataCreator.Device(deviceId, "1234", "2345", "3456", "4567", 1)); connectionRegistry.RegisterInitiatedConnection(connection); telemetryDataSinkResolver.ResolveIncoming(null).ReturnsForAnyArgs(new List <ITelemetryDataSink>()); var telemetryDataService = new DirectTelemetryDataService(telemetryDataSinkResolver); var commandExecutor = new CommandExecutor(pusherRegistry, connectionRegistry, null, deviceAuthenticator, deviceOperations, null, telemetryDataService); dateTimeProvider.UtcNow.Returns(DateTime.UtcNow); commandExecutor.Execute(connection, new TelemetryDataCommand("{\"Temperature\": 24, \"Time\":" + DateTime.UtcNow.Ticks + "}")); connection.Received(1).Reply("telemetrydata unauthorized"); }
public void IncomingTelemetryDataLongPayloadTest() { var telemetryDataSinkResolver = Substitute.For <ITelemetryDataSinkResolver>(); var telemetryDataService = new DirectTelemetryDataService(telemetryDataSinkResolver); telemetryDataService.RecordTelemetryData("1234", JToken.Parse("{\"LongString\": \"" + string.Join(",", Enumerable.Range(0, 1000)) + "\"}")); }
public void IncomingTelemetryDataNullPayloadTest() { var telemetryDataSinkResolver = Substitute.For <ITelemetryDataSinkResolver>(); var telemetryDataService = new DirectTelemetryDataService(telemetryDataSinkResolver); telemetryDataService.RecordTelemetryData("1234", null); }
public void IncomingTelemetryDataNotAuthDeviceTest() { var telemetryDataSinkResolver = Substitute.For <ITelemetryDataSinkResolver>(); var telemetryDataService = new DirectTelemetryDataService(telemetryDataSinkResolver); telemetryDataService.RecordTelemetryData(null, JToken.Parse("{\"Temperature\": 24, \"Time\":" + DateTime.UtcNow.Ticks + "}")); }
public void IncomingTelemetryDataNotSinkTest() { var telemetryDataSinkResolver = Substitute.For <ITelemetryDataSinkResolver>(); telemetryDataSinkResolver.ResolveIncoming("1234") .Returns(new List <ITelemetryDataSink>()); var telemetryDataService = new DirectTelemetryDataService(telemetryDataSinkResolver); telemetryDataService.RecordTelemetryData("1234", JToken.Parse("{\"Temperature\": 24, \"Time\":" + DateTime.UtcNow.Ticks + "}")); }
public void IncomingTelemetryDataTest() { var deviceOperations = Substitute.For <Management.Model.Operations.IDeviceOperations>(); deviceOperations.Create(null).ReturnsForAnyArgs("12345"); IncomingStubs.Initialize("12345"); var telemetryDataSinkResolver = Substitute.For <ITelemetryDataSinkResolver>(); var device1 = new Management.Model.Device() { Network = new Management.Model.Network() { Id = "1234" }, Service = new Management.Model.Service() { Id = "2345" }, Company = new Management.Model.Company() { Id = "3456" }, Name = "new device", DeviceKey = Identity.Next() }; var deviceId = deviceOperations.Create(device1); telemetryDataSinkResolver.ResolveIncoming(deviceId) .Returns(new List <ITelemetryDataSink>() { new IncomingStubs.CurrentDataStub(), new IncomingStubs.TimeSeriesStub() }); var telemetryDataService = new DirectTelemetryDataService(telemetryDataSinkResolver); telemetryDataService.RecordTelemetryData(deviceId, JToken.Parse("{\"Temperature\": 24, \"Time\":" + DateTime.UtcNow.Ticks + "}")); Assert.AreEqual(2, IncomingStubs.RecordCounter); }
public void IncomingTelemetryDataRealDevice2Test() { Initialize(); IncomingStubs.Initialize(_deviceId); var telemetryDataSinkResolver = Substitute.For <ITelemetryDataSinkResolver>(); telemetryDataSinkResolver.ResolveIncoming(_deviceId) .Returns(new List <ITelemetryDataSink>() { new IncomingStubs.CurrentDataStub(), new IncomingStubs.TimeSeriesStub() }); var telemetryDataService = new DirectTelemetryDataService(telemetryDataSinkResolver); telemetryDataService.RecordTelemetryData(new TelemetryData(_deviceId, "{\"Temperature\": 24, \"Time\":" + DateTime.UtcNow.Ticks + "}", DateTime.UtcNow)); Assert.AreEqual(2, IncomingStubs.RecordCounter); }