public void SampleUserSharedFileCollectionViewModelTest()
        {
            var sampleVm = new SampleUserSharedFileCollectionViewModel();

            Assert.AreEqual(DesignTimeHelper.GetRegisteredUser(), sampleVm.UserVm.Model);
            Assert.AreEqual(DesignTimeHelper.GetRegisteredUser().UserId, sampleVm.UserId);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 6
0
        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);
                }
            }
        }
Ejemplo n.º 7
0
        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);
            });
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 10
0
        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);
                }
            }
        }
Ejemplo n.º 11
0
 protected virtual IQueryable <TEntity> GetEntitiesCore()
 {
     if (queryableEntities == null)
     {
         queryableEntities = DesignTimeHelper.CreateDesignTimeObjects <TEntity>(2).AsQueryable();
     }
     return(queryableEntities);
 }
Ejemplo n.º 12
0
 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));
            }
        }
Ejemplo n.º 15
0
        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();
 }
Ejemplo n.º 20
0
        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);
        }
Ejemplo n.º 21
0
        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));
        }
Ejemplo n.º 22
0
        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>());
        }
Ejemplo n.º 24
0
        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
            }
        }
Ejemplo n.º 25
0
        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();
        }
Ejemplo n.º 26
0
        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);
        }
Ejemplo n.º 27
0
        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));
            }
        }
Ejemplo n.º 29
0
        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));
        }