public void VerifyThatDragOverWorks()
        {
            var row = new TermRowViewModel(this.term1, this.session.Object, null);

            this.dropinfo.Setup(x => x.Payload).Returns(this.sitedir);
            this.dropinfo.SetupProperty(x => x.Effects);
            row.DragOver(this.dropinfo.Object);
            Assert.AreEqual(DragDropEffects.None, this.dropinfo.Object.Effects);

            //dragover current row
            this.dropinfo.Setup(x => x.Payload).Returns(this.term1);
            row.DragOver(this.dropinfo.Object);

            Assert.AreEqual(DragDropEffects.None, this.dropinfo.Object.Effects);

            //dragover a term in a another rdl that requires the current one
            var row2 = new TermRowViewModel(this.term2, this.session.Object, null);

            row2.DragOver(this.dropinfo.Object);

            Assert.AreEqual(DragDropEffects.None, this.dropinfo.Object.Effects);

            //dragover a term in an element of the required rdl
            this.dropinfo.Setup(x => x.Payload).Returns(this.term2);
            row.DragOver(this.dropinfo.Object);

            Assert.AreEqual(DragDropEffects.Move, this.dropinfo.Object.Effects);
        }
        public void SetUp()
        {
            this.session = new Mock <ISession>();

            this.term             = new Term();
            this.termRowViewModel = new TermRowViewModel(term, this.session.Object, null);
        }
        public void VerifyThatDropWorks()
        {
            this.dropinfo.Setup(x => x.Payload).Returns(this.term2);
            this.dropinfo.Setup(x => x.Effects).Returns(DragDropEffects.Move);
            var row = new TermRowViewModel(this.term1, this.session.Object, null);

            row.Drop(this.dropinfo.Object);
            this.session.Verify(x => x.Write(It.IsAny <OperationContainer>()), Times.Exactly(1));
        }
        public void VerifyThatStartDragWorks()
        {
            var term = new Term();
            var row  = new TermRowViewModel(term, this.session.Object, null);

            this.draginfo.SetupProperty(x => x.Effects);
            this.draginfo.SetupProperty(x => x.Payload);
            row.StartDrag(this.draginfo.Object);

            Assert.AreEqual(DragDropEffects.Move, this.draginfo.Object.Effects);
            Assert.AreSame(term, this.draginfo.Object.Payload);
        }