public void DocumentPlayer_Play_SetsIsPlayingTrue()
 {
     DocumentViewModel document = new DocumentViewModel();
     FakeDocumentPlayer player = new FakeDocumentPlayer(document);
     player.Play();
     Assert.AreEqual(player.IsPlaying, true,
         "IsPlaying should be 'true'.");
 }
 public void DocumentPlayer_Play_SetsIsPausedFalse()
 {
     DocumentViewModel document = new DocumentViewModel();
     FakeDocumentPlayer player = new FakeDocumentPlayer(document);
     player.Play();
     Assert.AreEqual(player.IsPaused, false,
         "IsPlused should be 'false'.");
 }
Example #3
0
 public DocumentPlayer(DocumentViewModel document)
 {
     _document = document;
     _bgw = new BackgroundWorker();
     _bgw.WorkerReportsProgress = true;
     _bgw.ProgressChanged += new ProgressChangedEventHandler(_bgw_ProgressChanged);
     _bgw.DoWork += new DoWorkEventHandler(_bgw_DoWork);
 }
 public void DocumentPlayer_GetBeatDurationAsSeconds_80bpm()
 {
     DocumentViewModel document = new DocumentViewModel();
     DocumentPlayer player = new DocumentPlayer(document);
     var result = player.GetBeatDurationAsSeconds(80);
     Assert.AreEqual(result, 0.75,
         "120 bps should correspond to 0.75sec pr beat");
 }
Example #5
0
 public void DataStore_Save_WithoutPath_RunsSaveAsAndSaves()
 {
     DocumentViewModel document = new DocumentViewModel();
     StubbDataStore dataStore = new StubbDataStore();
     dataStore.Save(document);
     Assert.IsTrue(dataStore.SaveAsRun && dataStore.DidSerialize,
         "Both 'SaveAsRun' and 'DidSerialize' should be true.");
 }
Example #6
0
 public void DataStore_Open_OpensTestDocument()
 {
     DocumentViewModel document = new DocumentViewModel();
     StubbDataStore dataStore = new StubbDataStore();
     dataStore.Open(ref document);
     Assert.IsTrue(document.ChordLines.Count == 1,
         "There should be 1 line in the document");
 }
Example #7
0
 public void DataStore_SaveAs_SavesFile()
 {
     DocumentViewModel document = new DocumentViewModel();
     StubbDataStore dataStore = new StubbDataStore();
     dataStore.SaveAs(document);
     Assert.IsTrue(dataStore.DidSerialize,
         "File should have been saved, but was not.");
 }
Example #8
0
 protected virtual void OpenSerializedFile(ref DocumentViewModel document)
 {
     using (Stream fs = new FileStream(document.DocumentPath, FileMode.Open))
     {
         XmlSerializer serializer = new XmlSerializer(document.GetType());
         document = (DocumentViewModel)serializer.Deserialize(fs);
     }
 }
 public void MainWindowVM_CloseDocument_ClosesDocument()
 {
     var model = new MainWindowModel();
     var document = new DocumentViewModel(model);
     model.Documents.Add(document);
     model.CloseDocument(document);
     Assert.IsTrue(!model.Documents.Contains(document),
         "The Documents collection should not contain this document now.");
 }
Example #10
0
 public override void Open(ref DocumentViewModel document)
 {
     var line = new ChordLine();
     line.Chords.Add(new Chord{ Name = "C"});
     line.Chords.Add(new Chord{ Name = "F"});
     line.Chords.Add(new Chord{ Name = "G"});
     document.ChordLines.Add(line);
     document.DocumentPath = "C:\\MyDocument.chords";
 }
        public void DocumentPlayer_Pause_SetsIsPausedTrue()
        {
            DocumentViewModel document = new DocumentViewModel();
            FakeDocumentPlayer player = new FakeDocumentPlayer(document);
            player.Pause();

            Assert.AreEqual(player.IsPaused, true,
                "IsPlused should be 'true'.");
        }
