public async void TestNoMoreThan10Devices()
        {
            // Arrange
            var gateway = new Gateway
            {
                Id           = 1,
                Name         = "wee",
                IPv4         = "192.168.4.12",
                SerialNumber = "sdsd",
                Devices      = new List <Device>
                {
                    new Device {
                        UID = 1
                    },
                    new Device {
                        UID = 1
                    },
                    new Device {
                        UID = 1
                    },
                    new Device {
                        UID = 1
                    },
                    new Device {
                        UID = 1
                    },
                    new Device {
                        UID = 1
                    },
                    new Device {
                        UID = 1
                    },
                    new Device {
                        UID = 1
                    },
                    new Device {
                        UID = 1
                    },
                    new Device {
                        UID = 1
                    },
                    new Device {
                        UID = 1
                    },
                }
            };


            var options = new DbContextOptionsBuilder <GatewayDbContext>().UseInMemoryDatabase("gateway_test_devices");
            var db      = new GatewayDbContext(options.Options);

            var repo = new GatewayRepository(db);

            // Act
            var result = await repo.Create(gateway);

            // Assert
            Assert.False(result.Status);
        }
        public async void TestCreate()
        {
            // Arrange
            var gateway = new Gateway {
                Name = "Asdsd", IPv4 = "192.168.4.12", SerialNumber = "sdsd"
            };

            var options = new DbContextOptionsBuilder <GatewayDbContext>().UseInMemoryDatabase("gateway_test_db");
            var db      = new GatewayDbContext(options.Options);

            db.RemoveRange(db.Gateways);
            db.SaveChanges();
            var repo = new GatewayRepository(db);

            // Act
            var result = await repo.Create(gateway);

            // Assert
            Assert.True(result.Status);
            Assert.Equal((result.Entity as Gateway).IPv4, "192.168.4.12");
        }
        public async void TestDuplicateSerialNumber()
        {
            // Arrange
            var gateway = new Gateway {
                Id = 1, Name = "wee", IPv4 = "192.168.4.1", SerialNumber = "sdsd"
            };
            var gateway2 = new Gateway {
                Id = 2, Name = "qwe", IPv4 = "192.168.4.2", SerialNumber = "sdsd"
            };

            var options = new DbContextOptionsBuilder <GatewayDbContext>().UseInMemoryDatabase("gateway_test_serial");
            var db      = new GatewayDbContext(options.Options);

            db.Add(gateway);
            db.SaveChanges();

            var repo = new GatewayRepository(db);

            // Act
            var result = await repo.Create(gateway2);

            // Assert
            Assert.False(result.Status);
        }