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); }
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); } } }