Example #12
0
        public void DataStore_Save_WithPathSavesFile()
        {
            DocumentViewModel document = new DocumentViewModel();
            document.DocumentPath = "C:\\MyDocument.chords";

            StubbDataStore dataStore = new StubbDataStore();
            dataStore.Save(document);
            Assert.IsTrue(dataStore.DidSerialize,
                "File should have been saved, but was not.");
        }
 public void MainWindowVM_Insert_InsertsChordLine()
 {
     MainWindowModel model = new MainWindowModel();
     var doc = new DocumentViewModel();
     model.Documents.Add(doc);
     model.InsertCommand.Execute(null);
     var selectedDoc = (model.DocumentsView.CurrentItem as DocumentViewModel);
     var lineAdded = (selectedDoc.ChordLines.Count == 1);
     Assert.IsTrue(lineAdded, "The line should have been added.");
 }
Example #14
0
 public virtual void Save(DocumentViewModel document)
 {
     if (document.DocumentPath != "")
     {
         SerializeAsFile(document);
     }
     else
     {
         SaveAs(document);
     }
 }
        public void DocumentPlayer_Stop_SetsIsPlayingAndIsPausedToFalse()
        {
            DocumentViewModel document = new DocumentViewModel();
            FakeDocumentPlayer player = new FakeDocumentPlayer(document);
            player.Stop();

            Assert.AreEqual(player.IsPaused, false,
                "IsPlused should be 'false'.");
            Assert.AreEqual(player.IsPlaying, false,
                "IsPlaying should be 'false'.");
        }
Example #16
0
        private void BuildDocument(DocumentViewModel model)
        {
            ChordDocument.PageWidth = 850;
            ChordDocument.PageHeight = 1190;

            char[] sep = { '.' };
            var songTitle = model.Title.Split(sep)[0];

            Run title = new Run(songTitle);
            title.FontSize=40;

            Paragraph titlePar = new Paragraph();
            titlePar.Inlines.Add(title);
            titlePar.TextAlignment = TextAlignment.Center;
            titlePar.Margin = new Thickness(30);

            ChordDocument.Blocks.Add(titlePar);

            foreach (ChordLine line in model.ChordLines)
            {
                var section = new Section();
                var chordsPar = new Paragraph();
                chordsPar.Margin = new Thickness(0, 0, 10, 0);
                var grid = new NoteGrid();
                grid.DataContext = line;
                var gridPar = new Paragraph(new InlineUIContainer(grid));
                gridPar.Margin = new Thickness(10,0,10,0);

                var chords = new Canvas();
                chords.Height = 30;

                foreach (Chord chord in line.Chords)
                {
                    var chordView = new ChordView();
                    chordView.DataContext = chord;
                    chordView.MainBorder.BorderThickness = new Thickness(0);
                    chordView.MainBorder.BorderBrush = Brushes.Transparent;
                    chordView.MainBorder.BitmapEffect = null;
                    chordView.ChordLabel.FontSize = 20;
                    chords.Children.Add(chordView);
                }

                chordsPar.KeepWithNext = true;
                chordsPar.Inlines.Add(new InlineUIContainer(chords));

                section.Blocks.Add(chordsPar);
                section.Blocks.Add(gridPar);

                ChordDocument.Blocks.Add(section);
            }
        }
        public void DocumentVM_ChordLinesCollectionChanged_UpdatesNewFirstLine()
        {
            DocumentViewModel doc = new DocumentViewModel();
            var line1 = new ChordLine();
            var line2 = new ChordLine();
            var line3 = new ChordLine();
            doc.ChordLines.Add(line1);
            doc.ChordLines.Add(line2);
            doc.ChordLines.Add(line3);

            Assert.IsTrue(line1.FirstLine == true, "Line 1 should now be 'FirstLine'.");
            doc.ChordLines.Remove(line1);
            doc.ChordLines.Remove(line2);
            Assert.IsTrue(line3.FirstLine == true, "Line 3 should now be 'FirstLine'.");
        }
