public void Bug448241() { this.MyTestInitialize(TestContext.GetCurrentMethod()); DocumentFormat.OpenXml.Wordprocessing.TableCellMarginDefault tablecellmar = new DocumentFormat.OpenXml.Wordprocessing.TableCellMarginDefault(); var wrongChild = tablecellmar.AppendChild(new DocumentFormat.OpenXml.Wordprocessing.LeftMargin()); var leftmar = tablecellmar.TableCellLeftMargin; // should be null, as the correct child should be TableCellLeftMargin Assert.Null(leftmar); tablecellmar.AppendChild(new DocumentFormat.OpenXml.Wordprocessing.BottomMargin()); Assert.Null(leftmar); // **** Set a correct left. var correctChild = tablecellmar.TableCellLeftMargin = new TableCellLeftMargin(); Assert.NotNull(tablecellmar.TableCellLeftMargin); Assert.Same(tablecellmar.LastChild, tablecellmar.BottomMargin); // the wrong child should still be there. Assert.Same(wrongChild, tablecellmar.FirstChild); // **** Top, wrong, correctLeft, Bottom tablecellmar.TopMargin = new TopMargin(); Assert.NotNull(tablecellmar.TableCellLeftMargin); Assert.Same(tablecellmar.LastChild, tablecellmar.BottomMargin); Assert.Same(tablecellmar.FirstChild, tablecellmar.TopMargin); // the wrong child should still be there. Assert.Same(wrongChild, tablecellmar.FirstChild.NextSibling()); // **** Top, wrong, Bottom tablecellmar.RemoveChild(correctChild); Assert.Null(tablecellmar.TableCellLeftMargin); Assert.Same(tablecellmar.LastChild, tablecellmar.BottomMargin); Assert.Same(tablecellmar.FirstChild, tablecellmar.TopMargin); // the wrong child should still be there. Assert.Same(wrongChild, tablecellmar.FirstChild.NextSibling()); // =========== case for xsd:choice ============== var shapeTaget = new DocumentFormat.OpenXml.Presentation.ShapeTarget(); var wrongBg = shapeTaget.AppendChild(new DocumentFormat.OpenXml.Presentation.Background()); Assert.Null(shapeTaget.BackgroundAnimation); // **** set a correct one. var correctBg = shapeTaget.BackgroundAnimation = new DocumentFormat.OpenXml.Presentation.BackgroundAnimation(); Assert.Equal(1, shapeTaget.ChildElements.Count); Assert.Same(correctBg, shapeTaget.BackgroundAnimation); }
public void Bug448241() { DocumentFormat.OpenXml.Wordprocessing.TableCellMarginDefault tablecellmar = new DocumentFormat.OpenXml.Wordprocessing.TableCellMarginDefault(); var wrongChild = tablecellmar.AppendChild(new DocumentFormat.OpenXml.Wordprocessing.LeftMargin()); var leftmar = tablecellmar.TableCellLeftMargin; // should be null, as the correct child should be TableCellLeftMargin Assert.Null(leftmar); tablecellmar.AppendChild(new DocumentFormat.OpenXml.Wordprocessing.BottomMargin()); Assert.Null(leftmar); // **** Set a correct left. var correctChild = tablecellmar.TableCellLeftMargin = new TableCellLeftMargin(); Assert.NotNull(tablecellmar.TableCellLeftMargin); Assert.Same(tablecellmar.LastChild, tablecellmar.BottomMargin); // the wrong child should still be there. Assert.Same(wrongChild, tablecellmar.FirstChild); // **** Top, wrong, correctLeft, Bottom tablecellmar.TopMargin = new TopMargin(); Assert.NotNull(tablecellmar.TableCellLeftMargin); Assert.Same(tablecellmar.LastChild, tablecellmar.BottomMargin); Assert.Same(tablecellmar.FirstChild, tablecellmar.TopMargin); // the wrong child should still be there. Assert.Same(wrongChild, tablecellmar.FirstChild.NextSibling()); // **** Top, wrong, Bottom tablecellmar.RemoveChild(correctChild); Assert.Null(tablecellmar.TableCellLeftMargin); Assert.Same(tablecellmar.LastChild, tablecellmar.BottomMargin); Assert.Same(tablecellmar.FirstChild, tablecellmar.TopMargin); // the wrong child should still be there. Assert.Same(wrongChild, tablecellmar.FirstChild.NextSibling()); // =========== case for xsd:choice ============== var shapeTaget = new DocumentFormat.OpenXml.Presentation.ShapeTarget(); var wrongBg = shapeTaget.AppendChild(new DocumentFormat.OpenXml.Presentation.Background()); Assert.Null(shapeTaget.BackgroundAnimation); // **** set a correct one. var correctBg = shapeTaget.BackgroundAnimation = new DocumentFormat.OpenXml.Presentation.BackgroundAnimation(); Assert.Equal(1, shapeTaget.ChildElements.Count); Assert.Same(correctBg, shapeTaget.BackgroundAnimation); }