public void ToXml() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); rp.TagNames = new string [1] { "Monkeys" }; SecurityElement se = rp.ToXml(); CheckCommonXml("empty", se); Assert.AreEqual(2, se.Attributes.Count, "#attributes"); Assert.IsNull(se.Children, "Children"); ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry(0, new string [1] { "Singes" }); rp.AddPermissionAccess(entry); se = rp.ToXml(); CheckCommonXml("one", se); Assert.AreEqual(2, se.Attributes.Count, "#attributes"); Assert.AreEqual(1, se.Children.Count, "1-Children"); SecurityElement child = (SecurityElement)se.Children [0]; Assert.AreEqual("Monkeys", child.Tag, "Monkeys"); Assert.AreEqual("Singes", child.Attribute("name"), "Singes"); }
public void Union() { NonAbstractResourcePermissionBase a = new NonAbstractResourcePermissionBase(); NonAbstractResourcePermissionBase z = (NonAbstractResourcePermissionBase)a.Union(null); CheckDefaultValues("Empty U null", z, false); Assert.IsFalse(Object.ReferenceEquals(a, z), "!ReferenceEquals1"); NonAbstractResourcePermissionBase b = new NonAbstractResourcePermissionBase(PermissionState.None); z = (NonAbstractResourcePermissionBase)a.Union(b); Assert.IsNull(z, "Empty U Empty"); NonAbstractResourcePermissionBase u = new NonAbstractResourcePermissionBase(PermissionState.Unrestricted); z = (NonAbstractResourcePermissionBase)u.Union(b); CheckDefaultValues("Unrestricted U Empty", z, true); Assert.IsFalse(Object.ReferenceEquals(u, z), "!ReferenceEquals2"); Assert.IsFalse(Object.ReferenceEquals(b, z), "!ReferenceEquals3"); z = (NonAbstractResourcePermissionBase)b.Union(u); CheckDefaultValues("Empty U Unrestricted", z, true); Assert.IsFalse(Object.ReferenceEquals(u, z), "!ReferenceEquals4"); Assert.IsFalse(Object.ReferenceEquals(b, z), "!ReferenceEquals5"); }
public void ToXml_Unrestricted() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(PermissionState.Unrestricted); rp.TagNames = new string [1] { "Monkeys" }; SecurityElement se = rp.ToXml(); CheckCommonXml("empty", se); Assert.AreEqual(3, se.Attributes.Count, "#attributes"); Assert.AreEqual("true", se.Attribute("Unrestricted"), "Unrestricted"); Assert.IsNull(se.Children, "Children"); ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry(0, new string [1] { "Singes" }); rp.AddPermissionAccess(entry); se = rp.ToXml(); CheckCommonXml("one", se); Assert.AreEqual(3, se.Attributes.Count, "#attributes"); // not XML output of childrens for unrestricted Assert.IsNull(se.Children, "Children"); }
public void PermissionAccessType() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); rp.PermissionAccessType = typeof(PermissionState); Assert.AreEqual(typeof(PermissionState), rp.PermissionAccessType, "PermissionAccessType"); }
public void Union_DifferentPermissions() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); SecurityPermission b = new SecurityPermission(PermissionState.None); rp.Union(b); }
public void IsSubsetOf_DifferentPermissions() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); SecurityPermission b = new SecurityPermission(PermissionState.None); // normally (other permissions) this would throw an ArgumentException Assert.IsFalse(rp.IsSubsetOf(b)); }
private void CheckDefaultValues(string msg, NonAbstractResourcePermissionBase rp, bool unrestricted) { Assert.IsNull(rp.PermissionAccessType, msg + "-PermissionAccessType"); Assert.IsNull(rp.TagNames, msg + "-TagNames"); Assert.AreEqual(unrestricted, rp.IsUnrestricted(), msg + "-IsUnrestricted"); ResourcePermissionBaseEntry[] entries = rp.GetPermissionEntries(); Assert.AreEqual(0, entries.Length, msg + "Count"); }
public void FromXml_WrongTagCase() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); SecurityElement se = rp.ToXml(); se.Tag = "IPERMISSION"; // instead of IPermission rp.FromXml(se); }
public void Constructor_Empty() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); CheckDefaultValues("original", rp, false); NonAbstractResourcePermissionBase copy = (NonAbstractResourcePermissionBase)rp.Copy(); CheckDefaultValues("copy", rp, false); }
public void Constructor_Unrestricted() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(PermissionState.Unrestricted); CheckDefaultValues("original", rp, true); NonAbstractResourcePermissionBase copy = (NonAbstractResourcePermissionBase)rp.Copy(); CheckDefaultValues("copy", rp, true); }
public void RemovePermissionAccess_MismatchTag() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); rp.TagNames = new string [1] { "Monkeys" }; rp.RemovePermissionAccess(new ResourcePermissionBaseEntry()); }
public void Constructor_Invalid() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase((PermissionState)Int32.MaxValue); CheckDefaultValues("original", rp, false); NonAbstractResourcePermissionBase copy = (NonAbstractResourcePermissionBase)rp.Copy(); CheckDefaultValues("copy", rp, false); }
public void FromXml_NoVersion() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); SecurityElement se = rp.ToXml(); SecurityElement w = new SecurityElement(se.Tag); w.AddAttribute("class", se.Attribute("class")); rp.FromXml(w); }
public void FromXml_NoClass() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); SecurityElement se = rp.ToXml(); SecurityElement w = new SecurityElement(se.Tag); w.AddAttribute("version", se.Attribute("version")); rp.FromXml(w); // doesn't even care of the class attribute presence }
public void TagNames() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); rp.TagNames = new string [2] { "Mono", "Novell" }; Assert.AreEqual(2, rp.TagNames.Length, "TagNames"); Assert.AreEqual("Mono", rp.TagNames [0], "TagNames-1"); Assert.AreEqual("Novell", rp.TagNames [1], "TagNames-2"); }
public void FromXml_WrongClass() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); SecurityElement se = rp.ToXml(); SecurityElement w = new SecurityElement(se.Tag); w.AddAttribute("class", "Wrong" + se.Attribute("class")); w.AddAttribute("version", se.Attribute("version")); rp.FromXml(w); // doesn't care of the class name at that stage // anyway the class has already be created so... }
public void RemovePermissionAccess_Unexisting() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); rp.TagNames = new string [1] { "Monkeys" }; ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry(0, new string [1] { "Singes" }); rp.RemovePermissionAccess(entry); }
public void AddPermissionAccess_Duplicates_SameInstance() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); rp.TagNames = new string [1] { "Monkeys" }; ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry(0, new string [1] { "Singes" }); rp.AddPermissionAccess(entry); rp.AddPermissionAccess(entry); }
public void AddPermissionAccess() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); rp.TagNames = new string [1] { "Monkeys" }; ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry(0, new string [1] { "Singes" }); rp.AddPermissionAccess(entry); ResourcePermissionBaseEntry[] entries = rp.GetPermissionEntries(); Assert.AreEqual(1, entries.Length, "Count"); }
public void AddPermissionAccess_SemiDuplicates() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); rp.TagNames = new string [2] { "Monkeys", "Singes" }; ResourcePermissionBaseEntry entry1 = new ResourcePermissionBaseEntry(0, new string [2] { "1", "2" }); rp.AddPermissionAccess(entry1); ResourcePermissionBaseEntry entry2 = new ResourcePermissionBaseEntry(0, new string [2] { "2", "1" }); rp.AddPermissionAccess(entry2); }
public void Unrestricted_AddRemove() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(PermissionState.Unrestricted); rp.TagNames = new string [1] { "Monkeys" }; ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry(0, new string [1] { "Singes" }); rp.AddPermissionAccess(entry); ResourcePermissionBaseEntry [] entries = rp.GetPermissionEntries(); Assert.AreEqual(1, entries.Length, "Count==1"); rp.RemovePermissionAccess(entry); entries = rp.GetPermissionEntries(); Assert.AreEqual(0, entries.Length, "Count==0"); }
public void Copy() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); rp.PermissionAccessType = typeof(PermissionState); rp.TagNames = new string [1] { "Monkeys" }; ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry(0, new string [1] { "Singes" }); rp.AddPermissionAccess(entry); NonAbstractResourcePermissionBase copy = (NonAbstractResourcePermissionBase)rp.Copy(); Assert.AreEqual(typeof(PermissionState), copy.PermissionAccessType, "PermissionAccessType"); Assert.AreEqual("Monkeys", copy.TagNames [0], "TagNames"); ResourcePermissionBaseEntry [] entries = copy.GetPermissionEntries(); Assert.AreEqual(1, entries.Length, "Count"); }
public void GetPermissionEntries() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); ResourcePermissionBaseEntry[] entries = rp.GetPermissionEntries(); Assert.AreEqual(0, entries.Length, "Empty"); rp.PermissionAccessType = typeof(PermissionState); rp.TagNames = new string [1] { "Monkeys" }; ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry(0, new string [1] { "Singes" }); rp.AddPermissionAccess(entry); entries = rp.GetPermissionEntries(); Assert.AreEqual(1, entries.Length, "Count==1"); rp.Clear(); entries = rp.GetPermissionEntries(); Assert.AreEqual(0, entries.Length, "Count==0"); }
public void TagNames_Length () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); rp.TagNames = new string [0]; }
public void GetPermissionEntries () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); ResourcePermissionBaseEntry[] entries = rp.GetPermissionEntries (); Assert.AreEqual (0, entries.Length, "Empty"); rp.PermissionAccessType = typeof (PermissionState); rp.TagNames = new string [1] { "Monkeys" }; ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry (0, new string [1] { "Singes" }); rp.AddPermissionAccess (entry); entries = rp.GetPermissionEntries (); Assert.AreEqual (1, entries.Length, "Count==1"); rp.Clear (); entries = rp.GetPermissionEntries (); Assert.AreEqual (0, entries.Length, "Count==0"); }
public void FromXml_NoClass () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); SecurityElement se = rp.ToXml (); SecurityElement w = new SecurityElement (se.Tag); w.AddAttribute ("version", se.Attribute ("version")); rp.FromXml (w); // doesn't even care of the class attribute presence }
public void FromXml_WrongTagCase () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); SecurityElement se = rp.ToXml (); se.Tag = "IPERMISSION"; // instead of IPermission rp.FromXml (se); }
public void Copy () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); rp.PermissionAccessType = typeof (PermissionState); rp.TagNames = new string [1] { "Monkeys" }; ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry (0, new string [1] { "Singes" }); rp.AddPermissionAccess (entry); NonAbstractResourcePermissionBase copy = (NonAbstractResourcePermissionBase) rp.Copy (); Assert.AreEqual (typeof (PermissionState), copy.PermissionAccessType, "PermissionAccessType"); Assert.AreEqual ("Monkeys", copy.TagNames [0], "TagNames"); ResourcePermissionBaseEntry [] entries = copy.GetPermissionEntries (); Assert.AreEqual (1, entries.Length, "Count"); }
public void AddPermissionAccess_Duplicates_DifferentInstances () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); rp.TagNames = new string [1] { "Monkeys" }; ResourcePermissionBaseEntry entry1 = new ResourcePermissionBaseEntry (0, new string [1] { "Singes" }); rp.AddPermissionAccess (entry1); ResourcePermissionBaseEntry entry2 = new ResourcePermissionBaseEntry (0, new string [1] { "Singes" }); rp.AddPermissionAccess (entry2); }
private void CheckDefaultValues (string msg, NonAbstractResourcePermissionBase rp, bool unrestricted) { Assert.IsNull (rp.PermissionAccessType, msg + "-PermissionAccessType"); Assert.IsNull (rp.TagNames, msg + "-TagNames"); Assert.AreEqual (unrestricted, rp.IsUnrestricted (), msg + "-IsUnrestricted"); ResourcePermissionBaseEntry[] entries = rp.GetPermissionEntries (); Assert.AreEqual (0, entries.Length, msg + "Count"); }
public void PermissionAccessType_Null() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); rp.PermissionAccessType = null; }
public void PermissionAccessType_NonEnum() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); rp.PermissionAccessType = typeof(NonAbstractResourcePermissionBase); }
public void TagNames_Null() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); rp.TagNames = null; }
public void TagNames_Length() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); rp.TagNames = new string [0]; }
public void FromXml_Null() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); rp.FromXml(null); }
public void TagNames () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); rp.TagNames = new string [2] { "Mono", "Novell" }; Assert.AreEqual (2, rp.TagNames.Length, "TagNames"); Assert.AreEqual ("Mono", rp.TagNames [0], "TagNames-1"); Assert.AreEqual ("Novell", rp.TagNames [1], "TagNames-2"); }
public void AddPermissionAccess () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); rp.TagNames = new string [1] { "Monkeys" }; ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry (0, new string [1] { "Singes" }); rp.AddPermissionAccess (entry); ResourcePermissionBaseEntry[] entries = rp.GetPermissionEntries (); Assert.AreEqual (1, entries.Length, "Count"); }
public void RemovePermissionAccess_Null () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); rp.RemovePermissionAccess (null); }
public void AddPermissionAccess_SemiDuplicates () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); rp.TagNames = new string [2] { "Monkeys", "Singes" }; ResourcePermissionBaseEntry entry1 = new ResourcePermissionBaseEntry (0, new string [2] { "1", "2" }); rp.AddPermissionAccess (entry1); ResourcePermissionBaseEntry entry2 = new ResourcePermissionBaseEntry (0, new string [2] { "2", "1" }); rp.AddPermissionAccess (entry2); }
public void RemovePermissionAccess_Unexisting () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); rp.TagNames = new string [1] { "Monkeys" }; ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry (0, new string [1] { "Singes" }); rp.RemovePermissionAccess (entry); }
public void FromXml_Null () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); rp.FromXml (null); }
public void ToXml_Unrestricted () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (PermissionState.Unrestricted); rp.TagNames = new string [1] { "Monkeys" }; SecurityElement se = rp.ToXml (); CheckCommonXml ("empty", se); Assert.AreEqual (3, se.Attributes.Count, "#attributes"); Assert.AreEqual ("true", se.Attribute ("Unrestricted"), "Unrestricted"); Assert.IsNull (se.Children, "Children"); ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry (0, new string [1] { "Singes" }); rp.AddPermissionAccess (entry); se = rp.ToXml (); CheckCommonXml ("one", se); Assert.AreEqual (3, se.Attributes.Count, "#attributes"); // not XML output of childrens for unrestricted Assert.IsNull (se.Children, "Children"); }
public void FromXml_WrongClass () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); SecurityElement se = rp.ToXml (); SecurityElement w = new SecurityElement (se.Tag); w.AddAttribute ("class", "Wrong" + se.Attribute ("class")); w.AddAttribute ("version", se.Attribute ("version")); rp.FromXml (w); // doesn't care of the class name at that stage // anyway the class has already be created so... }
public void Union_DifferentPermissions () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); SecurityPermission b = new SecurityPermission (PermissionState.None); rp.Union (b); }
public void FromXml_NoVersion () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); SecurityElement se = rp.ToXml (); SecurityElement w = new SecurityElement (se.Tag); w.AddAttribute ("class", se.Attribute ("class")); rp.FromXml (w); }
public void TagNames_Null () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); rp.TagNames = null; }
public void IsSubsetOf_DifferentPermissions () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); SecurityPermission b = new SecurityPermission (PermissionState.None); // normally (other permissions) this would throw an ArgumentException Assert.IsFalse (rp.IsSubsetOf (b)); }
public void RemovePermissionAccess_Null() { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase(); rp.RemovePermissionAccess(null); }
public void RemovePermissionAccess_MismatchTag () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); rp.TagNames = new string [1] { "Monkeys" }; rp.RemovePermissionAccess (new ResourcePermissionBaseEntry ()); }
public void Constructor_Invalid () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase ((PermissionState)Int32.MaxValue); CheckDefaultValues ("original", rp, false); NonAbstractResourcePermissionBase copy = (NonAbstractResourcePermissionBase)rp.Copy (); CheckDefaultValues ("copy", rp, false); }
public void ToXml () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); rp.TagNames = new string [1] { "Monkeys" }; SecurityElement se = rp.ToXml (); CheckCommonXml ("empty", se); Assert.AreEqual (2, se.Attributes.Count, "#attributes"); Assert.IsNull (se.Children, "Children"); ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry (0, new string [1] { "Singes" }); rp.AddPermissionAccess (entry); se = rp.ToXml (); CheckCommonXml ("one", se); Assert.AreEqual (2, se.Attributes.Count, "#attributes"); Assert.AreEqual (1, se.Children.Count, "1-Children"); SecurityElement child = (SecurityElement) se.Children [0]; Assert.AreEqual ("Monkeys", child.Tag, "Monkeys"); Assert.AreEqual ("Singes", child.Attribute ("name"), "Singes"); }
public void PermissionAccessType_Null () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); rp.PermissionAccessType = null; }
public void Union () { NonAbstractResourcePermissionBase a = new NonAbstractResourcePermissionBase (); NonAbstractResourcePermissionBase z = (NonAbstractResourcePermissionBase) a.Union (null); CheckDefaultValues ("Empty U null", z, false); Assert.IsFalse (Object.ReferenceEquals (a, z), "!ReferenceEquals1"); NonAbstractResourcePermissionBase b = new NonAbstractResourcePermissionBase (PermissionState.None); z = (NonAbstractResourcePermissionBase) a.Union (b); Assert.IsNull (z, "Empty U Empty"); NonAbstractResourcePermissionBase u = new NonAbstractResourcePermissionBase (PermissionState.Unrestricted); z = (NonAbstractResourcePermissionBase) u.Union (b); CheckDefaultValues ("Unrestricted U Empty", z, true); Assert.IsFalse (Object.ReferenceEquals (u, z), "!ReferenceEquals2"); Assert.IsFalse (Object.ReferenceEquals (b, z), "!ReferenceEquals3"); z = (NonAbstractResourcePermissionBase)b.Union (u); CheckDefaultValues ("Empty U Unrestricted", z, true); Assert.IsFalse (Object.ReferenceEquals (u, z), "!ReferenceEquals4"); Assert.IsFalse (Object.ReferenceEquals (b, z), "!ReferenceEquals5"); }
public void PermissionAccessType_NonEnum () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); rp.PermissionAccessType = typeof (NonAbstractResourcePermissionBase); }
public void Unrestricted_AddRemove () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (PermissionState.Unrestricted); rp.TagNames = new string [1] { "Monkeys" }; ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry (0, new string [1] { "Singes" }); rp.AddPermissionAccess (entry); ResourcePermissionBaseEntry [] entries = rp.GetPermissionEntries (); Assert.AreEqual (1, entries.Length, "Count==1"); rp.RemovePermissionAccess (entry); entries = rp.GetPermissionEntries (); Assert.AreEqual (0, entries.Length, "Count==0"); }
public void PermissionAccessType () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); rp.PermissionAccessType = typeof (PermissionState); Assert.AreEqual (typeof (PermissionState), rp.PermissionAccessType, "PermissionAccessType"); }
public void Constructor_Empty () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (); CheckDefaultValues ("original", rp, false); NonAbstractResourcePermissionBase copy = (NonAbstractResourcePermissionBase) rp.Copy (); CheckDefaultValues ("copy", rp, false); }
public void Constructor_Unrestricted () { NonAbstractResourcePermissionBase rp = new NonAbstractResourcePermissionBase (PermissionState.Unrestricted); CheckDefaultValues ("original", rp, true); NonAbstractResourcePermissionBase copy = (NonAbstractResourcePermissionBase)rp.Copy (); CheckDefaultValues ("copy", rp, true); }