Example #1
0
        public void When_ResetFcnt_In_Device_With_Pending_Changes_Should_Have_HasFrameCountChanges_True()
        {
            // Non zero fcnt up
            var target = new LoRaDevice("1231", "12312", new SingleDeviceConnectionManager(this.loRaDeviceClient.Object));

            target.SetFcntUp(1);
            target.AcceptFrameCountChanges();
            target.ResetFcnt();
            Assert.Equal(0U, target.FCntUp);
            Assert.Equal(0U, target.FCntDown);
            Assert.True(target.HasFrameCountChanges);

            // Non zero fcnt down
            target = new LoRaDevice("1231", "12312", new SingleDeviceConnectionManager(this.loRaDeviceClient.Object));
            target.SetFcntDown(1);
            target.AcceptFrameCountChanges();
            target.ResetFcnt();
            Assert.Equal(0U, target.FCntUp);
            Assert.Equal(0U, target.FCntDown);
            Assert.True(target.HasFrameCountChanges);

            // Non zero fcnt down and up
            target = new LoRaDevice("1231", "12312", new SingleDeviceConnectionManager(this.loRaDeviceClient.Object));
            target.SetFcntDown(1);
            target.SetFcntDown(2);
            target.AcceptFrameCountChanges();
            target.ResetFcnt();
            Assert.Equal(0U, target.FCntUp);
            Assert.Equal(0U, target.FCntDown);
            Assert.True(target.HasFrameCountChanges);
        }
Example #2
0
        public void When_ResetFcnt_In_NonZero_FcntUp_Or_FcntDown_Should_Have_HasFrameCountChanges_True()
        {
            // Non zero fcnt up
            var target = new LoRaDevice("1231", "12312", this.loRaDeviceClient.Object);

            target.SetFcntUp(1);
            target.AcceptFrameCountChanges();
            target.ResetFcnt();
            Assert.Equal(0, target.FCntUp);
            Assert.Equal(0, target.FCntDown);
            Assert.True(target.HasFrameCountChanges);

            // Non zero fcnt down
            target = new LoRaDevice("1231", "12312", this.loRaDeviceClient.Object);
            target.SetFcntDown(1);
            target.AcceptFrameCountChanges();
            target.ResetFcnt();
            Assert.Equal(0, target.FCntUp);
            Assert.Equal(0, target.FCntDown);
            Assert.True(target.HasFrameCountChanges);

            // Non zero fcnt down and up
            target = new LoRaDevice("1231", "12312", this.loRaDeviceClient.Object);
            target.SetFcntDown(1);
            target.SetFcntDown(2);
            target.AcceptFrameCountChanges();
            target.ResetFcnt();
            Assert.Equal(0, target.FCntUp);
            Assert.Equal(0, target.FCntDown);
            Assert.True(target.HasFrameCountChanges);
        }
Example #3
0
        public void When_ResetFcnt_In_Device_With_Pending_Changes_Should_Have_HasFrameCountChanges_True()
        {
            var devAddr = new DevAddr(0x1231);

            // Non zero fcnt up
            using var target = CreateDefaultDevice();
            target.SetFcntUp(1);
            target.AcceptFrameCountChanges();
            target.ResetFcnt();
            Assert.Equal(0U, target.FCntUp);
            Assert.Equal(0U, target.FCntDown);
            Assert.True(target.HasFrameCountChanges);

            // Non zero fcnt down
            using var secondConnectionManager = new SingleDeviceConnectionManager(this.loRaDeviceClient.Object);
            using var secondTarget            = new LoRaDevice(devAddr, new DevEui(0x12312), secondConnectionManager);
            secondTarget.SetFcntDown(1);
            secondTarget.AcceptFrameCountChanges();
            secondTarget.ResetFcnt();
            Assert.Equal(0U, secondTarget.FCntUp);
            Assert.Equal(0U, secondTarget.FCntDown);
            Assert.True(secondTarget.HasFrameCountChanges);

            // Non zero fcnt down and up
            using var thirdConnectionManager = new SingleDeviceConnectionManager(this.loRaDeviceClient.Object);
            using var thirdTarget            = new LoRaDevice(devAddr, new DevEui(0x12312), thirdConnectionManager);
            thirdTarget.SetFcntDown(1);
            thirdTarget.SetFcntDown(2);
            thirdTarget.AcceptFrameCountChanges();
            thirdTarget.ResetFcnt();
            Assert.Equal(0U, thirdTarget.FCntUp);
            Assert.Equal(0U, thirdTarget.FCntDown);
            Assert.True(thirdTarget.HasFrameCountChanges);
        }
Example #4
0
        public void When_ResetFcnt_In_New_Instance_Should_Have_HasFrameCountChanges_False()
        {
            var target = new LoRaDevice("1231", "12312", this.loRaDeviceClient.Object);

            // Setting from 0 to 0 should not trigger changes
            target.ResetFcnt();
            Assert.False(target.HasFrameCountChanges);
        }
