public void Initialize_PopulatesAvailableTypes() { // Arrange. var type1 = CreateType("aaa"); var type2 = CreateType("bbb"); var viewModel = new SelectChildTypeFieldsViewModel(); // Act. viewModel.Initialize(new[] { type2, type1 }, Enumerable.Empty<IWebMethodCallResultField>()); // Assert. Assert.AreEqual(2, viewModel.AvailableTypes.Count); Assert.AreSame(type1, viewModel.AvailableTypes[0]); Assert.AreSame(type2, viewModel.AvailableTypes[1]); Assert.AreSame(type1, viewModel.SelectedType); }
public void WhenSelectedTypeChanges_AvailableFieldsAreUpdated() { // Arrange. var type1 = CreateType("Type1"); var field1 = CreateField("Field1", type1); Mock.Arrange(() => type1.Fields).Returns(new[] { field1 }); var type2 = CreateType("Type2"); var field2 = CreateField("Field2", type2); Mock.Arrange(() => type2.Fields).Returns(new[] { field2 }); var viewModel = new SelectChildTypeFieldsViewModel(); viewModel.Initialize(new[] { type1, type2 }, Enumerable.Empty<IWebMethodCallResultField>()); Assert.AreEqual(1, viewModel.AvailableFields.Count); Assert.AreSame(field1, viewModel.AvailableFields[0]); // Act. viewModel.SelectedType = type2; // Assert. Assert.AreEqual(1, viewModel.AvailableFields.Count); Assert.AreSame(field2, viewModel.AvailableFields[0]); }
public void AvailableFields_DoesNotIncludeUsedFields() { // Arrange. var type1 = CreateType("Type1"); var type2 = CreateType("Type2"); var field1 = CreateField("Field1", type2); var field2 = CreateField("Field2", type2); Mock.Arrange(() => type2.Fields).Returns(new[] { field1, field2 }); var resultField = CreateResultField("Field1", "Type2"); var viewModel = new SelectChildTypeFieldsViewModel(); viewModel.Initialize(new[] { type1, type2 }, new[] { resultField }); // Act. viewModel.SelectedType = type2; // Assert. Assert.AreEqual(1, viewModel.AvailableFields.Count); Assert.AreSame(field2, viewModel.AvailableFields[0]); }