public void MethodCall_ObservableTarget_NoUpdateWhenDetached() { var update = false; var dummy = new ObservableDummy <int>() { Item = 23 }; var test = new NotifyValue <string>(() => dummy.Item.ToString()); test.ValueChanged += (o, e) => update = true; Assert.AreEqual("23", test.Value); Assert.IsFalse(update); test.Detach(); dummy.Item = 42; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual("42", test.Value); update = false; dummy.Item = 0; Assert.IsTrue(update); }
public void MethodCall_ObservableTarget_Update() { var update = false; var dummy = new ObservableDummy <int>() { Item = 23 }; var test = new NotifyValue <string>(() => dummy.Item.ToString()); test.ValueChanged += (o, e) => { update = true; Assert.AreEqual("23", e.OldValue); Assert.AreEqual("42", e.NewValue); }; Assert.AreEqual("23", test.Value); Assert.IsFalse(update); dummy.Item = 42; Assert.IsTrue(update); Assert.AreEqual("42", test.Value); }
public void ArrayCreation_Observable_NoUpdatesWhenDetached() { var update = false; var dummy = new ObservableDummy <int>() { Item = 23 }; var test = new NotifyValue <int[]>(() => new int[dummy.Item]); test.ValueChanged += (o, e) => update = true; Assert.AreEqual(23, (test.Value as int[]).Length); Assert.IsFalse(update); test.Detach(); dummy.Item = 42; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual(42, test.Value.Length); update = false; dummy.Item = 2; Assert.IsTrue(update); }
public void MethodCall_ObservableArgument_NoUpdatesWhenDetached() { var update = false; var dummy = new ObservableDummy <string>() { Item = "23" }; var test = new NotifyValue <int>(() => int.Parse(dummy.Item)); test.ValueChanged += (o, e) => update = true; Assert.AreEqual(23, test.Value); Assert.IsFalse(update); test.Detach(); dummy.Item = "42"; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual(42, test.Value); update = false; dummy.Item = "0"; Assert.IsTrue(update); }
public SearchOfferViewModel() { DisplayName = "Поиск в прайс-листах"; NeedToCalculateDiff = true; NavigateOnShowCatalog = true; HideJunk = new NotifyValue <bool>(); OnlyBase = new NotifyValue <bool>(); if (Session != null) { Prices = Session.Query <Price>() .OrderBy(p => p.Name) .Select(p => new Selectable <Price>(p)) .ToList(); } else { Prices = new List <Selectable <Price> >(); } Settings.Subscribe(_ => { Offers.Value = SortOffers(Offers.Value); }); SearchBehavior = new SearchBehavior(this); IsLoading = new NotifyValue <bool>(); Persist(HideJunk, "HideJunk"); }
private CatalogOfferViewModel(OfferComposedId initOfferId = null) : base(initOfferId) { InitFields(); NeedToCalculateDiff = true; DisplayName = "Сводный прайс-лист"; Filters = new[] { "Все", "Основные", "Неосновные" }; CurrentFilter.Value = Filters[0]; CurrentRegion.Value = Consts.AllRegionLabel; GroupByProduct.Value = Settings.Value.GroupByProduct; GroupByProduct.Subscribe(_ => Offers.Value = Sort(Offers.Value)); RetailMarkup = new NotifyValue <decimal>(true, () => MarkupConfig.Calculate(Settings.Value.Markups, CurrentOffer.Value, User, Address), Settings); RetailCost = CurrentOffer.CombineLatest(RetailMarkup, Rounding, (o, m, r) => Round(NullableHelper.Round(o?.ResultCost * (1 + m / 100), 2), r)) .ToValue(); CurrentOffer.Subscribe(_ => RetailMarkup.Recalculate()); Persist(HideJunk, "HideJunk"); Persist(GroupByProduct, "GroupByProduct"); SessionValue(CurrentRegion, "CurrentRegion"); SessionValue(CurrentFilter, "CurrentFilter"); PrintMenuItems = new ObservableCollection <MenuItem>(); IsView = true; }
public ProducerPromotionPopup(Config.Config config, IObservable <CatalogName> catalog, Env env) { Name = new NotifyValue <CatalogName>(catalog); Visible = new NotifyValue <bool>(); ProducerPromotions = new NotifyValue <List <ProducerPromotion> >(new List <ProducerPromotion>()); catalog .Throttle(Consts.ScrollLoadTimeout, env.Scheduler) .SelectMany(x => env.RxQuery(s => { if (x == null) { return(new List <ProducerPromotion>()); } var nameId = x.Id; var query = s.Query <ProducerPromotion>().Where(p => p.Catalogs.Any(c => c.Name.Id == nameId)); return(query .OrderBy(p => p.Name) .Fetch(p => p.Producer) .ToList()); })) .Subscribe(x => { ProducerPromotions.Value = x; ProducerPromotions.Value?.Each(p => p.Init(config)); Visible.Value = ProducerPromotions.Value?.Count > 0; }); }
public void New_Observable_NoUpdatesWhenDetached() { var update = false; var dummy = new ObservableDummy <int>() { Item = 23 }; var test = new NotifyValue <Dummy <int> >(() => new Dummy <int>(dummy.Item)); test.ValueChanged += (o, e) => update = true; Assert.AreEqual(23, (test.Value as Dummy <int>).Item); Assert.IsFalse(update); test.Detach(); dummy.Item = 42; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual(42, test.Value.Item); update = false; dummy.Item = 1; Assert.IsTrue(update); }
public void ArrayLongIndexer2d_ObservableIndex_NoUpdatesWhenDetached() { var update = false; var coll = new string[, ] { { "23", "42" } }; var dummy = new ObservableDummy <long>(); var test = new NotifyValue <string>(() => coll[0, dummy.Item]); test.ValueChanged += (o, e) => update = true; Assert.AreEqual("23", test.Value); Assert.IsFalse(update); test.Detach(); dummy.Item = 1; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual("42", test.Value); update = false; dummy.Item = 0; Assert.IsTrue(update); }
public void UnaryMinusChecked_Float_Observable_Updates() { checked { var update = false; var dummy = new ObservableDummy <float>() { Item = 23 }; var test = new NotifyValue <float>(() => - dummy.Item); test.ValueChanged += (o, e) => { update = true; Assert.AreEqual(-23, (float)e.OldValue); Assert.AreEqual(42, (float)e.NewValue); }; Assert.AreEqual(-23, test.Value); Assert.IsFalse(update); dummy.Item = -42; Assert.IsTrue(update); Assert.AreEqual(42, test.Value); } }
public PriceOfferViewModel(PriceComposedId priceId, bool showLeaders, OfferComposedId initOfferId = null) : base(initOfferId) { //мы не можем принимать объект который принадлежит другой форме //это может вызвать исключение если сессия в которой был загружен объект будет закрыта //утечки памяти если текущая форма подпишется на события изменения в переданном объекте //между формами можно передавать только примитивные объекты this.priceId = priceId; DisplayName = "Заявка поставщику"; Price = new NotifyValue <Price>(); IsLoading = new NotifyValue <bool>(); Filters = filters; CurrentFilter = new NotifyValue <string>(filters[0]); if (showLeaders) { FilterLeader(); } //по идее это не нужно тк обо всем должен позаботится сборщик мусора //но если не удалить подписку будет утечка памяти OnCloseDisposable.Add(this.ObservableForProperty(m => m.Price.Value.Order) .Subscribe(_ => NotifyOfPropertyChange(nameof(CanDeleteOrder)))); SearchBehavior = new SearchBehavior(this); CurrentProducer.Cast <object>() .Merge(CurrentFilter.Cast <object>()) .Merge(SearchBehavior.ActiveSearchTerm.Cast <object>()) .Subscribe(_ => Filter()); PrintMenuItems = new ObservableCollection <MenuItem>(); IsView = true; }
public Mails() { DisplayName = "Минипочта"; Sort = new[] { "Сортировка: Дата", "Сортировка: Тема", "Сортировка: Отправитель", "Сортировка: Важность", }; Term = new NotifyValue <string>(); CurrentItem = new NotifyValue <Mail>(); SelectedItems = new ObservableCollection <Mail>(); CurrentSort = new NotifyValue <string>("Сортировка: Дата"); IsAsc = new NotifyValue <bool>(false); Items = Term.Cast <object>() .Throttle(TimeSpan.FromMilliseconds(100), Scheduler) .Merge(CurrentSort) .Merge(IsAsc.Select(v => (object)v)) .ObserveOn(UiScheduler) .ToValue(_ => Apply()); CanDelete = SelectedItems.Changed().ToValue(_ => SelectedItems.Count > 0); var updateStat = Items.ObservableForProperty(i => i.Value) .Select(l => l.Value.Changed()) .Switch(); OnCloseDisposable.Add(updateStat.Subscribe(_ => Shell.NewMailsCount.Value = mails.Count(m => m.IsNew))); }
public void Indexer_ObservableSource_NoUpdatesWhenDetached() { var update = false; var coll = new ObservableCollection <string>(); coll.Add("23"); var test = new NotifyValue <string>(() => coll[0]); test.ValueChanged += (o, e) => update = true; Assert.AreEqual("23", test.Value); Assert.IsFalse(update); test.Detach(); coll.Insert(0, "42"); Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual("42", test.Value); update = false; coll.Insert(0, "Foo"); Assert.IsTrue(update); }
public MatchedWaybills(BaseScreen screen, NotifyValue <SentOrderLine> line, NotifyValue <bool> isSentSelected) { CurrentWaybillLine = new NotifyValue <WaybillLine>(); WaybillLines = new NotifyValue <List <WaybillLine> >(); WaybillDetailsVisibility = new NotifyValue <Visibility>(() => { if (!isSentSelected) { return(Visibility.Collapsed); } if (WaybillLines.Value == null || WaybillLines.Value.Count == 0) { return(Visibility.Hidden); } return(Visibility.Visible); }, isSentSelected, WaybillLines); EmptyLabelVisibility = new NotifyValue <Visibility>(() => { if (!isSentSelected) { return(Visibility.Collapsed); } if (WaybillLines.Value != null && WaybillLines.Value.Count > 0) { return(Visibility.Hidden); } return(Visibility.Visible); }, isSentSelected, WaybillLines); line.Throttle(Consts.ScrollLoadTimeout, screen.UiScheduler) .SelectMany(v => screen.RxQuery(s => LoadMatchedWaybill(v, s))) .Subscribe(WaybillLines, screen.CloseCancellation.Token); }
public WaybillsViewModel() { DisplayName = "Документы"; InitFields(); SelectedWaybills = new List <Waybill>(); Waybills.PropertyChanged += Waybills_PropertyChanged; WaybillsTotal = new ObservableCollection <WaybillTotal>(); WaybillsTotal.Add(new WaybillTotal { TotalSum = 0.0m, TotalRetailSum = 0.0m }); Begin = new NotifyValue <DateTime>(DateTime.Today.AddMonths(-3).FirstDayOfMonth()); End = new NotifyValue <DateTime>(DateTime.Today); IsFilterByDocumentDate = new NotifyValue <bool>(true); CanDelete = CurrentWaybill.Select(v => v != null && v.Status != Models.Inventory.DocStatus.Posted).ToValue(); AddressSelector = new AddressSelector(this) { Description = "Все адреса" }; Persist(IsFilterByDocumentDate, "IsFilterByDocumentDate"); Persist(IsFilterByWriteTime, "IsFilterByWriteTime"); PrintMenuItems = new ObservableCollection <MenuItem>(); IsView = true; }
public void UnaryPlusChecked_Long_Observable_Updates() { checked { var update = false; var dummy = new ObservableDummy <long>() { Item = 23 }; var test = new NotifyValue <long>(() => + dummy.Item); test.ValueChanged += (o, e) => { update = true; Assert.AreEqual(23, (long)e.OldValue); Assert.AreEqual(42, (long)e.NewValue); }; Assert.AreEqual(23, test.Value); Assert.IsFalse(update); dummy.Item = 42; Assert.IsTrue(update); Assert.AreEqual(42, test.Value); } }
public void UnaryPlus_Decimal_Observable_Updates() { var update = false; var dummy = new ObservableDummy <decimal>() { Item = 23 }; var test = new NotifyValue <decimal>(() => + dummy.Item); test.ValueChanged += (o, e) => { update = true; Assert.AreEqual(23, (decimal)e.OldValue); Assert.AreEqual(42, (decimal)e.NewValue); }; Assert.AreEqual(23, test.Value); Assert.IsFalse(update); dummy.Item = 42; Assert.IsTrue(update); Assert.AreEqual(42, test.Value); }
public void Negate_Bool_Observable_Updates() { var update = false; var dummy = new ObservableDummy <bool>() { Item = true }; var test = new NotifyValue <bool>(() => !dummy.Item); test.ValueChanged += (o, e) => { update = true; Assert.IsFalse((bool)e.OldValue); Assert.IsTrue((bool)e.NewValue); }; Assert.IsFalse(test.Value); Assert.IsFalse(update); dummy.Item = false; Assert.IsTrue(update); Assert.IsTrue(test.Value); }
public MainForm() { InitializeComponent(); _programNameVersion = $"{Application.ProductName} {Application.ProductVersion}"; _stopwatchFrequency = Stopwatch.Frequency; _config = PluginfunConfig.Load(); _emulatedSystem = new EmulatedSystem(); _emulationInitialised = new NotifyValue <bool>(false); _emulationPaused = new NotifyValue <bool>(false); LoadDynamicComponents(); PrepareUserInterface(); PrepareDataBindings(); InitBitmaps(); Application.Idle += (s, ev) => { while (_emulationInitialised && !_emulationPaused && ApplicationStillIdle) { RunFrame(); } }; }
public void MemberExpression_ObservableSourceTargetChanges_Update() { var update = false; var dummy = new ObservableDummy <Dummy <int> >() { Item = new Dummy <int>(23) }; var test = new NotifyValue <int>(() => dummy.Item.Item); test.ValueChanged += (o, e) => { update = true; Assert.AreEqual(23, e.OldValue); Assert.AreEqual(42, e.NewValue); }; Assert.AreEqual(23, test.Value); Assert.IsFalse(update); dummy.Item = new Dummy <int>(42); Assert.IsTrue(update); Assert.AreEqual(42, test.Value); }
public void MethodCall_ObservableArgument_Update() { var update = false; var dummy = new ObservableDummy <string>() { Item = "23" }; var test = new NotifyValue <int>(() => int.Parse(dummy.Item)); test.ValueChanged += (o, e) => { update = true; Assert.AreEqual(23, e.OldValue); Assert.AreEqual(42, e.NewValue); }; Assert.AreEqual(23, test.Value); Assert.IsFalse(update); dummy.Item = "42"; Assert.IsTrue(update); Assert.AreEqual(42, test.Value); }
public void ArrayLongIndexer2d_ObservableIndex_Updates() { var update = false; var coll = new string[, ] { { "23", "42" } }; var dummy = new ObservableDummy <long>(); var test = new NotifyValue <string>(() => coll[0L, dummy.Item]); test.ValueChanged += (o, e) => { update = true; Assert.AreEqual("23", e.OldValue); Assert.AreEqual("42", e.NewValue); }; Assert.AreEqual("23", test.Value); Assert.IsFalse(update); dummy.Item = 1; Assert.IsTrue(update); Assert.AreEqual("42", test.Value); }
public void Cast_String_Observable_NoUpdatesWhenDetached() { var update = false; var dummy = new ObservableDummy <object>() { Item = "23" }; var test = new NotifyValue <string>(() => (string)dummy.Item); test.ValueChanged += (o, e) => update = true; Assert.AreEqual("23", test.Value); Assert.IsFalse(update); test.Detach(); dummy.Item = "42"; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual("42", test.Value); update = false; dummy.Item = "1"; Assert.IsTrue(update); }
public void Indexer_ObservableIndex_Updates() { var update = false; var coll = new List <string>(); coll.Add("23"); coll.Add("42"); var dummy = new ObservableDummy <int>(); var test = new NotifyValue <string>(() => coll[dummy.Item]); test.ValueChanged += (o, e) => { update = true; Assert.AreEqual("23", e.OldValue); Assert.AreEqual("42", e.NewValue); }; Assert.AreEqual("23", test.Value); Assert.IsFalse(update); dummy.Item = 1; Assert.IsTrue(update); Assert.AreEqual("42", test.Value); }
public void Indexer_ObservableIndex_NoUpdatesWhenDetached() { var update = false; var coll = new List <string>(); coll.Add("23"); coll.Add("42"); var dummy = new ObservableDummy <int>(); var test = new NotifyValue <string>(() => coll[dummy.Item]); test.ValueChanged += (o, e) => update = true; Assert.AreEqual("23", test.Value); Assert.IsFalse(update); test.Detach(); dummy.Item = 1; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual("42", test.Value); update = false; dummy.Item = 0; Assert.IsTrue(update); }
protected override void OnInitialize() { base.OnInitialize(); ProductInfo = new ProductInfo(this, CurrentLine.OfType <BaseOffer>()); OrderWarning = new InlineEditWarning(UiScheduler, Manager); //если это отправленный заказ редактор не должен работать var currentOrderLine = new NotifyValue <OrderLine>(); if (IsCurrentOrder) { currentOrderLine = CurrentLine.Select(v => (OrderLine)v).ToValue(); currentOrderLine.Subscribe(v => CurrentLine.Value = v); } editor = new Editor(OrderWarning, Manager, currentOrderLine, Lines.Cast <IList>().ToValue()); OnlyWarningVisible = new NotifyValue <bool>(User.IsPreprocessOrders && IsCurrentOrder); CurrentLine.OfType <BaseOffer>() .Throttle(Consts.LoadOrderHistoryTimeout, Scheduler) .Select(x => RxQuery(s => BaseOfferViewModel.LoadOrderHistory(s, Cache, Settings.Value, x, Address))) .Switch() .Subscribe(HistoryOrders, CloseCancellation.Token); FilterItems.Select(p => p.Changed()).Merge().Throttle(Consts.FilterUpdateTimeout, UiScheduler) .Select(_ => Filter()) .Subscribe(Lines, CloseCancellation.Token); }
public void Cast_String_Observable_Update() { var update = false; var dummy = new ObservableDummy <object>() { Item = "23" }; var test = new NotifyValue <string>(() => (string)dummy.Item); test.ValueChanged += (o, e) => { update = true; Assert.AreEqual("23", e.OldValue); Assert.AreEqual("42", e.NewValue); }; Assert.AreEqual("23", test.Value); Assert.IsFalse(update); dummy.Item = "42"; Assert.IsTrue(update); Assert.AreEqual("42", test.Value); }
public void ArrayCreation_Observable_NoUpdatesWhenDetached() { var update = false; var dummy = new ObservableDummy<int>() { Item = 23 }; var test = new NotifyValue<int[]>(() => new int[dummy.Item]); test.ValueChanged += (o, e) => update = true; Assert.AreEqual(23, (test.Value as int[]).Length); Assert.IsFalse(update); test.Detach(); dummy.Item = 42; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual(42, test.Value.Length); update = false; dummy.Item = 2; Assert.IsTrue(update); }
public void New_Observable_NoUpdatesWhenDetached() { var update = false; var dummy = new ObservableDummy<int>() { Item = 23 }; var test = new NotifyValue<Dummy<int>>(() => new Dummy<int>(dummy.Item)); test.ValueChanged += (o, e) => update = true; Assert.AreEqual(23, (test.Value as Dummy<int>).Item); Assert.IsFalse(update); test.Detach(); dummy.Item = 42; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual(42, test.Value.Item); update = false; dummy.Item = 1; Assert.IsTrue(update); }
public void Cast_String_Observable_NoUpdatesWhenDetached() { var update = false; var dummy = new ObservableDummy<object>() { Item = "23" }; var test = new NotifyValue<string>(() => (string)dummy.Item); test.ValueChanged += (o, e) => update = true; Assert.AreEqual("23", test.Value); Assert.IsFalse(update); test.Detach(); dummy.Item = "42"; Assert.IsFalse(update); test.Attach(); Assert.IsTrue(update); Assert.AreEqual("42", test.Value); update = false; dummy.Item = "1"; Assert.IsTrue(update); }
public void Cast_Int_Observable_Update() { var update = false; var dummy = new ObservableDummy <object>() { Item = 23 }; var test = new NotifyValue <int>(() => (int)dummy.Item); test.ValueChanged += (o, e) => { update = true; Assert.AreEqual(23, e.OldValue); Assert.AreEqual(42, e.NewValue); }; Assert.AreEqual(23, test.Value); Assert.IsFalse(update); dummy.Item = 42; Assert.IsTrue(update); Assert.AreEqual(42, test.Value); }
public SelfClose(string request, string caption, int seconds) { Message = request; DisplayName = caption; countdown = caption + " будет произведено через {0} секунд"; this.seconds = seconds; CountDown = new NotifyValue <string>(); }
public OrderRejectDetails(uint id) { this.id = id; Doc = new NotifyValue <OrderReject>(); Lines = new NotifyValue <List <OrderRejectLine> >(); CurrentLine = new NotifyValue <OrderRejectLine>(); DisplayName = "Отказ"; }
public void MemberExpression_NoObservableSourceTargetChanges_NoUpdates() { var update = false; var dummy = new Dummy<Dummy<int>>() { Item = new Dummy<int>(23) }; var test = new NotifyValue<int>(() => dummy.Item.Item); test.ValueChanged += (o, e) => update = true; Assert.AreEqual(23, test.Value); Assert.IsFalse(update); dummy.Item = new Dummy<int>(42); Assert.IsFalse(update); }
public void ArrayInitialization_NoObservable_NoUpdates() { var update = false; var dummy = new Dummy<int>() { Item = 23 }; var test = new NotifyValue<int[]>(() => new int[] { dummy.Item }); test.ValueChanged += (o, e) => update = true; Assert.AreEqual(23, (test.Value as int[])[0]); Assert.IsFalse(update); dummy.Item = 42; Assert.IsFalse(update); }
public void New_NoObservable_NoUpdates() { var update = false; var dummy = new Dummy<int>() { Item = 23 }; var test = new NotifyValue<Dummy<int>>(() => new Dummy<int>(dummy.Item)); test.ValueChanged += (o, e) => update = true; Assert.AreEqual(23, (test.Value as Dummy<int>).Item); Assert.IsFalse(update); dummy.Item = 42; Assert.IsFalse(update); }
public void ArrayCreation_Observable_Updates() { var update = false; var dummy = new ObservableDummy<int>() { Item = 23 }; var test = new NotifyValue<int[]>(() => new int[dummy.Item]); test.ValueChanged += (o, e) => { update = true; Assert.AreEqual(23, (e.OldValue as int[]).Length); Assert.AreEqual(42, (e.NewValue as int[]).Length); }; Assert.AreEqual(23, (test.Value as int[]).Length); Assert.IsFalse(update); dummy.Item = 42; Assert.IsTrue(update); }
public void Cast_String_Observable_Update() { var update = false; var dummy = new ObservableDummy<object>() { Item = "23" }; var test = new NotifyValue<string>(() => (string)dummy.Item); test.ValueChanged += (o, e) => { update = true; Assert.AreEqual("23", e.OldValue); Assert.AreEqual("42", e.NewValue); }; Assert.AreEqual("23", test.Value); Assert.IsFalse(update); dummy.Item = "42"; Assert.IsTrue(update); Assert.AreEqual("42", test.Value); }
public void MemberExpression_ObservableSourceMemberChanges_Update() { var update = false; var dummy = new ObservableDummy<int>() { Item = 23 }; var test = new NotifyValue<int>(() => dummy.Item); test.ValueChanged += (o, e) => { update = true; Assert.AreEqual(23, e.OldValue); Assert.AreEqual(42, e.NewValue); }; Assert.AreEqual(23, test.Value); Assert.IsFalse(update); dummy.Item = 42; Assert.IsTrue(update); Assert.AreEqual(42, test.Value); }
public void Negate_Bool_NoObservable_NoUpdates() { var update = false; var dummy = new Dummy<bool>() { Item = true }; var test = new NotifyValue<bool>(() => !dummy.Item); test.ValueChanged += (o, e) => update = true; Assert.IsFalse(test.Value); Assert.IsFalse(update); dummy.Item = false; Assert.IsFalse(update); }
public void UnaryMinusChecked_Double_Observable_Updates() { checked { var update = false; var dummy = new ObservableDummy<double>() { Item = 23 }; var test = new NotifyValue<double>(() => -dummy.Item); test.ValueChanged += (o, e) => { update = true; Assert.AreEqual(-23, (double)e.OldValue); Assert.AreEqual(42, (double)e.NewValue); }; Assert.AreEqual(-23, test.Value); Assert.IsFalse(update); dummy.Item = -42; Assert.IsTrue(update); Assert.AreEqual(42, test.Value); } }
public void UnaryPlus_Float_NoObservable_NoUpdates() { var update = false; var dummy = new Dummy<float>() { Item = 23 }; var test = new NotifyValue<float>(() => dummy.Item); test.ValueChanged += (o, e) => update = true; Assert.AreEqual(23, test.Value); Assert.IsFalse(update); dummy.Item = 42; Assert.IsFalse(update); }
public void UnaryPlus_Float_Observable_Updates() { var update = false; var dummy = new ObservableDummy<float>() { Item = 23 }; var test = new NotifyValue<float>(() => +dummy.Item); test.ValueChanged += (o, e) => { update = true; Assert.AreEqual(23, (float)e.OldValue); Assert.AreEqual(42, (float)e.NewValue); }; Assert.AreEqual(23, test.Value); Assert.IsFalse(update); dummy.Item = 42; Assert.IsTrue(update); Assert.AreEqual(42, test.Value); }
public void Cast_Int_NoObservable_NoUpdates() { var update = false; var dummy = new Dummy<object>() { Item = 23 }; var test = new NotifyValue<int>(() => (int)dummy.Item); test.ValueChanged += (o, e) => update = true; Assert.AreEqual(23, test.Value); Assert.IsFalse(update); dummy.Item = 42; Assert.IsFalse(update); }
public void UnaryPlusChecked_Decimal_NoObservable_NoUpdates() { checked { var update = false; var dummy = new Dummy<decimal>() { Item = 23 }; var test = new NotifyValue<decimal>(() => +dummy.Item); test.ValueChanged += (o, e) => update = true; Assert.AreEqual(23, test.Value); Assert.IsFalse(update); dummy.Item = 42; Assert.IsFalse(update); } }
public void Cast_Int_Observable_Update() { var update = false; var dummy = new ObservableDummy<object>() { Item = 23 }; var test = new NotifyValue<int>(() => (int)dummy.Item); test.ValueChanged += (o, e) => { update = true; Assert.AreEqual(23, e.OldValue); Assert.AreEqual(42, e.NewValue); }; Assert.AreEqual(23, test.Value); Assert.IsFalse(update); dummy.Item = 42; Assert.IsTrue(update); Assert.AreEqual(42, test.Value); }
public void UnaryPlusChecked_Decimal_Observable_Updates() { checked { var update = false; var dummy = new ObservableDummy<decimal>() { Item = 23 }; var test = new NotifyValue<decimal>(() => +dummy.Item); test.ValueChanged += (o, e) => { update = true; Assert.AreEqual(23, (decimal)e.OldValue); Assert.AreEqual(42, (decimal)e.NewValue); }; Assert.AreEqual(23, test.Value); Assert.IsFalse(update); dummy.Item = 42; Assert.IsTrue(update); Assert.AreEqual(42, test.Value); } }
public void Negate_Bool_Observable_Updates() { var update = false; var dummy = new ObservableDummy<bool>() { Item = true }; var test = new NotifyValue<bool>(() => !dummy.Item); test.ValueChanged += (o, e) => { update = true; Assert.IsFalse((bool)e.OldValue); Assert.IsTrue((bool)e.NewValue); }; Assert.IsFalse(test.Value); Assert.IsFalse(update); dummy.Item = false; Assert.IsTrue(update); Assert.IsTrue(test.Value); }
public void UnaryMinusChecked_Long_NoObservable_NoUpdates() { checked { var update = false; var dummy = new Dummy<long>() { Item = 23 }; var test = new NotifyValue<long>(() => -dummy.Item); test.ValueChanged += (o, e) => update = true; Assert.AreEqual(-23, test.Value); Assert.IsFalse(update); dummy.Item = -42; Assert.IsFalse(update); } }