public void CircularRelationshipsMultiple() { var dto1 = new SelfReferencingDataTransferObject { Others = new List <SelfReferencingDataTransferObject>(new[] { new SelfReferencingDataTransferObject { Others = new List <SelfReferencingDataTransferObject>(new[] { new SelfReferencingDataTransferObject() }) } }) }; Assert.IsNotNull(dto1.ToViewModel <SelfReferencingViewModel>().ToDto <SelfReferencingDataTransferObject>()); var dto2 = new SelfReferencingDataTransferObject(); dto2.Other = new SelfReferencingDataTransferObject { Others = new List <SelfReferencingDataTransferObject>(new[] { new SelfReferencingDataTransferObject { Others = new List <SelfReferencingDataTransferObject>(new[] { dto2 }) } }) }; try { dto2.ToViewModel <SelfReferencingViewModel>(); Assert.Fail("Expected the conversion of cyclic relationships to fail."); } catch (Exception) { } var viewModel = new SelfReferencingViewModel(); viewModel.Others = new ObservableViewModelCollection <SelfReferencingViewModel>(viewModel) { viewModel }; try { viewModel.ToDto <SelfReferencingDataTransferObject>(); Assert.Fail("Expected the convertion of cyclic relationships to fail."); } catch (Exception) { } }
public void CircularRelationshipsSingle() { var dto1 = new SelfReferencingDataTransferObject { Other = new SelfReferencingDataTransferObject { Other = new SelfReferencingDataTransferObject() } }; Assert.IsNotNull(dto1.ToViewModel <SelfReferencingViewModel>().ToDto <SelfReferencingDataTransferObject>()); var dto2 = new SelfReferencingDataTransferObject(); dto2.Other = new SelfReferencingDataTransferObject { Other = new SelfReferencingDataTransferObject { Other = dto2 } }; try { dto2.ToViewModel <SelfReferencingViewModel>(); Assert.Fail("Expected the convertion of cyclic relationships to fail."); } catch (Exception) { } var viewModel = new SelfReferencingViewModel(); viewModel.Other = new SelfReferencingViewModel { Other = new SelfReferencingViewModel { Other = viewModel } }; try { viewModel.ToDto <SelfReferencingDataTransferObject>(); Assert.Fail("Expected the conversion of cyclic relationships to fail."); } catch (Exception) { } }