public void TestSourceData() { DateTime currTime = DateTime.Now; SourceData data = new SourceData(DateTime.Now, "283948326", "-300"); //2 + 8 + 3 + 9 + 4 + 8 + 3 + 2 + 6 = 45,所以中奖号码为:58326。 //data.OnlineTime = currTime; //data.OnlineTime = currTime; //测试重复赋相同的值的情况。 data.InitialData(currTime, data.OnlineNumber, data.OnlineChange); Assert.ThrowsException <ArgumentOutOfRangeException>(() => { data.InitialData(currTime.AddDays(-15), data.OnlineNumber, data.OnlineChange); }, "所要设置的源数据的 “在线时间” 范围必须要在今天之前和之后的 10 天之内!"); Assert.ThrowsException <ArgumentOutOfRangeException>(() => { data.InitialData(currTime.AddDays(13), data.OnlineNumber, data.OnlineChange); }, "所要设置的源数据的 “在线时间” 范围必须要在今天之前和之后的 10 天之内!"); Assert.AreEqual <string>("-300", data.OnlineChange); Assert.AreEqual <string>("283948326", data.OnlineNumber); Assert.AreEqual <DateTime>(currTime, data.OnlineTime); Assert.IsTrue(data.Equals(data)); //Assert.IsFalse(data.Equals(new SourceData())); Assert.IsFalse(data.Equals(null)); data = new SourceData(DateTime.Now, "283948327", "-301"); Number winNumber = "68327".ToNumber(); Assert.AreEqual <Number>(winNumber, data.WinningNumber); Assert.AreEqual <string>(winNumber.FirstTwo(), data.FirstTwo); Assert.AreEqual <string>(winNumber.LastTwo(), data.LastTwo); Assert.ThrowsException <ArgumentOutOfRangeException>(() => { new SourceData(DateTime.Now, "-123456789", "-301"); }, "在线人数值只能为非 0 的正整数!"); #region 与业务逻辑关系不大,测试值传递和引用传递。 data = new SourceData(DateTime.Now, "123456789", "-301"); string f1 = data.FirstTwo; string l1 = data.LastTwo; string c1 = data.OnlineChange; SourceData data1 = (SourceData)data.Clone(); Assert.IsFalse(object.ReferenceEquals(data, data1)); string f2 = data1.FirstTwo; string l2 = data1.LastTwo; string c2 = data1.OnlineChange; Assert.IsFalse(object.ReferenceEquals(data.FirstTwo, data1.FirstTwo)); //为 false,因为 LastTwo 和 FirstTwo 属性都是通过 SourceData 对象的 OnlineNmuber 来重新计算并创建的。 Assert.IsFalse(object.ReferenceEquals(data.LastTwo, data1.LastTwo)); //为 false,因为 LastTwo 和 FirstTwo 属性都是通过 SourceData 对象的 OnlineNmuber 来重新计算并创建的。 Assert.IsTrue(object.ReferenceEquals(data.OnlineChange, data1.OnlineChange)); //比较不解,为什么结果是 True?而上面同样是 string 类型的属性却为 False。 Assert.IsTrue(object.ReferenceEquals(data.OnlineNumber, data1.OnlineNumber)); //估计结果和 OnlineChange 属性类似。 Assert.IsFalse(object.ReferenceEquals(data.OnlineTime, data1.OnlineTime)); //估计是因为 DateTime 是值类型,赋值的是拷贝,所以两个不是同一个引用? Assert.IsFalse(object.ReferenceEquals(data.WinningNumber, data1.WinningNumber)); #endregion }
private bool IsStateSdEqualsFileSd() { return (_sourceDataFromFile != null && _electionManager.SourceData != null && _sourceDataFromFile.Equals(_electionManager.SourceData)); }
public bool Equals(DestinyInventoryItemDefinition input) { if (input == null) { return(false); } return (( DisplayProperties == input.DisplayProperties || (DisplayProperties != null && DisplayProperties.Equals(input.DisplayProperties)) ) && ( TooltipNotifications == input.TooltipNotifications || (TooltipNotifications != null && TooltipNotifications.SequenceEqual(input.TooltipNotifications)) ) && ( CollectibleHash == input.CollectibleHash || (CollectibleHash.Equals(input.CollectibleHash)) ) && ( IconWatermark == input.IconWatermark || (IconWatermark != null && IconWatermark.Equals(input.IconWatermark)) ) && ( IconWatermarkShelved == input.IconWatermarkShelved || (IconWatermarkShelved != null && IconWatermarkShelved.Equals(input.IconWatermarkShelved)) ) && ( SecondaryIcon == input.SecondaryIcon || (SecondaryIcon != null && SecondaryIcon.Equals(input.SecondaryIcon)) ) && ( SecondaryOverlay == input.SecondaryOverlay || (SecondaryOverlay != null && SecondaryOverlay.Equals(input.SecondaryOverlay)) ) && ( SecondarySpecial == input.SecondarySpecial || (SecondarySpecial != null && SecondarySpecial.Equals(input.SecondarySpecial)) ) && ( BackgroundColor == input.BackgroundColor || (BackgroundColor != null && BackgroundColor.Equals(input.BackgroundColor)) ) && ( Screenshot == input.Screenshot || (Screenshot != null && Screenshot.Equals(input.Screenshot)) ) && ( ItemTypeDisplayName == input.ItemTypeDisplayName || (ItemTypeDisplayName != null && ItemTypeDisplayName.Equals(input.ItemTypeDisplayName)) ) && ( FlavorText == input.FlavorText || (FlavorText != null && FlavorText.Equals(input.FlavorText)) ) && ( UiItemDisplayStyle == input.UiItemDisplayStyle || (UiItemDisplayStyle != null && UiItemDisplayStyle.Equals(input.UiItemDisplayStyle)) ) && ( ItemTypeAndTierDisplayName == input.ItemTypeAndTierDisplayName || (ItemTypeAndTierDisplayName != null && ItemTypeAndTierDisplayName.Equals(input.ItemTypeAndTierDisplayName)) ) && ( DisplaySource == input.DisplaySource || (DisplaySource != null && DisplaySource.Equals(input.DisplaySource)) ) && ( TooltipStyle == input.TooltipStyle || (TooltipStyle != null && TooltipStyle.Equals(input.TooltipStyle)) ) && ( Action == input.Action || (Action != null && Action.Equals(input.Action)) ) && ( Inventory == input.Inventory || (Inventory != null && Inventory.Equals(input.Inventory)) ) && ( SetData == input.SetData || (SetData != null && SetData.Equals(input.SetData)) ) && ( Stats == input.Stats || (Stats != null && Stats.Equals(input.Stats)) ) && ( EmblemObjectiveHash == input.EmblemObjectiveHash || (EmblemObjectiveHash.Equals(input.EmblemObjectiveHash)) ) && ( EquippingBlock == input.EquippingBlock || (EquippingBlock != null && EquippingBlock.Equals(input.EquippingBlock)) ) && ( TranslationBlock == input.TranslationBlock || (TranslationBlock != null && TranslationBlock.Equals(input.TranslationBlock)) ) && ( Preview == input.Preview || (Preview != null && Preview.Equals(input.Preview)) ) && ( Quality == input.Quality || (Quality != null && Quality.Equals(input.Quality)) ) && ( Value == input.Value || (Value != null && Value.Equals(input.Value)) ) && ( SourceData == input.SourceData || (SourceData != null && SourceData.Equals(input.SourceData)) ) && ( Objectives == input.Objectives || (Objectives != null && Objectives.Equals(input.Objectives)) ) && ( Metrics == input.Metrics || (Metrics != null && Metrics.Equals(input.Metrics)) ) && ( Plug == input.Plug || (Plug != null && Plug.Equals(input.Plug)) ) && ( Gearset == input.Gearset || (Gearset != null && Gearset.Equals(input.Gearset)) ) && ( Sack == input.Sack || (Sack != null && Sack.Equals(input.Sack)) ) && ( Sockets == input.Sockets || (Sockets != null && Sockets.Equals(input.Sockets)) ) && ( Summary == input.Summary || (Summary != null && Summary.Equals(input.Summary)) ) && ( TalentGrid == input.TalentGrid || (TalentGrid != null && TalentGrid.Equals(input.TalentGrid)) ) && ( InvestmentStats == input.InvestmentStats || (InvestmentStats != null && InvestmentStats.SequenceEqual(input.InvestmentStats)) ) && ( Perks == input.Perks || (Perks != null && Perks.SequenceEqual(input.Perks)) ) && ( LoreHash == input.LoreHash || (LoreHash.Equals(input.LoreHash)) ) && ( SummaryItemHash == input.SummaryItemHash || (SummaryItemHash.Equals(input.SummaryItemHash)) ) && ( Animations == input.Animations || (Animations != null && Animations.SequenceEqual(input.Animations)) ) && ( AllowActions == input.AllowActions || (AllowActions != null && AllowActions.Equals(input.AllowActions)) ) && ( Links == input.Links || (Links != null && Links.SequenceEqual(input.Links)) ) && ( DoesPostmasterPullHaveSideEffects == input.DoesPostmasterPullHaveSideEffects || (DoesPostmasterPullHaveSideEffects != null && DoesPostmasterPullHaveSideEffects.Equals(input.DoesPostmasterPullHaveSideEffects)) ) && ( NonTransferrable == input.NonTransferrable || (NonTransferrable != null && NonTransferrable.Equals(input.NonTransferrable)) ) && ( ItemCategoryHashes == input.ItemCategoryHashes || (ItemCategoryHashes != null && ItemCategoryHashes.SequenceEqual(input.ItemCategoryHashes)) ) && ( SpecialItemType == input.SpecialItemType || (SpecialItemType != null && SpecialItemType.Equals(input.SpecialItemType)) ) && ( ItemType == input.ItemType || (ItemType != null && ItemType.Equals(input.ItemType)) ) && ( ItemSubType == input.ItemSubType || (ItemSubType != null && ItemSubType.Equals(input.ItemSubType)) ) && ( ClassType == input.ClassType || (ClassType != null && ClassType.Equals(input.ClassType)) ) && ( BreakerType == input.BreakerType || (BreakerType != null && BreakerType.Equals(input.BreakerType)) ) && ( BreakerTypeHash == input.BreakerTypeHash || (BreakerTypeHash.Equals(input.BreakerTypeHash)) ) && ( Equippable == input.Equippable || (Equippable != null && Equippable.Equals(input.Equippable)) ) && ( DamageTypeHashes == input.DamageTypeHashes || (DamageTypeHashes != null && DamageTypeHashes.SequenceEqual(input.DamageTypeHashes)) ) && ( DamageTypes == input.DamageTypes || (DamageTypes != null && DamageTypes.SequenceEqual(input.DamageTypes)) ) && ( DefaultDamageType == input.DefaultDamageType || (DefaultDamageType != null && DefaultDamageType.Equals(input.DefaultDamageType)) ) && ( DefaultDamageTypeHash == input.DefaultDamageTypeHash || (DefaultDamageTypeHash.Equals(input.DefaultDamageTypeHash)) ) && ( SeasonHash == input.SeasonHash || (SeasonHash.Equals(input.SeasonHash)) ) && ( IsWrapper == input.IsWrapper || (IsWrapper != null && IsWrapper.Equals(input.IsWrapper)) ) && ( TraitIds == input.TraitIds || (TraitIds != null && TraitIds.SequenceEqual(input.TraitIds)) ) && ( TraitHashes == input.TraitHashes || (TraitHashes != null && TraitHashes.SequenceEqual(input.TraitHashes)) ) && ( Hash == input.Hash || (Hash.Equals(input.Hash)) ) && ( Index == input.Index || (Index.Equals(input.Index)) ) && ( Redacted == input.Redacted || (Redacted != null && Redacted.Equals(input.Redacted)) )); }