Exemplo n.º 1
0
        public void TestMemoryContextDeviceDeepClone()
        {
            Device device;

            using (var context = ContextHelper.GetContextWithData())
            {
                var deviceContext = context.Devices.
                                    Include(x => x.DisturbanceRecordings)
                                    .FirstOrDefault();

                Assert.NotNull(deviceContext);
                device = DummyLoader.CloneDeviceDeep(context, deviceContext);
            }
            //From Known values
            Assert.NotNull(device);

            var drs = device.DisturbanceRecordings;

            Assert.NotNull(drs);
            Assert.NotEmpty(drs);

            var dr = drs.FirstOrDefault();

            //Currently only has 1 dr
            Assert.NotNull(dr);
            Assert.Equal(1, dr.Id);
            Assert.Equal("DR1", dr.Name);
            Assert.Equal(1, dr.DeviceId);
            Assert.Equal(DateTime.ParseExact("2017-12-31 13:26", "yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture), dr.TriggerTime);
            Assert.Null(dr.Device);
        }
Exemplo n.º 2
0
        public void TestLocalDbContextDeviceDeepClone()
        {
            using (var context = new SystemContext())
            {
                try
                {
                    if (!context.Devices.Any())
                    {
                        return;
                    }
                }
                catch
                {
                    return;
                }

                var deviceLocalDB = context
                                    .Devices.AsNoTracking()
                                    .Include(x => x.DisturbanceRecordings).AsNoTracking()
                                    .FirstOrDefault();


                var deviceClone = DummyLoader.CloneDeviceDeep(context, deviceLocalDB);

                Assert.NotNull(deviceLocalDB);

                Assert.Equal(deviceLocalDB.Id, deviceClone.Id);
                Assert.Equal(deviceLocalDB.Bay, deviceClone.Bay);
                Assert.Equal(deviceLocalDB.DeviceType, deviceClone.DeviceType);
                Assert.Equal(deviceLocalDB.IPAddress, deviceClone.IPAddress);
                Assert.Equal(deviceLocalDB.IsConnected, deviceClone.IsConnected);
                Assert.Equal(deviceLocalDB.HasPing, deviceClone.HasPing);
                Assert.Equal(deviceLocalDB.Name, deviceClone.Name);
                Assert.Equal(deviceLocalDB.Station, deviceClone.Station);

                if (deviceLocalDB.DisturbanceRecordings == null ||
                    deviceLocalDB.DisturbanceRecordings.Count <= 0)
                {
                    return;
                }

                Assert.NotNull(deviceClone.DisturbanceRecordings);
                Assert.NotEmpty(deviceClone.DisturbanceRecordings);

                for (var i = 0; i < deviceLocalDB.DisturbanceRecordings.Count; i++)
                {
                    Assert.NotNull(deviceLocalDB.DisturbanceRecordings.ElementAt(i));
                    Assert.NotNull(deviceClone.DisturbanceRecordings.ElementAt(i));

                    Assert.Equal(deviceLocalDB.DisturbanceRecordings.ElementAt(i).Id, deviceClone.DisturbanceRecordings.ElementAt(i).Id);
                    Assert.Equal(deviceLocalDB.DisturbanceRecordings.ElementAt(i).Name, deviceClone.DisturbanceRecordings.ElementAt(i).Name);
                    Assert.Equal(deviceLocalDB.DisturbanceRecordings.ElementAt(i).DeviceId, deviceClone.DisturbanceRecordings.ElementAt(i).DeviceId);
                    Assert.Equal(deviceLocalDB.DisturbanceRecordings.ElementAt(i).TriggerTime, deviceClone.DisturbanceRecordings.ElementAt(i).TriggerTime);

                    //Failing:
                    //Assert.Equal(deviceLocalDB.DisturbanceRecordings.ElementAt(i).Device, deviceClone.DisturbanceRecordings.ElementAt(i).Device);
                }
            }
        }