public void SampleUserSharedFileCollectionViewModelTest() { var sampleVm = new SampleUserSharedFileCollectionViewModel(); Assert.AreEqual(DesignTimeHelper.GetRegisteredUser(), sampleVm.UserVm.Model); Assert.AreEqual(DesignTimeHelper.GetRegisteredUser().UserId, sampleVm.UserId); }
public void Execute(GeneratorExecutionContext context) { if ( !DesignTimeHelper.IsDesignTime(context) && context.GetMSBuildPropertyValue("Configuration") == "Debug" && IsRemoteControlClientInstalled(context) && PlatformHelper.IsApplication(context)) { var sb = new IndentedStringBuilder(); sb.AppendLineInvariant("// <auto-generated>"); sb.AppendLineInvariant("// ***************************************************************************************"); sb.AppendLineInvariant("// This file has been generated by the package Uno.UI.RemoteControl - for Xaml Hot Reload."); sb.AppendLineInvariant("// Documentation: https://platform.uno/docs/articles/features/working-with-xaml-hot-reload.html"); sb.AppendLineInvariant("// ***************************************************************************************"); sb.AppendLineInvariant("// </auto-generated>"); sb.AppendLineInvariant("// <autogenerated />"); sb.AppendLineInvariant("#pragma warning disable // Ignore code analysis warnings"); sb.AppendLineInvariant(""); BuildEndPointAttribute(context, sb); BuildSearchPaths(context, sb); BuildServerProcessorsPaths(context, sb); context.AddSource("RemoteControl", sb.ToString()); } }
/// <summary> /// Initializes a new instance of the <see cref="FrameworkElementLifecycleNotificationsBehavior"/> class. /// </summary> /// <param name="broker">The broker.</param> /// <param name="conventions">The conventions handler.</param> public FrameworkElementLifecycleNotificationsBehavior(IMessageBroker broker, IConventionsHandler conventions) { this.broker = broker; this.conventions = conventions; if (!DesignTimeHelper.GetIsInDesignMode()) { this.loaded = (s, e) => { var view = this.AssociatedObject; var dc = this.conventions.GetViewDataContext(view, this.conventions.DefaultViewDataContextSearchBehavior); if (this.conventions.ShouldNotifyViewModelLoaded(view, dc)) { this.broker.Broadcast(this, new ViewModelLoaded(dc)); } if (this.conventions.ShouldNotifyViewLoaded(view)) { this.broker.Broadcast(this, new ViewLoaded(view)); } var temp = dc as IExpectViewLoadedCallback; if (temp != null) { temp.OnViewLoaded(); } }; } }
public void Should_Create_TreeItems_With_Exports_For_Folders() { var report = new MyReportBase(); var designContext = TestHelper.CreateDesignerContext(); var northwind = TestHelper.NorthwindDataSource; var fakeDefinition1 = new DesignTimeDataSourceDefinition(northwind.DataSourceName, @"TestFolder", string.Empty); var fakeDefinition2 = new DesignTimeDataSourceDefinition(northwind.DataSourceName, @"FakeFolder", string.Empty); var fakeDefinition3 = new DesignTimeDataSourceDefinition(northwind.DataSourceName, @"TestFolder\TestChildFolder", string.Empty); report.DesignTimeDataSources.Add(northwind); report.DesignTimeDataSources.Add(fakeDefinition1); report.DesignTimeDataSources.Add(fakeDefinition2); report.DesignTimeDataSources.Add(fakeDefinition3); DynamicTree <DesignTimeDataSourceTreeItem> tree; List <DesignTimeDataSourceTreeItem> flatList; var treeItems = DesignTimeHelper.BuildDesignTimeDataSourceTreeItems(locator, report, out tree, out flatList).ToList(); //// Show TreeView, debug only //var form = new SelectDesignTimeDataSourceForm(designContext, report, (selectedDefinition) => { }); //form.ShowDialog(); Assert.AreEqual(8, treeItems.Count); }
public void RoomPermissionCollectionViewModel_LoadTest() { // Arrange var expectedPermissions = DesignTimeHelper.GetRoomPermissions(); mockRoomService.Setup(rs => rs.GetRoomPermissions(It.IsAny <OperationCallback <ObservableCollection <RoomPermission> > >())) .Callback((OperationCallback <ObservableCollection <RoomPermission> > callback) => callback(null, expectedPermissions)); var roomPermissionsVm = viewModelFactory.GetViewModel <RoomPermissionCollectionViewModel>(); bool isBusyChanged = false; roomPermissionsVm.PropertyChanged += (s, e) => { if (e.PropertyName == roomPermissionsVm.GetPropertyName(x => x.IsBusy)) { isBusyChanged = true; } }; // Act roomPermissionsVm.Load(); // Assert Assert.AreEqual(expectedPermissions.Count, roomPermissionsVm.ViewModelCount); Assert.AreEqual(expectedPermissions.Count, roomPermissionsVm.ViewModels.Count); foreach (var expectedPermission in expectedPermissions) { var rp = expectedPermission; Assert.IsTrue(roomPermissionsVm.ViewModels.Any(vm => vm.Model.RoomPermissionTag.Equals(rp.RoomPermissionTag, StringComparison.OrdinalIgnoreCase))); } Assert.IsFalse(roomPermissionsVm.IsBusy); Assert.IsTrue(roomPermissionsVm.IsLoaded); Assert.IsTrue(isBusyChanged); }
public void Execute(GeneratorExecutionContext context) { if (!DesignTimeHelper.IsDesignTime(context)) { _bindingsPaths = context.GetMSBuildPropertyValue("TSBindingsPath")?.ToString(); _sourceAssemblies = context.GetMSBuildItems("TSBindingAssemblySource").Select(i => i.Identity).ToArray(); if (!string.IsNullOrEmpty(_bindingsPaths)) { Directory.CreateDirectory(_bindingsPaths); _intPtrSymbol = context.Compilation.GetTypeByMetadataName("System.IntPtr"); _structLayoutSymbol = context.Compilation.GetTypeByMetadataName(typeof(StructLayoutAttribute).FullName); _interopMessageSymbol = context.Compilation.GetTypeByMetadataName("Uno.Foundation.Interop.TSInteropMessageAttribute"); var modules = from ext in context.Compilation.ExternalReferences let sym = context.Compilation.GetAssemblyOrModuleSymbol(ext) as IAssemblySymbol where _sourceAssemblies.Contains(sym.Name) from module in sym.Modules select module; modules = modules.Concat(context.Compilation.SourceModule); GenerateTSMarshallingLayouts(modules); } } }
public void LoginSuccessfulTest() { var companyVm = viewModelFactory.GetViewModel <CompanyViewModel>(); companyVm.Model = TestGlobals.Company; var authenticationGroupVm = viewModelFactory.GetViewModel <AuthenticationGroupViewModel>(); authenticationGroupVm.Model = TestGlobals.AuthenticationGroup; var vm = viewModelFactory.GetViewModel <LocalUserViewModel>(); vm.CompanyInfo = new TestCompanyInfo(); var user = DesignTimeHelper.GetRegisteredUser(); mockRoomService.Setup(rs => rs.Login(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <OperationCallback <LoginSession> >())) .Callback((string companyTag, string authenticationGroupTag, string userTag, string password, OperationCallback <LoginSession> callback) => callback(null, new LoginSession() { LoginSessionId = loginSessionId, UserId = Guid.NewGuid() })); mockRoomService.Setup(rs => rs.GetAuthenticatedUser(It.IsAny <LoginSession>(), It.IsAny <OperationCallback <User> >())) .Callback((LoginSession loginSession, OperationCallback <User> callback) => callback(null, user)); vm.Login("smithkl42", "password", ex => { Assert.AreEqual("smithkl42", vm.UserTag); Assert.AreEqual("password", vm.Password); Assert.AreEqual(loginSessionId, vm.LoginSession.LoginSessionId); Assert.AreEqual(user, vm.Model); }); }
public void UserChangesAndWorkspaceItemsChange() { // Arrange var vm = viewModelFactory.GetViewModel <LocalUserViewModel>(); var workspaceVm = viewModelFactory.GetViewModel <WorkspaceViewModel>(); var user1 = DesignTimeHelper.GetGuestUser(); var user2 = DesignTimeHelper.GetRegisteredUser(); Assert.IsNull(vm.UserSharedFileCollectionVm); vm.Model = user1; Assert.IsNotNull(vm.UserSharedFileCollectionVm); var sharedFileVms = vm.UserSharedFileCollectionVm.ViewModels; workspaceVm.WorkspaceItems.RegisterObservedCollection(sharedFileVms); foreach (var sharedFile in user1.SharedFiles) { Assert.IsTrue(vm.UserSharedFileCollectionVm.ViewModels.Any(sfvm => sfvm.Model == sharedFile)); Assert.IsTrue(workspaceVm.WorkspaceItems.Any(item => (item as SharedFileViewModel).Model == sharedFile)); } // Act vm.Model = user2; // Assert Assert.AreEqual(sharedFileVms, vm.UserSharedFileCollectionVm.ViewModels); foreach (var sharedFile in user2.SharedFiles) { Assert.IsTrue(vm.UserSharedFileCollectionVm.ViewModels.Any(sfvm => sfvm.Model == sharedFile)); Assert.IsTrue(workspaceVm.WorkspaceItems.Any(item => (item as SharedFileViewModel).Model == sharedFile)); } }
public void SampleSharedFileViewModelTest() { var sampleVm = new SampleSharedFileViewModel(); Assert.AreEqual(sampleVm.OwnerUserId, DesignTimeHelper.GetRegisteredUser().UserId); Assert.AreEqual(sampleVm.OwnerUserName, DesignTimeHelper.GetRegisteredUser().UserName); }
public void Execute(GeneratorExecutionContext context) { DependenciesInitializer.Init(context); if (!DesignTimeHelper.IsDesignTime(context)) { _bindingsPaths = context.GetMSBuildPropertyValue("TSBindingsPath")?.ToString(); _sourceAssemblies = context.GetMSBuildItems("TSBindingAssemblySource").Select(i => i.Identity).ToArray(); if (!string.IsNullOrEmpty(_bindingsPaths)) { _stringSymbol = context.Compilation.GetTypeByMetadataName("System.String"); _intSymbol = context.Compilation.GetTypeByMetadataName("System.Int32"); _floatSymbol = context.Compilation.GetTypeByMetadataName("System.Single"); _doubleSymbol = context.Compilation.GetTypeByMetadataName("System.Double"); _byteSymbol = context.Compilation.GetTypeByMetadataName("System.Byte"); _shortSymbol = context.Compilation.GetTypeByMetadataName("System.Int16"); _intPtrSymbol = context.Compilation.GetTypeByMetadataName("System.IntPtr"); _boolSymbol = context.Compilation.GetTypeByMetadataName("System.Boolean"); _longSymbol = context.Compilation.GetTypeByMetadataName("System.Int64"); _structLayoutSymbol = context.Compilation.GetTypeByMetadataName(typeof(System.Runtime.InteropServices.StructLayoutAttribute).FullName); _interopMessageSymbol = context.Compilation.GetTypeByMetadataName("Uno.Foundation.Interop.TSInteropMessageAttribute"); var modules = from ext in context.Compilation.ExternalReferences let sym = context.Compilation.GetAssemblyOrModuleSymbol(ext) as IAssemblySymbol where _sourceAssemblies.Contains(sym.Name) from module in sym.Modules select module; modules = modules.Concat(context.Compilation.SourceModule); GenerateTSMarshallingLayouts(modules); } } }
protected virtual IQueryable <TEntity> GetEntitiesCore() { if (queryableEntities == null) { queryableEntities = DesignTimeHelper.CreateDesignTimeObjects <TEntity>(2).AsQueryable(); } return(queryableEntities); }
public void Execute(GeneratorExecutionContext context) { if (!DesignTimeHelper.IsDesignTime(context)) { var visitor = new SerializationMethodsGenerator(context); visitor.Visit(context.Compilation.SourceModule); } }
/// <summary> /// Called when the behavior is being detached from its AssociatedObject, but before it has actually occurred. /// </summary> protected override void OnDetaching() { if (!DesignTimeHelper.GetIsInDesignMode()) { this.AssociatedObject.Loaded -= this.loaded; } base.OnDetaching(); }
public void Execute(GeneratorExecutionContext context) { try { var validPlatform = PlatformHelper.IsValidPlatform(context); var isDesignTime = DesignTimeHelper.IsDesignTime(context); var isApplication = IsApplication(context); if (validPlatform && !isDesignTime) { if (isApplication) { _defaultNamespace = context.GetMSBuildPropertyValue("RootNamespace"); _namedSymbolsLookup = context.Compilation.GetSymbolNameLookup(); _bindableAttributeSymbol = FindBindableAttributes(context); _dependencyPropertySymbol = context.Compilation.GetTypeByMetadataName(XamlConstants.Types.DependencyProperty); _objectSymbol = context.Compilation.GetTypeByMetadataName("System.Object"); _javaObjectSymbol = context.Compilation.GetTypeByMetadataName("Java.Lang.Object"); _nsObjectSymbol = context.Compilation.GetTypeByMetadataName("Foundation.NSObject"); _stringSymbol = context.Compilation.GetTypeByMetadataName("System.String"); _nonBindableSymbol = context.Compilation.GetTypeByMetadataName("Windows.UI.Xaml.Data.NonBindableAttribute"); _resourceDictionarySymbol = context.Compilation.GetTypeByMetadataName("Windows.UI.Xaml.ResourceDictionary"); _currentModule = context.Compilation.SourceModule; AnalyzerSuppressions = new string[0]; var modules = from ext in context.Compilation.ExternalReferences let sym = context.Compilation.GetAssemblyOrModuleSymbol(ext) as IAssemblySymbol where sym != null from module in sym.Modules select module; modules = modules.Concat(context.Compilation.SourceModule); context.AddSource("BindableMetadata", GenerateTypeProviders(modules)); } else { context.AddSource("BindableMetadata", $"// validPlatform: {validPlatform} designTime:{isDesignTime} isApplication:{isApplication}"); } } } catch (Exception e) { string?message = e.Message + e.StackTrace; if (e is AggregateException) { message = (e as AggregateException)?.InnerExceptions.Select(ex => ex.Message + e.StackTrace).JoinBy("\r\n"); } this.Log().Error("Failed to generate type providers.", new Exception("Failed to generate type providers." + message, e)); } }
public virtual Boolean CanCreateCommand(PropertyPath path, DependencyObject target) { if (DesignTimeHelper.GetIsInDesignMode()) { return(false); } return(path != null && (target is FrameworkElement || target is FrameworkContentElement)); }
/// <summary> /// Called after the behavior is attached to an AssociatedObject. /// </summary> protected override void OnAttached() { base.OnAttached(); if (!DesignTimeHelper.GetIsInDesignMode()) { this.AssociatedObject.Loaded += this.loaded; } }
public void CreateObjects() { TestClass[] objs = DesignTimeHelper.CreateDesignTimeObjects <TestClass>(2); Assert.AreEqual(2, objs.Length); Assert.IsNotNull(objs[0]); Assert.AreEqual(123, objs[0].IntProp); Assert.IsNotNull(objs[1]); Assert.AreEqual(456, objs[1].IntProp); Assert.AreEqual(0, DesignTimeHelper.CreateDesignTimeObjects <TestClassWithoutDefaultConstructor>(2).Length); }
public void ApproveModerationTest_Invitation() { // Arrange dependencies var requests = viewModelFactory.GetViewModel <ModerationRequestCollectionViewModel>(); requests.Models = DesignTimeHelper.GetModerationRequests(DesignTimeHelper.GetGuestUser()); var grantsVm = viewModelFactory.GetViewModel <RoomPermissionGrantCollectionViewModel>(); var requestVm = requests.ViewModels[0]; var roomVm = viewModelFactory.GetViewModel <RoomViewModel>(); roomVm.Model = room; var localUserVm = viewModelFactory.GetViewModel <LocalUserViewModel>(); localUserVm.Model = user; // Configure mock RoomServiceAdapter. mockRoomService.Setup(rs => rs.CreateInvitation(It.IsAny <LoginSession>(), It.IsAny <Guid>(), It.IsAny <Invitation>(), It.IsAny <OperationCallback>())) .Callback((LoginSession loginSessionId, Guid roomId, Invitation invitation, OperationCallback callback) => { Assert.IsNotNull(invitation); Assert.AreEqual(user.UserId, invitation.UserId); Assert.AreEqual(room.RoomId, invitation.RoomId); callback(null); }); mockRoomService.Setup(rs => rs.UpdateRoomPermissionsForInvitation(It.IsAny <LoginSession>(), It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <ObservableCollection <RoomPermissionGrant> >(), It.IsAny <OperationCallback>())) .Callback((LoginSession loginSessionId, Guid moderationRequestId, Guid securityPrincipalId, ObservableCollection <RoomPermissionGrant> grants, OperationCallback callback) => { Assert.AreEqual(2, grants.Count); Assert.AreEqual(1, grants.Count(g => g.RoomPermissionTag == "Share")); Assert.AreEqual(1, grants.Count(g => g.RoomPermissionTag == "Join")); callback(null); }); // Affirm Assert.IsTrue(requestVm.Model.ModerationRequestedRoomPermissions.Count > 0); Assert.IsTrue(requestVm.Model.ModerationRequestedRoomPermissions.All(p => !string.IsNullOrEmpty(p.RoomPermissionTag))); // Act grantsVm.ApproveModerationRequest(requestVm); // Assert mockRoomService.VerifyAll(); Assert.AreEqual(1, grantsVm.SecurityPrincipals.OfType <InvitationViewModel>().Count()); var invitationVm = grantsVm.SecurityPrincipals.OfType <InvitationViewModel>().First(); Assert.AreEqual(requestVm.Model.ModerationRequestedRoomPermissions.Count, invitationVm.RoomPermissionGrants.ViewModelCount); foreach (var grantvm in invitationVm.RoomPermissionGrants.ViewModels) { string roomPermissionTag = grantvm.Model.RoomPermissionTag; Assert.AreEqual(RoomPermissionScopeValues.Invitation, grantvm.Model.RoomPermissionScopeTag); Assert.AreEqual(1, requestVm.Model.ModerationRequestedRoomPermissions.Count(p => p.RoomPermissionTag == roomPermissionTag)); } }
/// <summary> /// Called when the behavior is being detached from its AssociatedObject, but before it has actually occurred. /// </summary> protected override void OnDetaching() { if (!DesignTimeHelper.GetIsInDesignMode()) { this.AssociatedObject.Loaded -= this.loaded; this.AssociatedObject.Activated -= this.activated; this.AssociatedObject.ContentRendered -= this.rendered; this.AssociatedObject.Closing -= this.closing; this.AssociatedObject.Closed -= this.closed; } base.OnDetaching(); }
public void AddChatMessageTest() { var vm = new SampleChatMessageCollectionViewModel(); var initialCount = vm.ViewModels.Count; var msg = DesignTimeHelper.GetChatMessage(user); vm.AddChatMessage(msg); var msgVm = vm.ViewModels.First(x => x.Model == msg); Assert.AreEqual(initialCount + 1, vm.ViewModels.Count); Assert.IsNotNull(msgVm); Assert.AreEqual(vm.ViewModels.Count - 1, msgVm.Index); }
public void FormattingServiceTest() { var vm = new SampleChatMessageCollectionViewModel(); var initialCount = vm.ViewModels.Count; var mockFormatter = new Mock <ChatFormattingServiceBase>(vm.ViewModels, vm.UserVm); mockFormatter.Setup(f => f.AddMessage(It.IsAny <ChatMessageViewModel>())); vm.ChatMessageFormatters.Add(mockFormatter.Object); var msg = DesignTimeHelper.GetChatMessage(user); vm.AddChatMessage(msg); mockFormatter.Verify(f => f.AddMessage(It.IsAny <ChatMessageViewModel>()), Times.Exactly(initialCount + 1)); }
protected override void OnStart() { // Handle when your app starts DesignTimeHelper.TurnOffDesignMode(); IEDataSource ds = IEDataSource.GetInstance(); if (ds.Running == false) { ds.StartDataSource(); } MainPage = new NavigationPage(new ActiveMembersListPage()); }
public void CreateObject() { var obj1 = DesignTimeHelper.CreateDesignTimeObject <TestClass>(); Assert.IsNotNull(obj1); Assert.AreEqual(123, obj1.IntProp); Assert.AreEqual("string1", obj1.StringProp); Assert.AreEqual(0, obj1.ReadonlyProp); Assert.AreEqual(default(Visibility), obj1.EnumProp); Assert.AreEqual(null, obj1.NestedProp); Assert.AreEqual(null, obj1.RecursiveProp); Assert.IsNull(DesignTimeHelper.CreateDesignTimeObject <TestClassWithoutPublicConstructor>()); Assert.IsNull(DesignTimeHelper.CreateDesignTimeObject <TestClassWithoutDefaultConstructor>()); }
protected virtual void OnProvideValue(IServiceProvider provider, Object value) { if (!DesignTimeHelper.GetIsInDesignMode()) { FrameworkElement fe; DependencyProperty dp; if (this.TryGetTargetItems <FrameworkElement>(provider, out fe, out dp)) { RoutedEventHandler reh = null; reh = (s, e) => { fe.Loaded -= reh; this.OnTargetLoaded(fe, dp); }; fe.Loaded += reh; fe.DataContextChanged += (s, e) => { this.OnDataContextChanged(fe, dp, e.NewValue, e.OldValue); }; } #if !SILVERLIGHT else { FrameworkContentElement fce; if (this.TryGetTargetItems <FrameworkContentElement>(provider, out fce, out dp)) { RoutedEventHandler reh = null; reh = (s, e) => { fce.Loaded -= reh; this.OnTargetLoaded(fce, dp); }; fce.Loaded += reh; fce.DataContextChanged += (s, e) => { this.OnDataContextChanged(fce, dp, e.NewValue, e.OldValue); }; } } #endif } }
public virtual void TestInit() { DesignTimeHelper.Reset(); mockMessageService = GetMockMessageService(); messageService = mockMessageService.Object; viewLocator = new ViewLocator(); mockRoomService = GetMockRoomService(); roomService = mockRoomService.Object; viewModelFactory = new ViewModelFactory(roomService, messageService, viewLocator); user = DesignTimeHelper.GetRegisteredUser(); room = DesignTimeHelper.GetRoom(); guestUser = DesignTimeHelper.GetGuestUser(); // Wait to kick off any of the actual tests until the basic test initialization has completed. EnqueueConditional(() => TestGlobals.Initialized); EnqueueTestComplete(); }
public void FormatChatMessageTest() { var vm = new SampleChatMessageCollectionViewModel(); var formatter = new TestChatFormattingService(vm.ViewModels, vm.UserVm); int initialCount = formatter.FormattedMessages.Blocks.Count; Assert.AreEqual(vm.ViewModels.Count, initialCount); bool getParagraphsFromChatMessageCalled = false; formatter.GetParagraphsFromChatMessageCalled += (s, e) => getParagraphsFromChatMessageCalled = true; var chatVm = new ChatMessageViewModel { Model = DesignTimeHelper.GetChatMessage(user) }; formatter.AddMessage(chatVm); Assert.IsTrue(getParagraphsFromChatMessageCalled); Assert.AreEqual(initialCount + 1, formatter.FormattedMessages.Blocks.Count); }
public void UserChangesAndClosedWorkspaceItemsChange() { // Arrange var localUserVm = viewModelFactory.GetViewModel <LocalUserViewModel>(); var workspaceVm = viewModelFactory.GetViewModel <WorkspaceViewModel>(); var user1 = DesignTimeHelper.GetGuestUser(); var user2 = DesignTimeHelper.GetRegisteredUser(); var wb1 = new Data.RoomService.Whiteboard() { WhiteboardId = Guid.NewGuid(), User = user2, IsClosed = true }; var wbVm1 = viewModelFactory.GetViewModel <WhiteboardViewModel>(w => w.WorkspaceItemId == wb1.WhiteboardId); wbVm1.Model = wb1; var wb2 = new Data.RoomService.Whiteboard() { WhiteboardId = Guid.NewGuid(), User = user2, IsClosed = true }; var wbVm2 = viewModelFactory.GetViewModel <WhiteboardViewModel>(w => w.WorkspaceItemId == wb2.WhiteboardId); wbVm2.Model = wb2; workspaceVm.ClosedWorkspaceItems.Triggers.Add(localUserVm); workspaceVm.WorkspaceItems.Add(wbVm1); workspaceVm.WorkspaceItems.Add(wbVm2); localUserVm.Model = user1; Assert.IsTrue(wbVm1.IsReady && !wbVm1.IsShareAvailable && !wbVm1.IsShared); Assert.IsTrue(wbVm2.IsReady && !wbVm2.IsShareAvailable && !wbVm2.IsShared); // The whiteboards shouldn't initially show up in the closed workspace items because // they aren't owned by the current local user. Assert.IsFalse(workspaceVm.ClosedWorkspaceItems.Contains(wbVm1)); Assert.IsFalse(workspaceVm.ClosedWorkspaceItems.Contains(wbVm2)); // Act localUserVm.Model = user2; // Assert // The whiteboards should now show up in the closed workspace items because // they're owned by the new local user. Assert.IsTrue(wbVm1.IsReady && wbVm1.IsShareAvailable && !wbVm1.IsShared); Assert.IsTrue(wbVm2.IsReady && wbVm2.IsShareAvailable && !wbVm2.IsShared); Assert.IsTrue(workspaceVm.ClosedWorkspaceItems.Contains(wbVm1)); Assert.IsTrue(workspaceVm.ClosedWorkspaceItems.Contains(wbVm2)); }
public void ApproveModerationTest_User() { // Arrange var requests = viewModelFactory.GetViewModel <ModerationRequestCollectionViewModel>(); requests.Models = DesignTimeHelper.GetModerationRequests(user); var grantsVm = viewModelFactory.GetViewModel <RoomPermissionGrantCollectionViewModel>(); var requestVm = requests.ViewModels[0]; var roomVm = viewModelFactory.GetViewModel <RoomViewModel>(); roomVm.Model = room; mockRoomService.Setup(rs => rs.UpdateRoomPermissionsForUser(It.IsAny <LoginSession>(), It.IsAny <Guid>(), It.IsAny <ObservableCollection <RoomPermissionGrant> >(), It.IsAny <OperationCallback>())) .Callback((LoginSession loginSession, Guid moderationRequestId, ObservableCollection <RoomPermissionGrant> grants, OperationCallback callback) => { Assert.AreEqual(2, grants.Count); Assert.AreEqual(1, grants.Count(g => g.RoomPermissionTag == "Share")); Assert.AreEqual(1, grants.Count(g => g.RoomPermissionTag == "Join")); callback(null); }); // Affirm Assert.IsTrue(requestVm.Model.ModerationRequestedRoomPermissions.Count > 0); Assert.IsTrue(requestVm.Model.ModerationRequestedRoomPermissions.All(p => !string.IsNullOrEmpty(p.RoomPermissionTag))); // Act grantsVm.ApproveModerationRequest(requestVm); // Assert mockRoomService.VerifyAll(); Assert.IsTrue(grantsVm.SecurityPrincipals.Count(p => p.SecurityPrincipalId == requestVm.Model.UserId) == 1, "The generated grant should have the same SecurityPrincipalId as the request's UserId"); var uservm = (UserViewModel)grantsVm.SecurityPrincipals.First(p => p.SecurityPrincipalId == requestVm.Model.UserId); Assert.AreEqual(requestVm.Model.ModerationRequestedRoomPermissions.Count, uservm.RoomPermissionGrants.ViewModelCount); foreach (var grantvm in uservm.RoomPermissionGrants.ViewModels) { string roomPermissionTag = grantvm.Model.RoomPermissionTag; Assert.AreEqual(RoomPermissionScopeValues.User, grantvm.Model.RoomPermissionScopeTag); Assert.AreEqual(1, requestVm.Model.ModerationRequestedRoomPermissions.Count(p => p.RoomPermissionTag == roomPermissionTag)); } }
protected override void OnDataContextChanged(DependencyObject obj, DependencyProperty targetProperty, Object newValue, Object oldValue) { base.OnDataContextChanged(obj, targetProperty, newValue, oldValue); var actualCommand = obj.GetValue(targetProperty) as DelegateCommand; if (actualCommand != null) { var actualCommandData = actualCommand.GetData <CommandData>(); var actualMonitor = actualCommandData != null ? actualCommandData.Monitor : null; if (actualMonitor != null) { actualCommand.RemoveMonitor(actualMonitor); actualCommand.EvaluateCanExecute(); } } if (!DesignTimeHelper.GetIsInDesignMode() && newValue != null) { var newCommand = this.GetCommand(obj, targetProperty); } }
public void RoomPermissionsUpdatedTest() { // Arrange var roomVm = viewModelFactory.GetViewModel <RoomViewModel>(); roomVm.Model = room; var originalGrants = DesignTimeHelper.GetRoomPermissionGrants(); var goodGrant1 = new RoomPermissionGrant { RoomPermissionGrantId = Guid.NewGuid(), RoomPermissionTag = Guid.NewGuid().ToString(), UserId = user.UserId, User = user, RoomId = room.RoomId }; var goodGrant2 = new RoomPermissionGrant { RoomPermissionGrantId = Guid.NewGuid(), RoomPermissionTag = Guid.NewGuid().ToString(), UserId = user.UserId, User = user, RoomId = room.RoomId }; var badGrant1 = new RoomPermissionGrant { RoomPermissionGrantId = Guid.NewGuid(), RoomPermissionTag = Guid.NewGuid().ToString(), UserId = Guid.NewGuid(), User = null, RoomId = room.RoomId }; var badGrant2 = new RoomPermissionGrant { RoomPermissionGrantId = Guid.NewGuid(), RoomPermissionTag = Guid.NewGuid().ToString(), UserId = user.UserId, User = user, RoomId = Guid.NewGuid() }; var newGrants = new ObservableCollection <RoomPermissionGrant> { goodGrant1, goodGrant2, badGrant1, badGrant2 }; var localPerms = viewModelFactory.GetViewModel <SecurityPrincipalRoomPermissionGrantCollectionViewModel>(); localPerms.SecurityPrincipalId = user.UserId; localPerms.Models = originalGrants; // Act mockRoomService.Raise(rs => rs.RoomPermissionsForUserUpdated += null, new EventArgs <ObservableCollection <RoomPermissionGrant> >(newGrants)); // Assert Assert.AreEqual(2, localPerms.ViewModelCount); Assert.AreEqual(2, localPerms.ViewModels.Count); Assert.IsTrue(localPerms.ViewModels.Any(vm => vm.Model.RoomPermissionGrantId == goodGrant1.RoomPermissionGrantId)); Assert.IsTrue(localPerms.ViewModels.Any(vm => vm.Model.RoomPermissionGrantId == goodGrant2.RoomPermissionGrantId)); }