Example #18
0
        public virtual void SaveAs(DocumentViewModel document)
        {
            bool? ok;
            SaveFileDialog saveDialog = new SaveFileDialog();
            saveDialog.Filter = "Data files (*.chords)|*.chords;";

            if (!TEST_MODE)
            {
                ok = saveDialog.ShowDialog();
            }
            else
            {
                ok = true;
            }

            if (ok.HasValue && ok.Value == true)
            {
                document.DocumentPath = saveDialog.FileName;
                SerializeAsFile(document);
            }
        }
Example #19
0
        public virtual void Open(ref DocumentViewModel document)
        {
            bool? ok;
            OpenFileDialog openDialog = new OpenFileDialog();
            openDialog.Filter = "Data files (*.chords)|*.chords;";

            if (!TEST_MODE)
            {
                ok = openDialog.ShowDialog();
            }
            else
            {
                ok = true;
            }

            if (ok.HasValue && ok.Value == true)
            {
                document.DocumentPath = openDialog.FileName;
                OpenSerializedFile(ref document);
            }
        }
 public void MainWindowVM_TransposeDown_AllChordsWereTransposed()
 {
     var model = new MainWindowModel();
     var doc = new DocumentViewModel(model);
     var chordLine = new ChordLine();
     var chordA = new StubbChord();
     var chordB = new StubbChord();
     chordLine.Chords.Add(chordA);
     chordLine.Chords.Add(chordB);
     doc.ChordLines.Add(chordLine);
     model.Documents.Add(doc);
     model.TransposeDown.Execute(null);
     var wasTransposed = (chordA.WasTransposedDown && chordB.WasTransposedDown);
     Assert.IsTrue(wasTransposed, "All chords should have been transposed");
 }
Example #21
0
 public override void SaveAs(DocumentViewModel document)
 {
     base.SaveAs(document);
     SaveAsRun = true;
 }
 public override void SaveAs(DocumentViewModel document)
 {
     SaveAsWasRun = true;
 }
 public override void Open(ref DocumentViewModel document)
 {
     document = new DocumentViewModel();
     document.DocumentPath = "C:\\TestDocument.chords";
 }
Example #24
0
 protected void NewDocumentExecute()
 {
     DocumentViewModel newDocument = new DocumentViewModel(this);
     Documents.Add(newDocument);
     DocumentsView.MoveCurrentTo(newDocument);
 }
Example #25
0
 public void OpenDocumentExecute()
 {
     DocumentViewModel newDocument = new DocumentViewModel(this);
     _dataStore.Open(ref newDocument);
     if (newDocument.DocumentPath != "")
     {
         Documents.Add(newDocument);
         newDocument.SetMainWindowModel(this);
         DocumentsView.MoveCurrentTo(newDocument);
     }
 }
Example #26
0
 // -------------------------------------
 // [MEMBERS]
 // -------------------------------------
 public void CloseDocument(DocumentViewModel doc)
 {
     Documents.Remove(doc);
 }
 public void DocumentVM_SetsTitleWhenDocumentPathIsUpdated()
 {
     DocumentViewModel document = new DocumentViewModel();
     document.Title = "";
     document.DocumentPath = "C:\\MyDocument.chords";
     Assert.AreEqual(document.Title, "MyDocument.chords",
         "Title should be equal to the file name.");
 }
 public void DocumentVM_CM_AddLine_AddsChordLine()
 {
     DocumentViewModel document = new DocumentViewModel();
     document.CM_AddLine.Execute(null);
     Assert.AreEqual(document.ChordLines.Count, 1, "There should be 1 line now.");
 }
 public StubbDocumentPlayer(DocumentViewModel model)
     : base(model)
 {
 }
Example #30
0
 public PrintWindow(DocumentViewModel model )
 {
     InitializeComponent();
     DataContext = this;
     BuildDocument(model);
 }