public FeatDialog(Context context, Feat editFeat) : base(context) { feat = (Feat)editFeat.Clone(); RequestWindowFeature((int)WindowFeatures.NoTitle); SetContentView(Resource.Layout.FeatDialog); SetCanceledOnTouchOutside(true); OKButton.Click += (sender, e) => { Dismiss(); FeatComplete?.Invoke(this, feat); }; CancelButton.Click += (sender, e) => { Dismiss(); }; NameText.AttachEditTextString(feat, "Name"); TypesButton.AttachButtonStringList(feat, "Type", new List <string>(Feat.FeatTypes)); PrerequisitesText.AttachEditTextString(feat, "Prerequistites"); BenefitText.AttachEditTextString(feat, "Benefit"); NormalText.AttachEditTextString(feat, "Normal"); SpecialText.AttachEditTextString(feat, "Special"); feat.PropertyChanged += Feat_PropertyChanged; EnableOK(); }
public void CloneFeat() { feat.CanBeTakenMultipleTimes = Convert.ToBoolean(random.Next(2)); feat.Foci = new[] { Guid.NewGuid().ToString(), Guid.NewGuid().ToString() }; feat.Frequency.Quantity = random.Next(); feat.Frequency.TimePeriod = Guid.NewGuid().ToString(); feat.Name = Guid.NewGuid().ToString(); feat.Power = random.Next(); var clone = feat.Clone(); Assert.That(clone, Is.Not.EqualTo(feat)); Assert.That(clone.CanBeTakenMultipleTimes, Is.EqualTo(feat.CanBeTakenMultipleTimes)); Assert.That(clone.Foci, Is.Not.SameAs(feat.Foci)); Assert.That(clone.Foci, Is.EqualTo(feat.Foci)); Assert.That(clone.Frequency.Quantity, Is.EqualTo(feat.Frequency.Quantity)); Assert.That(clone.Frequency.TimePeriod, Is.EqualTo(feat.Frequency.TimePeriod)); Assert.That(clone.Name, Is.EqualTo(feat.Name)); Assert.That(clone.Power, Is.EqualTo(feat.Power)); }