Example #5
0
        public void When_ResetFcnt_In_New_Instance_Should_Have_HasFrameCountChanges_False()
        {
            var target = new LoRaDevice("1231", "12312", new SingleDeviceConnectionManager(this.loRaDeviceClient.Object));

            // Setting from 0 to 0 should not trigger changes
            target.ResetFcnt();
            Assert.False(target.HasFrameCountChanges);
            Assert.Equal(0U, target.LastSavedFCntDown);
            Assert.Equal(0U, target.LastSavedFCntUp);
        }
Example #6
0
        public void When_ResetFcnt_In_NonZero_FcntUp_Or_FcntDown_Should_Have_HasFrameCountChanges_True()
        {
            var devAddr = new DevAddr(0x1231);

            // Non zero fcnt up
            using var target = CreateDefaultDevice();
            target.SetFcntUp(1);
            target.AcceptFrameCountChanges();
            target.ResetFcnt();
            Assert.Equal(0U, target.FCntUp);
            Assert.Equal(0U, target.FCntDown);
            Assert.True(target.HasFrameCountChanges);

            // Non zero fcnt down
            using var secondConnectionManager = new SingleDeviceConnectionManager(this.loRaDeviceClient.Object);
            using var secondTarget            = new LoRaDevice(devAddr, new DevEui(0x12312), secondConnectionManager);
            secondTarget.SetFcntDown(1);
            secondTarget.AcceptFrameCountChanges();
            secondTarget.ResetFcnt();
            Assert.Equal(0U, secondTarget.FCntUp);
            Assert.Equal(0U, secondTarget.FCntDown);
            Assert.Equal(0U, secondTarget.LastSavedFCntUp);
            Assert.Equal(1U, secondTarget.LastSavedFCntDown);
            Assert.True(secondTarget.HasFrameCountChanges);

            // Non zero fcnt down and up
            using var thirdConnectionManager = new SingleDeviceConnectionManager(this.loRaDeviceClient.Object);
            using var thirdTarget            = new LoRaDevice(devAddr, new DevEui(0x12312), thirdConnectionManager);
            thirdTarget.SetFcntDown(1);
            thirdTarget.SetFcntDown(2);
            thirdTarget.AcceptFrameCountChanges();
            thirdTarget.ResetFcnt();
            Assert.Equal(0U, thirdTarget.FCntUp);
            Assert.Equal(0U, thirdTarget.FCntDown);
            Assert.Equal(0U, thirdTarget.LastSavedFCntUp);
            Assert.Equal(2U, thirdTarget.LastSavedFCntDown);
            Assert.Empty(thirdTarget.PreferredGatewayID);
            Assert.Equal(LoRaRegionType.NotSet, thirdTarget.LoRaRegion);

            Assert.True(thirdTarget.HasFrameCountChanges);
        }
Example #7
0
        public void When_ResetFcnt_In_NonZero_FcntUp_Or_FcntDown_Should_Have_HasFrameCountChanges_True()
        {
            // Non zero fcnt up
            var target = new LoRaDevice("1231", "12312", new SingleDeviceConnectionManager(this.loRaDeviceClient.Object));

            target.SetFcntUp(1);
            target.AcceptFrameCountChanges();
            target.ResetFcnt();
            Assert.Equal(0U, target.FCntUp);
            Assert.Equal(0U, target.FCntDown);
            Assert.True(target.HasFrameCountChanges);

            // Non zero fcnt down
            target = new LoRaDevice("1231", "12312", new SingleDeviceConnectionManager(this.loRaDeviceClient.Object));
            target.SetFcntDown(1);
            target.AcceptFrameCountChanges();
            target.ResetFcnt();
            Assert.Equal(0U, target.FCntUp);
            Assert.Equal(0U, target.FCntDown);
            Assert.Equal(0U, target.LastSavedFCntUp);
            Assert.Equal(1U, target.LastSavedFCntDown);
            Assert.True(target.HasFrameCountChanges);

            // Non zero fcnt down and up
            target = new LoRaDevice("1231", "12312", new SingleDeviceConnectionManager(this.loRaDeviceClient.Object));
            target.SetFcntDown(1);
            target.SetFcntDown(2);
            target.AcceptFrameCountChanges();
            target.ResetFcnt();
            Assert.Equal(0U, target.FCntUp);
            Assert.Equal(0U, target.FCntDown);
            Assert.Equal(0U, target.LastSavedFCntUp);
            Assert.Equal(2U, target.LastSavedFCntDown);
            Assert.Empty(target.PreferredGatewayID);
            Assert.Equal(LoRaRegionType.NotSet, target.LoRaRegion);

            Assert.True(target.HasFrameCountChanges);
        }
Example #8
0
        public Task <bool> ResetAsync(LoRaDevice loRaDevice)
        {
            loRaDevice.ResetFcnt();

            return(Task.FromResult(true));
        }
        public Task <bool> ResetAsync(LoRaDevice loRaDevice, uint fcntUp, string gatewayId)
        {
            loRaDevice.ResetFcnt();

            return(Task.FromResult(true));
        }