public ArrangementPageViewModel(InteriorField[,] layout, Chair chairModel, Table tableModel) { this.Rows = layout.GetLength(0); this.Columns = layout.GetLength(1); this.Arrangement = new ObservableCollection<ArrangedFieldViewModel>(); for (int y = 0; y < layout.GetLength(0); y++) for (int x = 0; x < layout.GetLength(1); x++) { this.Arrangement.Add(new ArrangedFieldViewModel((layout[y, x]))); } this.Palettes = new ObservableCollection<string>(new[] { "Light", "Dark" }); this.ChairModel = chairModel; this.TableModel = tableModel; Pathway autoPathway = new Pathway(); Flower autoFlower = new Flower(); foreach (ArrangedFieldViewModel field in this.Arrangement) { if (field?.PlaceHolder?.CanHoldObject(autoFlower) ?? false) field.ArrangeObjectCommand.Execute(autoFlower); else if (field?.PlaceHolder?.CanHoldObject(autoPathway) ?? false) field.ArrangeObjectCommand.Execute(autoPathway); } this.ClearAllCommand = new DelegateCommand((param) => this.ClearAll()); this.FillAllCommand = new DelegateCommand((param) => this.FillAll()); this.RemoveObjectCommand = new DelegateCommand(this.RemoveObject, this.CanRemoveObject); }
public void ShouldInitializeModelsCorrectly() { Chair chairModel = new Chair(); Table tableModel = new Table(); ArrangementPageViewModel vm = new ArrangementPageViewModel(Layout, chairModel, tableModel); Assert.AreEqual(chairModel, vm.ChairModel); Assert.AreEqual(tableModel, vm.TableModel); }
public void ShouldInitializeDimensionsCorrectly() { Chair chairModel = new Chair(); Table tableModel = new Table(); ArrangementPageViewModel vm = new ArrangementPageViewModel(Layout, chairModel, tableModel); Assert.AreEqual(2, vm.Rows); Assert.AreEqual(3, vm.Columns); }
public void ShouldInitializeNonFunitureCorrectly() { Chair chairModel = new Chair(); Table tableModel = new Table(); ArrangementPageViewModel vm = new ArrangementPageViewModel(Layout, chairModel, tableModel); Assert.IsTrue(vm.Arrangement .Where(arrangement => !((arrangement.PlaceHolder is FurnitureField) || (arrangement.PlaceHolder is EmptySpaceField))) .All(arrangement => arrangement.ArrangedItems.Any())); }
public void ShouldClearArrangedModels() { Chair chairModel = new Chair(); Table tableModel = new Table(); ArrangementPageViewModel vm = new ArrangementPageViewModel(Layout, chairModel, tableModel); vm.Arrangement[0].ArrangeObjectCommand.Execute(chairModel); vm.Arrangement[1].ArrangeObjectCommand.Execute(tableModel); Assert.IsTrue(vm.ClearAllCommand.CanExecute(null)); vm.ClearAllCommand.Execute(null); Assert.AreEqual(null, vm.Arrangement[0].ArrangedItems.FirstOrDefault()); Assert.AreEqual(null, vm.Arrangement[1].ArrangedItems.FirstOrDefault()); }
public void ShouldFillAllEmptyFields1() { Chair chairModel = new Chair(); Table tableModel = new Table(); ArrangementPageViewModel vm = new ArrangementPageViewModel(Layout, chairModel, tableModel); Assert.AreEqual(null, vm.Arrangement[0].ArrangedItems.FirstOrDefault()); Assert.AreEqual(null, vm.Arrangement[1].ArrangedItems.FirstOrDefault()); Assert.IsTrue(vm.FillAllCommand.CanExecute(null)); vm.FillAllCommand.Execute(null); Assert.IsTrue(vm.Arrangement[0].ArrangedItems.First() is Chair); Assert.IsTrue(vm.Arrangement[1].ArrangedItems.First() is Table); }
public void ShouldBeDisabledForNonFurniture2() { Chair chairModel = new Chair(); Table tableModel = new Table(); ArrangementPageViewModel vm = new ArrangementPageViewModel(Layout, chairModel, tableModel); ArrangedFieldViewModel field = new ArrangedFieldViewModel(new FlowerField()); field.ArrangeObjectCommand.Execute(new Pathway()); Assert.IsFalse(vm.RemoveObjectCommand.CanExecute(field)); }
public void ShouldNotReplaceFilledFields() { Chair chairModel = new Chair(); Table tableModel = new Table(); ArrangementPageViewModel vm = new ArrangementPageViewModel(Layout, chairModel, tableModel); vm.Arrangement[0].ArrangeObjectCommand.Execute(chairModel); vm.FillAllCommand.Execute(null); Assert.AreEqual(chairModel, vm.Arrangement[0].ArrangedItems.First()); Assert.IsTrue(vm.Arrangement[1].ArrangedItems.First() is Table); Assert.IsFalse(vm.Arrangement[1].ArrangedItems.First() == tableModel); }
public void ShouldFillAllEmptyFields2() { Chair chairModel = new Chair(); Table tableModel = new Table(); ArrangementPageViewModel vm = new ArrangementPageViewModel(Layout, chairModel, tableModel); Assert.AreEqual(null, vm.Arrangement[0].ArrangedItems.FirstOrDefault()); Assert.AreEqual(null, vm.Arrangement[1].ArrangedItems.FirstOrDefault()); Assert.IsTrue(vm.FillAllCommand.CanExecute(null)); vm.FillAllCommand.Execute(null); Assert.IsTrue(vm.Arrangement[0].ArrangedItems.First() is Chair); Assert.IsTrue(vm.Arrangement[1].ArrangedItems.First() is Table); Assert.IsFalse(vm.Arrangement.Any(a => !(a.PlaceHolder is FurnitureField) && a.ArrangedItems.Any(item => item is FurnitureItem))); }
public void ShouldSetPropertyAfterInitialization() { Table table = new Table("test"); Assert.AreEqual("test", table.BrandName); }