Esempio n. 1
0
        public void Ctor()
        {
            // arrange
            Mock.SetupStatic(typeof(Ioc));

            // act
            var handler = new DocHandler();

            // assert
            var privateAccessor = new PrivateAccessor(handler);
            Assert.IsNull(privateAccessor.GetField("_fileProcessorUri"));
            Assert.IsNull(privateAccessor.GetField("_tempDocumentUnc"));

            // arrange
            Mock.Arrange(() => SystemOptionsInfo.GetSystemOptionsInfo()).Returns(new SystemOptionsInfo
                {
                    FileProcessorURI = "http://*****:*****@"D:\Projects\Cebos\release-2.2\Cebos.Veyron.Web\FileStorage"
                });

            // act
            handler = new DocHandler();

            // assert
            privateAccessor = new PrivateAccessor(handler);
            Assert.AreEqual("http://*****:*****@"D:\Projects\Cebos\release-2.2\Cebos.Veyron.Web\FileStorage", privateAccessor.GetField("_tempDocumentUnc"));
        }
Esempio n. 2
0
        public void WhenCalledConvert_CreatesNewViewOrReturnsCachedOneIfAny()
        {
            var converter = new EditorSelector();
            var privateAccessor = new PrivateAccessor(converter);

            EditorSelector.ResetComposedConverter();

            var view = new UserControl();
            const string fieldType = "testFieldType";

            converter.EditorFactories = new[]
                                            {
                                                new ExportFactory<UserControl, IExportAsControlForTypeMetadata>(
                                                    () => new Tuple<UserControl, Action>(view, () => { }),
                                                    new ExportAsControlForTypeAttribute(fieldType))
                                            };

            var fieldItemMock = Mock.Create<IFieldItem>(Behavior.CallOriginal);

            Mock.Arrange(() => fieldItemMock.FieldType).Returns(fieldType);
            Mock.Arrange(() => fieldItemMock.CanEdit).Returns(true);
            Mock.Arrange(() => fieldItemMock.CanView()).Returns(true);
            Mock.Arrange(() => fieldItemMock.IsInformationOnly).Returns(false);

            var returnedView = (UserControl)converter.Convert(fieldItemMock, new TypeDelegator(typeof (object)), new object(), null);

            Assert.AreEqual(view.GetType(), returnedView.GetType());
            Assert.AreSame(fieldItemMock, returnedView.DataContext);
            Assert.IsTrue(returnedView.IsEnabled);

            //check that view was cached in RegisteredViews table
            UserControl cachedView;
            var registeredViews = privateAccessor.GetField("RegisteredViews") as ConditionalWeakTable<IFieldItem, UserControl>;
            Assert.IsNotNull(registeredViews);
            Assert.IsTrue(registeredViews.TryGetValue(fieldItemMock, out cachedView));

            //remove cached view to ensure that converter will create a new one
            registeredViews.Remove(fieldItemMock);

            Mock.Arrange(() => fieldItemMock.CanEdit).Returns(false);
            Mock.Arrange(() => fieldItemMock.CanView()).Returns(false);

            returnedView = (UserControl)converter.Convert(fieldItemMock, new TypeDelegator(typeof(object)), new object(), null);

            Assert.AreEqual(view.GetType(), returnedView.GetType());
            Assert.AreSame(fieldItemMock, returnedView.DataContext);
            Assert.IsFalse(returnedView.IsEnabled);

            //now converter should return the cached view
            Mock.Arrange(() => fieldItemMock.CanEdit).Returns(true);
            Mock.Arrange(() => fieldItemMock.CanView()).Returns(true);

            var returnedCachedView = (UserControl)converter.Convert(fieldItemMock, new TypeDelegator(typeof(object)), new object(), null);

            Assert.IsTrue(ReferenceEquals(returnedView, returnedCachedView));
            Assert.AreSame(fieldItemMock, returnedCachedView.DataContext);
            Assert.IsFalse(returnedCachedView.IsEnabled);
        }
        public void CheckPropertiesInitialValuesTest()
        {
            //Mock spreadsheet
            var spreadsheetMock = Mock.Create<SpreadsheetView>(Constructor.Mocked, Behavior.Loose);
            Mock.Arrange(() => spreadsheetMock.GetTopLevelSpreadsheet()).CallOriginal();

            //Call constructor
            var container = new SpreadsheetItemContainer(spreadsheetMock);
            var privateAccessor = new PrivateAccessor(container);

            //Assert fields
            Assert.IsNotNull(privateAccessor.GetField("_topLevelSpreadsheet"));
            Assert.AreEqual(privateAccessor.GetField("_topLevelSpreadsheet"), spreadsheetMock);
            Assert.IsNotNull(privateAccessor.GetField("_owner"));
            Assert.AreEqual(privateAccessor.GetField("_owner"), spreadsheetMock);
            Assert.IsNull(privateAccessor.GetField("_item"));
            Assert.IsFalse((bool)privateAccessor.GetField("_disposed"));

            //Assert properties
            Assert.IsFalse(container.IsOdd);
            Assert.IsFalse(container.IsDisposed);
            Assert.AreEqual(container.Owner, spreadsheetMock);
            Assert.AreEqual(container.TopLevelSpreadsheet, spreadsheetMock);
            Assert.IsNull(container.Item);
            Assert.IsNotNull(container.Cells);
            Assert.IsFalse(container.Cells.Any());
            Assert.IsFalse(container.IsAlternate);
            Assert.IsFalse(container.IsSelected);
        }
        public void ConstructorTest()
        {
            var stepEditMock = Mock.Create<GageRROptionsStepEdit>(Constructor.Mocked, Behavior.Loose);
            stepEditMock.SampleFilterDefinition = "FilterDefinition";            

            var vm = new GageRROptionsStepViewModel(stepEditMock, null, null);
            Assert.IsNotNull(vm.AvailableProcesses);
            Assert.IsNotNull(vm.SelectedProcessAvailableFields);
            Assert.IsNotNull(vm.AnswerProcessAvailableFields);
            Assert.AreEqual(vm.FilterDefinition, "FilterDefinition");

            var privateAccessor = new PrivateAccessor(vm);
            Assert.IsTrue((bool)privateAccessor.GetField("_isLoading"));
        }
        public void IsDropDownOpen_WhenSetToTrue_CreatesSelectorView()
        {
            //Arrange
            var crossRef = new FieldSingleCrossRef();

            //Act
            crossRef.IsDropDownOpen = true;

            //Assert
            var inst = new PrivateAccessor(crossRef);
            var d = inst.GetField("selectorView");

            Assert.IsNotNull(d);
        }
        public void InvokeConstructorTest()
        {
            //Mock spreadsheet
            var spreadsheetMock = Mock.Create<SpreadsheetView>(Constructor.Mocked, Behavior.Loose);
            Mock.Arrange(() => spreadsheetMock.GetTopLevelSpreadsheet()).CallOriginal();

            //Call constructor
            var container = new SpreadsheetItemContainer(spreadsheetMock);
            var privateAccessor = new PrivateAccessor(container);

            //Assert fields and properties
            Assert.AreEqual(privateAccessor.GetField("_owner"), spreadsheetMock);
            Assert.AreEqual(container.TopLevelSpreadsheet, spreadsheetMock);
            Assert.IsNotNull(container.Cells);
        }
Esempio n. 7
0
        public void InvokeConstructorTest()
        {
            var spreadsheet = Mock.Create<SpreadsheetView>(Behavior.CallOriginal);
            var privateAccessor = new PrivateAccessor(spreadsheet);

            //Check properties
            Assert.AreEqual(privateAccessor.GetProperty("DefaultStyleKey"), typeof(SpreadsheetView));
            Assert.IsNotNull(spreadsheet.Columns);
            Assert.IsTrue(spreadsheet.AllowDrop);
            Assert.IsNotNull(privateAccessor.GetField("_childSpreadsheets"));

            var expSpreadsheetView_LayoutUpdated = Mock.NonPublic.Arrange(spreadsheet, "SpreadsheetView_LayoutUpdated", ArgExpr.IsAny<object>(), ArgExpr.IsAny<EventArgs>());
            var expAutoSize = Mock.NonPublic.Arrange(spreadsheet, "AutoSize");

            //Check if AutoSize is called on LayoutUpdated
            Mock.Raise(() => spreadsheet.LayoutUpdated += null, EventArgs.Empty);
            expSpreadsheetView_LayoutUpdated.MustBeCalled();
            expAutoSize.MustBeCalled();

            //Check if _loaded is set to true on Loaded
            Assert.IsFalse((bool)privateAccessor.GetField("_loaded"));
            Mock.Raise(() => spreadsheet.Loaded += null, new RoutedEventArgs());
            Assert.IsTrue((bool)privateAccessor.GetField("_loaded"));
        }
        public void TestFieldDefaultValues()
        {
            var vm = new GageRRFieldViewModel();
            var privateAccessor = new PrivateAccessor(vm);

            Assert.IsNull(privateAccessor.GetField("_detailsViewModel"));
            Assert.IsNull(privateAccessor.GetField("_settingsPropertyName"));
            Assert.IsNull(privateAccessor.GetField("_sourceProcessName"));

            Assert.IsNull(privateAccessor.GetField("_msaResults"));
            Assert.IsNull(privateAccessor.GetField("_dataGroupingItem"));
            Assert.IsNull(privateAccessor.GetField("_showItemSelectorCommand"));
        }
        public void SupportedExtensions()
        {
            // arrange
            var command = Mock.Create<InsertImageToRichtextCommand>(Constructor.Mocked, Behavior.CallOriginal);
            var list = new List<string>
            {
                ".bmp",
                ".jpg",
                ".jpeg",
                ".png"
            };

            // act
            var privateAccessor = new PrivateAccessor(command);
            var result = privateAccessor.GetField("SupportedExtensions");

            // assert
            CollectionAssert.AreEqual(list, (ICollection)result);
        }
        public void TestCollectionQueue_QueueNameAndAssignment_NotEmpty()
        {
            Mock.Arrange(() => Application.Current.Dispatcher.InvokeAsync(null))
                .IgnoreArguments()
                .DoNothing();
            var viewModel = Mock.Create<EditQueueViewModel>(
                Behavior.CallOriginal,
                new CollectionsManagementViewModel());
            viewModel.SelectedQueue = FakeData.FakeQueueDetailModel();
            Mock.Arrange(() => viewModel.SelectedQueue.CollectionQueue).Returns(FakeData.FakeCollectionQueue());

            Mock.Arrange(() => viewModel.HasErrors).Returns(true);

            var inst = new PrivateAccessor(viewModel);
            inst.CallMethod("Validate");

            var vali = new PrivateAccessor(viewModel);
            var faile = vali.GetField("_Failures") as List<ValidationFailure>;

            Assert.IsNotNull(faile);
            Assert.AreEqual(2, faile.Count);
        }
Esempio n. 11
0
        public void OnItemsChangedItemReplaceTest()
        {
            var spreadsheet = new SpreadsheetView();
            var privateAccessor = new PrivateAccessor(spreadsheet);            

            //Create data
            var oldItem = ItemWrap.BuildNew(new TestData());
            var newItem = ItemWrap.BuildNew(new TestData());
            var oldContainer = new SpreadsheetItemContainer(spreadsheet);
            var newContainer = new SpreadsheetItemContainer(spreadsheet);

            //Prepare event arguments and container dictionary
            var args = new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Replace, newItem, oldItem, 0);
            var containerDict = privateAccessor.GetField("_containersDict") as Dictionary<IWrap, SpreadsheetItemContainer>;
            containerDict.Add(oldItem, oldContainer);

            //Arrange methods
            Mock.Arrange(() => spreadsheet.ItemContainerGenerator.ContainerFromItem(newItem)).Returns(newContainer);
            Mock.NonPublic.Arrange(spreadsheet, "BindContainerToItem", newContainer, newItem).CallOriginal();

            //Call OnItemsChanged and Assert results
            privateAccessor.CallMethod("OnItemsChanged", args);
            Assert.AreEqual(containerDict.Count, 1);
            Assert.AreEqual(containerDict.First().Key, newItem);
            Assert.AreEqual(containerDict[newItem], newContainer);
            Mock.NonPublic.Assert(spreadsheet, "BindContainerToItem", Occurs.Once(), newContainer, newItem);
            Assert.IsTrue(oldContainer.IsDisposed);
        }
Esempio n. 12
0
        public void OnItemsChangedItemRemoveTest()
        {
            var spreadsheet = new SpreadsheetView();
            var privateAccessor = new PrivateAccessor(spreadsheet);

            //Initialize ItemCollection
            Mock.NonPublic.Arrange(spreadsheet, "OnItemsChanged", ArgExpr.IsAny<NotifyCollectionChangedEventArgs>()).DoNothing();
            var list = new List<TestData>
            {
                new TestData {Text = "fff", FractionalNumber = 0},
                new TestData {Text = "item", FractionalNumber = 55},
                new TestData {Text = "last item", FractionalNumber = -5}
            };
            spreadsheet.ItemsSource = list;
            spreadsheet.OnApplyTemplate();
            Assert.IsNotNull(spreadsheet.ItemsCollection);
            Mock.Reset();

            var item1 = spreadsheet.ItemsCollection[0];
            var item2 = spreadsheet.ItemsCollection[1];
            var item3 = spreadsheet.ItemsCollection[2];

            //Bind item1 to container
            var container = new SpreadsheetItemContainer(spreadsheet);
            Mock.NonPublic.Arrange(container, "InitializeCellsWithValues");
            privateAccessor.CallMethod("BindContainerToItem", container, item1);
            privateAccessor.CallMethod("BindContainerToItem", container, item3);

            //Assert dictionary with containers
            var containerDict = privateAccessor.GetField("_containersDict") as Dictionary<IWrap, SpreadsheetItemContainer>;
            Assert.IsNotNull(containerDict);
            Assert.AreEqual(containerDict.Count, 2);
            containerDict.Add(item2, null);
            Assert.AreEqual(containerDict.Count, 3);

            //Remove second item from collection (when container is null)
            Mock.Arrange(() => containerDict.Remove(item2)).CallOriginal();
            spreadsheet.ItemsCollection.Remove(item2);
            Mock.Assert(() => containerDict.Remove(item2), Occurs.Once());
            Assert.AreEqual(containerDict.Count, 2);

            //Remove first item from collection (when container is disposed)
            Mock.Arrange(() => container.IsDisposed).Returns(true);
            spreadsheet.ItemsCollection.Remove(item1);            
            Mock.Assert(() => containerDict.Remove(item1), Occurs.Once());
            Assert.AreEqual(containerDict.Count, 1);

            //Remove item and dispose container            
            Mock.Arrange(() => container.IsDisposed).Returns(false);            
            spreadsheet.ItemsCollection.Remove(item3);
            Mock.Assert(() => containerDict.Remove(item3), Occurs.Exactly(2));
            Assert.AreEqual(containerDict.Count, 0);
            Mock.Reset();
            Assert.IsTrue(container.IsDisposed);
        }
Esempio n. 13
0
        public void OnItemsChangedItemAddTest()
        {
            var spreadsheet = new SpreadsheetView();
            var privateAccessor = new PrivateAccessor(spreadsheet);

            //Initialize ItemCollection
            Mock.NonPublic.Arrange(spreadsheet, "OnItemsChanged", ArgExpr.IsAny<NotifyCollectionChangedEventArgs>()).DoNothing();
            spreadsheet.ItemsSource = new List<TestData>();
            spreadsheet.OnApplyTemplate();
            Assert.IsNotNull(spreadsheet.ItemsCollection);
            Mock.Reset();

            //Create data item and its wrapper
            var dataItem = new TestData {Text = "test", FractionalNumber = 3.5};
            var itemWrap = ItemWrap.BuildNew(dataItem);

            //Arrabge ManageExpandStates and BindContainerToItem
            Mock.Arrange(() => spreadsheet.ManageExpandStates(Arg.IsAny<IDetailColumn>()));
            Mock.NonPublic.Arrange(spreadsheet, "BindContainerToItem", ArgExpr.IsAny<SpreadsheetItemContainer>(), ArgExpr.IsAny<IWrap>());

            //Make spreadsheet disposed
            privateAccessor.SetField("_disposed", true);
            spreadsheet.ItemsCollection.Add(itemWrap);

            //Check ManageExpandStates and BindContainerToItem invocations when spreadsheet is disposed
            Assert.IsTrue((bool)privateAccessor.GetField("_disposed"));
            Mock.NonPublic.Assert(spreadsheet, "BindContainerToItem", Occurs.Never(), ArgExpr.IsAny<SpreadsheetItemContainer>(), ArgExpr.IsAny<IWrap>());
            Mock.Assert(() => spreadsheet.ManageExpandStates(Arg.IsAny<IDetailColumn>()), Occurs.Never());

            //Mock ItemContainerGenerator.ContainerFromItem method and add new item to ItemsCollection
            //this invokes OnItemsChanged
            privateAccessor.SetField("_disposed", false);
            var container = new SpreadsheetItemContainer(spreadsheet);
            Mock.Arrange(() => spreadsheet.ItemContainerGenerator.ContainerFromItem(Arg.IsAny<object>())).Returns(container);
            Mock.Arrange(() => spreadsheet.ParentColumn).Returns(Mock.Create<IDetailColumn>());
            spreadsheet.ItemsCollection.Add(itemWrap);

            //Check ManageExpandStates and BindContainerToItem invocations when spreadsheet is not disposed
            Assert.IsFalse((bool)privateAccessor.GetField("_disposed"));
            Mock.NonPublic.Assert(spreadsheet, "BindContainerToItem", Occurs.Once(), container, itemWrap);
            Mock.Assert(() => spreadsheet.ManageExpandStates(Arg.IsAny<IDetailColumn>()), Occurs.Once());
        }
Esempio n. 14
0
        public void PrivateMessageFields()
        {
            // arrange
            var vm = new FieldFileViewModel();
            var privateAccessor = new PrivateAccessor(vm);

            // act
            var message2 = privateAccessor.GetField("_message2");
            var message3 = privateAccessor.GetField("_message3");
            var message4 = privateAccessor.GetField("_message4");
            var message5 = privateAccessor.GetField("_message5");
            var message6 = privateAccessor.GetField("_message6");
            var message8 = privateAccessor.GetField("_message8");
            var message13 = privateAccessor.GetField("_message13");

            // assert
            Assert.AreEqual(LanguageService.Translate("Msg_TemplateNotFound"), message2);
            Assert.AreEqual(LanguageService.Translate("Msg_SaveToSeeFileOptions"), message3);
            Assert.AreEqual(LanguageService.Translate("Msg_SystemPathsIsEmpty"), message4);
            Assert.AreEqual(LanguageService.Translate("Msg_InvalidSystemPath"), message5);
            Assert.AreEqual(LanguageService.Translate("Msg_DocumentProcessorNotResponding"), message6);
            Assert.AreEqual(LanguageService.Translate("Msg_FileUploadError"), message8);
            Assert.AreEqual(LanguageService.Translate("Msg_FileNotFound"), message13);
        }
Esempio n. 15
0
        public void UnselectMethodTest()
        {
            var spreadsheetMock = new SpreadsheetView();
            var privateAccessor = new PrivateAccessor(spreadsheetMock);

            //Load data            
            Mock.NonPublic.Arrange(typeof(CellBase), "SetEditorParams").IgnoreInstance().DoNothing();
            spreadsheetMock.ItemsSource = new List<TestData> { new TestData { Text = "text 1" }, new TestData { Text = "another text" } };
            spreadsheetMock.OnApplyTemplate();
            var item1 = spreadsheetMock.ItemsCollection[0];
            var item2 = spreadsheetMock.ItemsCollection[1];

            //Call ItemContainerGenerator overrides
            var container = privateAccessor.CallMethod("GetContainerForItemOverride") as SpreadsheetItemContainer;
            Assert.IsNotNull(container);
            spreadsheetMock.ItemContainerStyle = new Style(typeof(SpreadsheetItemContainer));
            privateAccessor.CallMethod("PrepareContainerForItemOverride", container, item1);
            privateAccessor.CallMethod("PrepareContainerForItemOverride", (SpreadsheetItemContainer)null, item2);

            //Unselect cells from local spreadsheet
            Mock.Arrange(() => spreadsheetMock.Unselect(Arg.IsAny<CellBase>(), Arg.IsAny<SpreadsheetView>()));
            Mock.Arrange(() => container.Unselect(Arg.IsAny<CellBase>())).IgnoreInstance().OccursOnce();
            var cell = Mock.Create<CellBase>(Constructor.Mocked, Behavior.Loose);
            spreadsheetMock.Unselect(cell);
            Mock.Assert(container);

            //Create child spreadsheets
            var childSpreadsheet1 = Mock.Create<SpreadsheetView>(Constructor.Mocked, Behavior.Loose);
            Mock.Arrange(() => childSpreadsheet1.IsVisible).Returns(true);
            var childSpreadsheet2 = Mock.Create<SpreadsheetView>(Constructor.Mocked, Behavior.Loose);
            Mock.Arrange(() => childSpreadsheet2.IsVisible).Returns(false);
            var childSpreadsheet3 = Mock.Create<SpreadsheetView>(Constructor.Mocked, Behavior.Loose);
            Mock.Arrange(() => childSpreadsheet3.IsVisible).Returns(true);

            //Add child spreadsheets
            var childSpreadsheets = privateAccessor.GetField("_childSpreadsheets") as List<SpreadsheetView>;
            childSpreadsheets.Add(childSpreadsheet1);
            childSpreadsheets.Add(childSpreadsheet2);
            childSpreadsheets.Add(childSpreadsheet3);

            //Call method with child spreadsheets and with caller (the second argument)
            Mock.Arrange(() => spreadsheetMock.Unselect(Arg.IsAny<CellBase>(), Arg.IsAny<SpreadsheetView>())).CallOriginal();
            spreadsheetMock.Unselect(cell, childSpreadsheet1);
            Mock.Assert(() => childSpreadsheet1.Unselect(cell, Arg.IsAny<SpreadsheetView>()), Occurs.Never());
            Mock.Assert(() => childSpreadsheet2.Unselect(cell, Arg.IsAny<SpreadsheetView>()), Occurs.Never());
            Mock.Assert(() => childSpreadsheet3.Unselect(cell, Arg.IsAny<SpreadsheetView>()), Occurs.Once());

            //Call method with child spreadsheets
            Mock.Arrange(() => container.Unselect(Arg.IsAny<CellBase>())).IgnoreInstance().Occurs(2);
            spreadsheetMock.Unselect(cell);
            Mock.Assert(() => childSpreadsheet1.Unselect(cell, Arg.IsAny<SpreadsheetView>()), Occurs.Once());
            Mock.Assert(() => childSpreadsheet2.Unselect(cell, Arg.IsAny<SpreadsheetView>()), Occurs.Never());
            Mock.Assert(() => childSpreadsheet3.Unselect(cell, Arg.IsAny<SpreadsheetView>()), Occurs.Exactly(2));
        }
Esempio n. 16
0
        public void AssignItemsSourceFirstTest()
        {
            var spreadsheet = new SpreadsheetView();
            var spreadsheetData = new List<TestData>
            {
                new TestData{Text = "string1", FractionalNumber = 10.0},
                new TestData{Text = "string2", FractionalNumber = 20.0},
                new TestData{Text = "test text", FractionalNumber = 30.2}
            };

            var privateAccessor = new PrivateAccessor(spreadsheet);

            //By default ItemsSource of SpreadsheetView is null
            Assert.IsNull(spreadsheet.ItemsSource);

            Mock.NonPublic.Arrange<SpreadsheetView>("OnItemsSourceChanged", ArgExpr.IsAny<DependencyObject>(), ArgExpr.IsAny<DependencyPropertyChangedEventArgs>())
                          .CallOriginal()
                          .MustBeCalled();
            spreadsheet.ItemsSource = spreadsheetData;
            Assert.AreEqual(spreadsheet.ItemsSource, spreadsheetData);
            Mock.NonPublic.Assert<SpreadsheetView>("OnItemsSourceChanged", ArgExpr.IsAny<DependencyObject>(), ArgExpr.IsAny<DependencyPropertyChangedEventArgs>());

            //FillItemsSource must be called from OnApplyTemplate if it hasn't been invoked yet 
            Mock.NonPublic.Assert(spreadsheet, "FillItemsSource", Occurs.Never(), ArgExpr.IsAny<IEnumerable>());
            Assert.IsFalse((bool)privateAccessor.GetField("_templateApplied"));

            //We've set SpreadsheetView.ItemsSource but ItemsControl.ItemsSource is still null
            var itemsControl = spreadsheet as ItemsControl;
            Assert.IsNull(itemsControl.ItemsSource);

            //Invoke OnApplyTemplate manually
            spreadsheet.OnApplyTemplate();
            Mock.NonPublic.Assert(spreadsheet, "FillItemsSource", Occurs.Once(), ArgExpr.IsAny<IEnumerable>());
            Assert.IsTrue((bool)privateAccessor.GetField("_templateApplied"));

            //FillItemsSource calls PopulateColumns
            Mock.NonPublic.Assert(spreadsheet, "PopulateColumns", Occurs.Once(), ArgExpr.IsAny<SpreadsheetElementCollection>());

            //Now ItemsControl.ItemsSource has value as well
            Assert.IsNotNull(itemsControl.ItemsSource);
            Assert.AreEqual(itemsControl.ItemsSource.GetType(), typeof(SpreadsheetElementCollection));

            //SpreadsheetView.ItemsCollection has only getter which retrieves data from ItemsControl.ItemsSource and casts it to SpreadsheetElementCollection
            Assert.AreEqual(itemsControl.ItemsSource, spreadsheet.ItemsCollection);

            //Assure that all our elements are there
            Assert.AreEqual(((IList)spreadsheet.ItemsSource).Count, spreadsheetData.Count);
            Assert.AreEqual(((IList)itemsControl.ItemsSource).Count, spreadsheetData.Count);
        }
Esempio n. 17
0
        public void AlternateRowsMethodTest()
        {
            //Create spreadsheet and load data
            var spreadsheet = new SpreadsheetView();
            var privateAccessor = new PrivateAccessor(spreadsheet);
            var itemList = new List<TestData>
            {
                new TestData(),
                new TestData()     
            };
            spreadsheet.ItemsSource = itemList;
            spreadsheet.OnApplyTemplate();
            Mock.NonPublic.Arrange(typeof(SpreadsheetView), "PopulateCells", ArgExpr.IsAny<SpreadsheetItemContainer>(), ArgExpr.IsAny<IWrap>()).DoNothing();

            //Get item wrappers
            var item1 = spreadsheet.ItemsCollection[0];
            var item2 = spreadsheet.ItemsCollection[1];

            //Call ItemContainerGenerator overrides 
            Mock.NonPublic.Arrange(typeof(CellBase), "SetEditorParams").IgnoreInstance().DoNothing();
            spreadsheet.ItemContainerStyle = new Style(typeof(SpreadsheetItemContainer));
            var container1 = privateAccessor.CallMethod("GetContainerForItemOverride") as SpreadsheetItemContainer;            
            privateAccessor.CallMethod("PrepareContainerForItemOverride", container1, item1);
            var container2 = privateAccessor.CallMethod("GetContainerForItemOverride") as SpreadsheetItemContainer;            
            privateAccessor.CallMethod("PrepareContainerForItemOverride", container2, item2);

            //Mock SetIsAlternate method for all SpreadsheetItemContainer instances
            var containerMock = Mock.Create<SpreadsheetItemContainer>(Constructor.Mocked);
            Mock.Arrange(() => containerMock.SetIsAlternate()).IgnoreInstance();            

            //Make spreadsheet invisible
            Mock.Arrange(() => spreadsheet.IsVisible).Returns(false);
            Mock.Arrange(() => spreadsheet.Items).CallOriginal().OccursNever();
            spreadsheet.AlternateRows();
            Mock.Assert(spreadsheet);

            //Test AlternateRows method in normal conditions
            Mock.Arrange(() => spreadsheet.IsVisible).Returns(true);
            Mock.Arrange(() => spreadsheet.Items).CallOriginal().MustBeCalled();
            spreadsheet.AlternateRows();
            var containersDict = privateAccessor.GetField("_containersDict") as Dictionary<IWrap, SpreadsheetItemContainer>;
            Mock.Assert(() => containersDict[item1].SetIsAlternate(), Occurs.Once());
            Mock.Assert(() => containersDict[item2].SetIsAlternate(), Occurs.Once());
            Mock.Assert(spreadsheet);
        }
Esempio n. 18
0
        public void CurrentState()
        {
            // arrange
            var vm = new FieldFileViewModel();

            var currentStateWasRaises = false;
            Mock.NonPublic.Arrange(vm, "RaisePropertyChanged", "CurrentState").DoInstead(() => { currentStateWasRaises = true; });

            var valueWasRaises = false;
            Mock.NonPublic.Arrange(vm, "RaisePropertyChanged", "Value").DoInstead(() => { valueWasRaises = true; });

            var messageWasRaises = false;
            Mock.NonPublic.Arrange(vm, "RaisePropertyChanged", "Message").DoInstead(() => { messageWasRaises = true; });

            var lockedByMessageWasRaises = false;
            Mock.NonPublic.Arrange(vm, "RaisePropertyChanged", "LockedByMessage").DoInstead(() => { lockedByMessageWasRaises = true; });

            var lockedByMessageVisibilityWasRaises = false;
            Mock.NonPublic.Arrange(vm, "RaisePropertyChanged", "LockedByMessageVisibility").DoInstead(() => { lockedByMessageVisibilityWasRaises = true; });

            var fileNameMessageWasRaises = false;
            Mock.NonPublic.Arrange(vm, "RaisePropertyChanged", "FileNameMessage").DoInstead(() => { fileNameMessageWasRaises = true; });

            var clipboardCopyErrorVisibilityWasRaises = false;
            Mock.NonPublic.Arrange(vm, "RaisePropertyChanged", "ClipboardCopyErrorVisibility").DoInstead(() => { clipboardCopyErrorVisibilityWasRaises = true; });

            var fileSavedMessageVisibilityWasRaises = false;
            Mock.NonPublic.Arrange(vm, "RaisePropertyChanged", "FileSavedMessageVisibility").DoInstead(() => { fileSavedMessageVisibilityWasRaises = true; });

            var templateListWasRaises = false;
            Mock.NonPublic.Arrange(vm, "RaisePropertyChanged", "TemplateList").DoInstead(() => { templateListWasRaises = true; });

            vm.IsFocused = false;

            // act
            vm.CurrentState = FileControlMode.Busy;

            // assert
            var privateAccessor = new PrivateAccessor(vm);
            Assert.AreEqual(FileControlMode.Download, privateAccessor.GetField("_previousState"));

            Assert.IsTrue(currentStateWasRaises);
            Assert.IsTrue(valueWasRaises);
            Assert.IsTrue(messageWasRaises);
            Assert.IsTrue(lockedByMessageWasRaises);
            Assert.IsTrue(lockedByMessageVisibilityWasRaises);
            Assert.IsTrue(fileNameMessageWasRaises);
            Assert.IsTrue(clipboardCopyErrorVisibilityWasRaises);
            Assert.IsTrue(fileSavedMessageVisibilityWasRaises);
            Assert.IsTrue(templateListWasRaises);

            Assert.AreEqual(FileControlMode.Busy, vm.CurrentState);

            // act
            vm.CurrentState = FileControlMode.Locked;

            // assert
            Assert.AreNotEqual(FileControlMode.Busy, privateAccessor.GetField("_previousState"));
            Assert.AreEqual(FileControlMode.Download, privateAccessor.GetField("_previousState"));
        }
Esempio n. 19
0
        public void GetFileCommand()
        {
            // arrange
            var vm = new FieldFileViewModel();

            var saveFileDialog = Mock.Create<SaveFileDialog>(Behavior.CallOriginal);
            Mock.Arrange(() => saveFileDialog.ShowDialog()).Returns(true);

            var privateAccessor = new PrivateAccessor(vm);
            privateAccessor.SetField("_dialog", saveFileDialog);

            var fileProcess = Mock.Create<IFileProcess>(Behavior.Loose);
            fileProcess.OriginalFileName = "1.txt";
            fileProcess.FileName = "603512C1-87D1-48BA-9C3F-13DA0C9EF5C0.txt";
            Mock.NonPublic.Arrange<IFileProcess>(vm, "CurrentFileProcess").Returns(fileProcess);

            Mock.Arrange(() => vm.DialogFilter).Returns("File (*.txt)|*.txt");

            vm.DocHandlerUrl = "http://localhost:5558/";

            vm.CurrentState = FileControlMode.Upload;

            // act
            vm.GetFileCommand.Execute(null);

            // assert
            var dialog = (SaveFileDialog)privateAccessor.GetField("_dialog");

            Assert.AreEqual("File (*.txt)|*.txt", dialog.Filter);
            Assert.AreEqual("1.txt", dialog.DefaultFileName);

            Assert.AreEqual("Downloading ...", vm.DownloadPercent);
            Assert.AreEqual(FileControlMode.Download, vm.CurrentState);

            // arrange
            vm.DownloadPercent = null;
            Mock.Arrange(() => saveFileDialog.ShowDialog()).Returns(false);

            // act
            vm.GetFileCommand.Execute(null);

            // assert
            Assert.IsNull(vm.DownloadPercent);
        }
Esempio n. 20
0
        public void DownloadImageCommand()
        {
            // arrange
            var vm = new ImageFieldViewModel();

            var saveFileDialog = Mock.Create<SaveFileDialog>(Behavior.CallOriginal);
            Mock.Arrange(() => saveFileDialog.ShowDialog()).Returns(false);

            var privateAccessor = new PrivateAccessor(vm);
            privateAccessor.SetField("_saveFileDialog", saveFileDialog);

            Mock.NonPublic.Arrange<bool>(vm, "IsImageExists", new object[] { ArgExpr.IsAny<object>() }).Returns(true);

            var editableRoot = Mock.Create<IEditableRoot>(Behavior.Loose);
            Mock.Arrange(() => editableRoot.ProcessName).Returns("eCar_p");
            Mock.Arrange(() => editableRoot.Id).Returns(1);

            Mock.Arrange(() => vm.ParentModel).Returns(editableRoot);

            Mock.Arrange(() => vm.Property).Returns(GetType().GetProperty("Image2"));

            // act
            try
            {
                vm.DownloadImageCommand.Execute(null);
            }
            catch(Exception ex)
            {
                // assert
                Assert.Fail("Expected no exception, but got: " + ex.Message);
            }

            // arrange
            Mock.Arrange(() => saveFileDialog.ShowDialog()).Returns(true);

            Mock.Arrange(() => saveFileDialog.OpenFile()).Returns(new MemoryStream());

            var array = new byte[8 * 1024 + 1];
            for (var i = 0; i < array.Length; i++)
            {
                array[i] = new byte();
            }

            vm.Value = array;

            var popupFactory = new PopupFactory();
            var notifySuccessCalled = false;
            Mock.Arrange(() => popupFactory.NotifySuccess(LanguageService.Translate("Msg_SuccessfullySaved"), "Popup_Success")).DoInstead(() => notifySuccessCalled = true);

            vm.ThePopupFactory = popupFactory;

            // act
            vm.DownloadImageCommand.Execute(null);

            // assert
            Assert.IsTrue(notifySuccessCalled);
            Assert.IsNull(privateAccessor.GetField("_saveFileDialog"));
        }
Esempio n. 21
0
        public void UploadImageCommand()
        {
            // arrange
            var vm = new ImageFieldViewModel();

            var openFileDialog = Mock.Create<OpenFileDialog>(Behavior.CallOriginal);
            Mock.Arrange(() => openFileDialog.ShowDialog()).Returns(false);

            var privateAccessor = new PrivateAccessor(vm);
            privateAccessor.SetField("_openFileDialog", openFileDialog);

            try
            {
                // act
                vm.UploadImageCommand.Execute(null);
            }
            catch (Exception ex)
            {
                // assert
                Assert.Fail("Expected no exception, but got: " + ex.Message);
            }

            // arrange
            Mock.Arrange(() => openFileDialog.ShowDialog()).Returns(true);

            var file = Mock.Create<FileInfo>(Behavior.CallOriginal);
            Mock.Arrange(() => file.Length).Returns(8 * 1024);
            Mock.Arrange(() => openFileDialog.File).Returns(file);

            var popupFactory = new PopupFactory();
            var notifyFailureCalled = false;
            Mock.Arrange(() => popupFactory.NotifyFailure(Arg.AnyString, "Popup_Error", 3, false)).DoInstead(() => notifyFailureCalled = true);

            vm.ThePopupFactory = popupFactory;

            // act
            vm.UploadImageCommand.Execute(null);

            // assert
            Assert.IsTrue(notifyFailureCalled);

            // arrange
            Mock.NonPublic.Arrange<ulong>(vm, "MaxFileSize").Returns((ulong)file.Length + 1);

            var fileStream = Mock.Create<FileStream>(Behavior.Loose);

            var exit = false;
            Mock.Arrange(() => fileStream.Read(Arg.IsAny<byte[]>(), 0, Arg.AnyInt)).Returns(() =>
                    {
                        if (!exit)
                        {
                            exit = true;
                            return 1;
                        }

                        return 0;
                    });

            Mock.Arrange(() => file.OpenRead()).Returns(fileStream);

            var imageVisibilityRaises = false;
            Mock.NonPublic.Arrange(vm, "RaisePropertyChanged", ArgExpr.IsAny<Expression<Func<bool>>>()).DoInstead(() => imageVisibilityRaises = true);

            var downloadImageCommandRaises = false;
            Mock.Arrange(() => vm.DownloadImageCommand.RaiseCanExecuteChanged()).DoInstead(() => downloadImageCommandRaises = true);

            var clearImageCommandRaises = false;
            Mock.Arrange(() => vm.ClearImageCommand.RaiseCanExecuteChanged()).DoInstead(() => clearImageCommandRaises = true);

            // act
            vm.UploadImageCommand.Execute(null);

            // assert
            Assert.AreEqual(8 * 1024, ((byte[])vm.Value).Length);
            Assert.IsTrue(imageVisibilityRaises);
            Assert.IsTrue(downloadImageCommandRaises);
            Assert.IsTrue(clearImageCommandRaises);
            Assert.IsNull(privateAccessor.GetField("_openFileDialog"));
        }
Esempio n. 22
0
        public void EndWebRequest()
        {
            // arrange
            var vm = new FieldFileViewModel();

            var asyncResult = Mock.Create<IAsyncResult>(Behavior.CallOriginal);
            var httpWebRequest = Mock.Create<HttpWebRequest>(Behavior.CallOriginal);
            var httpWebResponse = Mock.Create<HttpWebResponse>(Behavior.Loose);

            Mock.Arrange(() => httpWebRequest.EndGetResponse(asyncResult)).Returns(httpWebResponse);

            Mock.Arrange(() => asyncResult.AsyncState).Returns(httpWebRequest);

            Mock.Arrange(() => Deployment.Current.Dispatcher.BeginInvoke(Arg.IsAny<Action>())).DoInstead<Action>(a => a());

            var saveFileDialog = Mock.Create<SaveFileDialog>(Behavior.CallOriginal);

            var privateAccessor = new PrivateAccessor(vm);
            privateAccessor.SetField("_dialog", saveFileDialog);

            // act
            privateAccessor.CallMethod("EndWebRequest", new object[] { asyncResult });

            // assert
            Assert.IsNull(privateAccessor.GetField("_dialog"));
            Assert.AreEqual(FileControlMode.Error, vm.CurrentState);

            // arrange
            Mock.Arrange(() => httpWebResponse.ContentLength).Returns(Constants.FileProcessBufferSize);

            var outputStream = Mock.Create<Stream>(Behavior.Loose);

            Mock.Arrange(() => saveFileDialog.OpenFile()).Returns(outputStream);
            privateAccessor.SetField("_dialog", saveFileDialog);

            var task = new Task(() => { });
            task.RunSynchronously();

            Mock.Arrange(() => Task.Factory.StartNew(Arg.IsAny<Action>())).DoInstead<Action>(a => a()).Returns(() => task);

            var inputStream = Mock.Create<Stream>(Behavior.Loose);

            var exit = false;
            Mock.Arrange(() => inputStream.Read(Arg.IsAny<byte[]>(), 0, Arg.AnyInt)).Returns(() =>
            {
                if (!exit)
                {
                    exit = true;
                    return Constants.FileProcessBufferSize;
                }

                return 0;
            });

            Mock.Arrange(() => httpWebResponse.GetResponseStream()).Returns(inputStream);

            var inputStreamWasClosed = false;
            Mock.Arrange(() => inputStream.Close()).DoInstead(() => inputStreamWasClosed = true);

            var responseWasClosed = false;
            Mock.Arrange(() => httpWebResponse.Close()).DoInstead(() => responseWasClosed = true);

            var outputStreamWasClosed = false;
            Mock.Arrange(() => outputStream.Close()).DoInstead(() => outputStreamWasClosed = true);

            // act
            privateAccessor.CallMethod("EndWebRequest", new object[] { asyncResult });

            // assert
            Assert.AreEqual(Constants.FileProcessBufferSize, vm.ProgressBarMaximumValue);
            Assert.AreEqual(Constants.FileProcessBufferSize, vm.ProgressBarValue);
            Assert.AreEqual("Downloading 100%" + Environment.NewLine, vm.DownloadPercent);

            Assert.IsTrue(inputStreamWasClosed);

            Assert.IsTrue(responseWasClosed);
            Assert.IsTrue(outputStreamWasClosed);
            Assert.AreEqual(FileControlMode.Locked, vm.CurrentState);
            Assert.IsNull(privateAccessor.GetField("_dialog"));
        }
Esempio n. 23
0
        public void OnItemsChangedItemResetTest()
        {
            var spreadsheet = new SpreadsheetView();
            var privateAccessor = new PrivateAccessor(spreadsheet);

            var container = new SpreadsheetItemContainer(spreadsheet);

            //Arrange ContainerFromItem and initialize spreadsheet ItemsSource collection
            Mock.Arrange(() => spreadsheet.ItemContainerGenerator.ContainerFromItem(Arg.IsAny<IWrap>())).Returns(container);
            spreadsheet.ItemsSource = new List<TestData> {new TestData{Text = "data1"}};
            spreadsheet.OnApplyTemplate();
            var containersDict = privateAccessor.GetField("_containersDict") as Dictionary<IWrap, SpreadsheetItemContainer>;
            Assert.AreEqual(containersDict.Count, 1);
            Assert.AreEqual(((TestData)containersDict.First().Key.Data).Text, "data1");

            //Re-initialize collection to call OnItemsChanged with Reset action and assert results
            Mock.NonPublic.Arrange(spreadsheet, "DisposeContainers").CallOriginal().MustBeCalled();
            spreadsheet.ItemsSource = new List<TestData> { new TestData { Text = "data2" } };
            Assert.AreEqual(containersDict.Count, 1);
            Assert.AreEqual(((TestData)containersDict.First().Key.Data).Text, "data2");            
            Mock.Assert(spreadsheet);
        }
Esempio n. 24
0
        public void AssignItemsSourceAfterTemplateAppliedTest()
        {
            var spreadsheet = new SpreadsheetView();
            var spreadsheetData = new List<TestData>
            {
                new TestData{Text = "string1", FractionalNumber = 10.0},
                new TestData{Text = "string2", FractionalNumber = 20.0},
                new TestData{Text = "test text", FractionalNumber = 30.2}
            };

            var privateAccessor = new PrivateAccessor(spreadsheet);

            //First we call OnApplyTemplate and only then set value to ItemsSource
            spreadsheet.OnApplyTemplate();
            //FillItemsSource can not be called if ItemsSource is null
            Mock.NonPublic.Assert(spreadsheet, "FillItemsSource", Occurs.Never(), ArgExpr.IsAny<IEnumerable>());
            Assert.IsTrue((bool)privateAccessor.GetField("_templateApplied"));

            //FillItemsSource is invoked from OnItemsSourceChanged
            Mock.NonPublic.Arrange(spreadsheet, "FillItemsSource", ArgExpr.IsAny<IEnumerable>()).MustBeCalled();
            spreadsheet.ItemsSource = spreadsheetData;            
            Mock.Assert(spreadsheet);
        }
Esempio n. 25
0
        public void GetContainerFromItemMethodTest()
        {
            //Mock spreadsheet
            var spreadsheet = new SpreadsheetView();
            var privateAccessor = new PrivateAccessor(spreadsheet);

            //Prepare data
            var item = ItemWrap.BuildNew(new TestData());
            var container = new SpreadsheetItemContainer(spreadsheet);
            var containerHash = container.GetHashCode();

            var containersDict = privateAccessor.GetField("_containersDict") as Dictionary<IWrap, SpreadsheetItemContainer>;
            containersDict.Add(item, container);

            //Call GetContainerFromItem and assert results
            var result = spreadsheet.GetContainerFromItem(item);
            Assert.AreEqual(result.GetHashCode(), containerHash);
        }
Esempio n. 26
0
        public void CheckPropertiesInitialValuesTest()
        {
            var spreadsheet = new SpreadsheetView();
            var privateAccessor = new PrivateAccessor(spreadsheet);

            Assert.IsNotNull(privateAccessor.GetField("_sharedColumns"));
            Assert.IsNotNull(privateAccessor.GetField("_containersDict"));
            Assert.IsFalse((bool)privateAccessor.GetField("_loaded"));
            Assert.IsFalse((bool)privateAccessor.GetField("_templateApplied"));

            Assert.IsFalse(spreadsheet.IsDisposed);
            Assert.IsFalse(spreadsheet.HasNested);
            Assert.IsTrue(spreadsheet.IsTopLevel);
            Assert.AreEqual(spreadsheet.FirstRowIndex, 1);
            Assert.IsFalse(spreadsheet.HasSelection);
            Assert.IsNull(spreadsheet.ParentColumn);
            Assert.IsNull(spreadsheet.GlobalDataContext);
            Assert.IsNotNull(spreadsheet.Columns);
            Assert.IsFalse(spreadsheet.Columns.Any());
            Assert.IsNull(spreadsheet.ItemsSource);
            Assert.IsTrue(spreadsheet.AutoGenerateColumns);
            Assert.IsNull(spreadsheet.ParentSpreadsheet);
            Assert.IsNull(spreadsheet.CustomDataContextInitializer);
            Assert.IsNull(spreadsheet.ParentCell);
            Assert.IsFalse(spreadsheet.IsNested);
            Assert.IsTrue(spreadsheet.IsVisible);
            Assert.IsNull(spreadsheet.ItemContainerStyle);
            Assert.IsTrue(spreadsheet.ShowColumnHeader);
            Assert.IsNull(spreadsheet.SelectedHeaderStyle);
            Assert.IsNull(spreadsheet.AlternateRowStyle);
            Assert.AreEqual(((SolidColorBrush)spreadsheet.AlternateRowBackground).Color, Colors.Yellow);
            Assert.AreEqual(spreadsheet.AlternateStyle, AlternateStyles.None);
            Assert.AreEqual(((SolidColorBrush)spreadsheet.ColumnHeaderBackground).Color, Color.FromArgb(0xFF, 0x25, 0xA0, 0xDC));
            Assert.AreEqual(((SolidColorBrush)spreadsheet.ColumnSelectionBackground).Color, Color.FromArgb(0xFF, 0x2F, 0xD3, 0xFF));
            Assert.AreEqual(spreadsheet.GridLinesVisibility, GridLinesVisibility.Both);
            Assert.AreEqual(spreadsheet.RowIndicatorVisibility, Visibility.Visible);
            Assert.IsNull(spreadsheet.SelectedRowIndicatorStyle);
        }
Esempio n. 27
0
        public void GetEditedCellsMethodTest()
        {
            //Mock spreadsheet
            var spreadsheetMock = new SpreadsheetView();
            var privateAccessor = new PrivateAccessor(spreadsheetMock);

            //Load data            
            Mock.NonPublic.Arrange(typeof(CellBase), "SetEditorParams").IgnoreInstance().DoNothing();
            spreadsheetMock.ItemsSource = new List<TestData> { new TestData { Text = "text 1" }, new TestData { Text = "another text" } };
            spreadsheetMock.OnApplyTemplate();
            var item1 = spreadsheetMock.ItemsCollection[0];
            var item2 = spreadsheetMock.ItemsCollection[1];

            //Call ItemContainerGenerator overrides
            var container = privateAccessor.CallMethod("GetContainerForItemOverride") as SpreadsheetItemContainer;
            Assert.IsNotNull(container);
            spreadsheetMock.ItemContainerStyle = new Style(typeof(SpreadsheetItemContainer));
            privateAccessor.CallMethod("PrepareContainerForItemOverride", container, item1);
            privateAccessor.CallMethod("PrepareContainerForItemOverride", (SpreadsheetItemContainer)null, item2);

            //Assert _containersDict field
            var containersDict = privateAccessor.GetField("_containersDict") as Dictionary<IWrap, SpreadsheetItemContainer>;
            Assert.IsNotNull(containersDict);
            Assert.AreEqual(containersDict.Count, 2);
            Assert.IsTrue(containersDict.ContainsKey(item1));
            Assert.AreEqual(containersDict[item1], container);
            Assert.IsTrue(containersDict.ContainsKey(item2));
            Assert.IsNull(containersDict[item2]);

            //Assert cells
            Assert.IsNotNull(container.Cells);
            Assert.AreEqual(container.Cells.Count, 3);

            //Assert GetEditedCells call with only container from one of two elements and with no child spreadsheets
            var cell = container.Cells[1];
            Mock.Arrange(() => cell.IsEditMode).Returns(true);
            var editedCells = spreadsheetMock.GetEditedCells();
            Assert.AreEqual(editedCells.Count(), 1);
            Assert.AreEqual(editedCells[0], container.Cells[1]);

            //Add child spreadsheet
            var childSpreadsheet = new SpreadsheetView();
            var accessor = new PrivateAccessor(childSpreadsheet);
            childSpreadsheet.ItemsSource = new List<TestData> { new TestData { Text = "child item 1" }, new TestData { Text = "child item 2" } };
            childSpreadsheet.OnApplyTemplate();
            var item3 = childSpreadsheet.ItemsCollection[0];
            var item4 = childSpreadsheet.ItemsCollection[1];
            var childcontainer1 = accessor.CallMethod("GetContainerForItemOverride") as SpreadsheetItemContainer;
            var childcontainer2 = accessor.CallMethod("GetContainerForItemOverride") as SpreadsheetItemContainer;
            childSpreadsheet.ItemContainerStyle = new Style(typeof(SpreadsheetItemContainer));
            accessor.CallMethod("PrepareContainerForItemOverride", childcontainer1, item3);
            accessor.CallMethod("PrepareContainerForItemOverride", childcontainer2, item4);
            var cell2 = childcontainer1.Cells[1];
            Mock.Arrange(() => cell2.IsEditMode).Returns(true);
            var cell3 = childcontainer2.Cells[2];
            Mock.Arrange(() => cell3.IsEditMode).Returns(true);

            ((List<SpreadsheetView>)privateAccessor.GetField("_childSpreadsheets")).Add(childSpreadsheet);

            //Assert GetEditedCells call involving invisible child spreadsheet
            Mock.Arrange(() => childSpreadsheet.IsVisible).Returns(false);
            editedCells = spreadsheetMock.GetEditedCells();
            Assert.AreEqual(editedCells.Count(), 1);
            Assert.AreEqual(editedCells[0], container.Cells[1]);

            //Assert GetEditedCells call involving visible child spreadsheet
            Mock.Arrange(() => childSpreadsheet.IsVisible).Returns(true);
            editedCells = spreadsheetMock.GetEditedCells();
            Assert.AreEqual(editedCells.Count(), 3);
            Assert.AreEqual(editedCells[0], childcontainer1.Cells[1]);
            Assert.AreEqual(editedCells[1], childcontainer2.Cells[2]);
            Assert.AreEqual(editedCells[2], container.Cells[1]);
        }
Esempio n. 28
0
        public void OnApplyTemplateTest()
        {
            var spreadsheet = Mock.Create<SpreadsheetView>(Behavior.CallOriginal);
            var privateAccessor = new PrivateAccessor(spreadsheet);

            spreadsheet.OnApplyTemplate();
            //FillItemsSource can not be called if ItemsSource is null
            Mock.NonPublic.Assert(spreadsheet, "FillItemsSource", Occurs.Never(), ArgExpr.IsAny<IEnumerable>());
            Assert.IsTrue((bool)privateAccessor.GetField("_templateApplied"));

            privateAccessor.SetField("_templateApplied", false);
            spreadsheet.ItemsSource = new List<TestData>();
            spreadsheet.OnApplyTemplate();
            //AutoGenerateColumns is true and Columns is not null
            Mock.NonPublic.Assert(spreadsheet, "FillItemsSource", Occurs.Once(), ArgExpr.IsAny<IEnumerable>());
            Assert.IsTrue((bool)privateAccessor.GetField("_templateApplied"));

            spreadsheet.Columns = null;
            spreadsheet.OnApplyTemplate();
            //AutoGenerateColumns is true and Columns is null
            Mock.NonPublic.Assert(spreadsheet, "FillItemsSource", Occurs.Once(), ArgExpr.IsAny<IEnumerable>());
            Assert.IsTrue((bool)privateAccessor.GetField("_templateApplied"));

            spreadsheet.Columns = new SpreadsheetColumnCollection();
            spreadsheet.AutoGenerateColumns = false;
            spreadsheet.OnApplyTemplate();
            //AutoGenerateColumns is false but Columns collection is empty
            Mock.NonPublic.Assert(spreadsheet, "FillItemsSource", Occurs.Once(), ArgExpr.IsAny<IEnumerable>());
            Assert.IsTrue((bool)privateAccessor.GetField("_templateApplied"));
        }
Esempio n. 29
0
        public void SwitchVisibilityIncludingChildrenMethodTest()
        {
            //Mock spreadsheet
            var spreadsheetMock = Mock.Create<SpreadsheetView>(Behavior.CallOriginal);
            var privateAccessor = new PrivateAccessor(spreadsheetMock);

            //Mock columns
            var parentColumn = Mock.Create<IDetailColumn>(Constructor.Mocked);
            var column = Mock.Create<IDetailColumn>(Constructor.Mocked);

            //Arrange
            Mock.Arrange(() => spreadsheetMock.ParentColumn).Returns(parentColumn);
            var childSpreadsheet = Mock.Create<SpreadsheetView>(Constructor.Mocked);
            ((List<SpreadsheetView>)privateAccessor.GetField("_childSpreadsheets")).Add(childSpreadsheet);

            //Call SwitchVisibilityIncludingChildren when ParentColumn is not equal to column parameter
            spreadsheetMock.SwitchVisibilityIncludingChildren(column);
            Mock.Assert(() => childSpreadsheet.SwitchVisibilityIncludingChildren(column), Occurs.Once());
            Mock.Assert(() => spreadsheetMock.SwitchVisibility(), Occurs.Never());

            //Call SwitchVisibilityIncludingChildren when ParentColumn equals column parameter
            spreadsheetMock.SwitchVisibilityIncludingChildren(parentColumn);
            Mock.Assert(() => childSpreadsheet.SwitchVisibilityIncludingChildren(column), Occurs.Once());
            Mock.Assert(() => spreadsheetMock.SwitchVisibility(), Occurs.Once());
        }
Esempio n. 30
0
        public void Save()
        {
            // arrange
            var vm = new FieldFileViewModel();

            var fileProcess = Mock.Create<IFileProcess>(Behavior.Loose);
            fileProcess.OriginalFileName = "1.txt";
            Mock.NonPublic.Arrange<IFileProcess>(vm, "CurrentFileProcess").Returns(fileProcess);

            var newValue = Mock.Create<IFileProcess>(Behavior.Loose);

            var dataPortalResult = new DataPortalResult<IFileProcess>(newValue, null, null);
            Mock.Arrange(() => fileProcess.BeginSaveNew(Arg.IsAny<Action<object, IDataPortalResult>>()))
                .DoInstead<Action<object, IDataPortalResult>>(a => a(null, dataPortalResult));

            var privateAccessor = new PrivateAccessor(vm);

            // act
            privateAccessor.CallMethod("Save");

            // assert
            Assert.AreEqual(newValue, vm.Value);
            Assert.AreEqual("File '1.txt' uploaded successfully.", vm.Message);

            Assert.AreEqual(FileControlMode.NotifySuccess, privateAccessor.GetField("_previousState"));

            // arrange
            dataPortalResult = new DataPortalResult<IFileProcess>(null, new Exception(), null);

            // act
            privateAccessor.CallMethod("Save");

            // assert
            Assert.AreEqual("Error uploading file.", vm.Message);
            Assert.AreEqual(new Exception().ToString(), privateAccessor.GetProperty("ExceptionMessage"));
            Assert.AreEqual(FileControlMode.NotifyFail, privateAccessor.GetField("_previousState"));

            // arrange
            fileProcess.Id = 1;
            vm.Value = null;

            dataPortalResult = new DataPortalResult<IFileProcess>(newValue, null, null);

            Mock.Arrange(() => fileProcess.BeginUnlock(Arg.IsAny<Action<object, IDataPortalResult>>()))
                .DoInstead<Action<object, IDataPortalResult>>(a => a(null, dataPortalResult));

            // act
            privateAccessor.CallMethod("Save");

            // assert
            Assert.AreEqual(newValue, vm.Value);
            Assert.AreEqual("File '1.txt' uploaded successfully.", vm.Message);
            Assert.AreEqual(FileControlMode.NotifySuccess, vm.CurrentState);

            // arrange
            vm.Message = null;
            privateAccessor.SetProperty("ExceptionMessage", null);

            dataPortalResult = new DataPortalResult<IFileProcess>(null, new Exception(), null);

            var logger = Mock.Create<ILogger>(Behavior.CallOriginal);

            var logWasCalled = false;
            Mock.Arrange(() => logger.Log(LogSeverity.Error, typeof(FieldFileViewModel).ToString(), Arg.IsAny<Exception>())).DoInstead(() => logWasCalled = true);

            vm.Logger = logger;

            // act
            privateAccessor.CallMethod("Save");

            // assert
            Assert.AreEqual(string.Format(@"Error saving instance of new uploaded file{0}Please try again{0}If the problem persists, try to create a new record, and re-check the System Options\System Paths", Environment.NewLine), vm.Message);
            Assert.AreEqual(new Exception().ToString(), privateAccessor.GetProperty("ExceptionMessage"));
            Assert.AreEqual(FileControlMode.NotifyFail, vm.CurrentState);
            Assert.IsTrue(logWasCalled);
        }