Ejemplo n.º 1
0
        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");
        }
Ejemplo n.º 2
0
        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)) + "\"}"));
        }
Ejemplo n.º 3
0
        public void IncomingTelemetryDataNullPayloadTest()
        {
            var telemetryDataSinkResolver = Substitute.For <ITelemetryDataSinkResolver>();

            var telemetryDataService = new DirectTelemetryDataService(telemetryDataSinkResolver);

            telemetryDataService.RecordTelemetryData("1234", null);
        }
Ejemplo n.º 4
0
        public void IncomingTelemetryDataNotAuthDeviceTest()
        {
            var telemetryDataSinkResolver = Substitute.For <ITelemetryDataSinkResolver>();

            var telemetryDataService = new DirectTelemetryDataService(telemetryDataSinkResolver);

            telemetryDataService.RecordTelemetryData(null, JToken.Parse("{\"Temperature\": 24, \"Time\":" + DateTime.UtcNow.Ticks + "}"));
        }
Ejemplo n.º 5
0
        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 + "}"));
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }