/// <summary></summary>
        /// <param name="connectionModeController"></param>
        /// <param name="connectionStateController"></param>
        /// <param name="sendCommandController"></param>
        /// <param name="writeController"></param>
        /// <param name="exchangeViewController"></param>
        public ExchangeGroup(IConnectionModeController connectionModeController, IConnectionStateController connectionStateController, ICommandController sendCommandController,
                             IWriteController writeController, IExchangeViewController exchangeViewController)
        {
            if (connectionModeController == null)
            {
                throw new ArgumentNullException("connectionModeController");
            }
            if (connectionStateController == null)
            {
                throw new ArgumentNullException("connectionStateController");
            }
            if (sendCommandController == null)
            {
                throw new ArgumentNullException("sendCommandController");
            }
            if (writeController == null)
            {
                throw new ArgumentNullException("writeController");
            }
            if (exchangeViewController == null)
            {
                throw new ArgumentNullException("exchangeViewController");
            }

            this._connectionModeController  = connectionModeController;
            this._connectionStateController = connectionStateController;
            this._sendCommandController     = sendCommandController;
            this._writeController           = writeController;
            this._exchangeViewController    = exchangeViewController;
        }
        public void ExportControllerExportsFiles()
        {
            // INITIALISE an IReadController, IWriteController, IFilterController, IReportController as their respective
            // concrete implementations, ReadController, WriteController, FilterController and ReportController
            readController   = new ReadController();
            writeController  = new WriteController();
            filterController = new FilterController();
            reportController = new ReportController();

            // INITIALISE the IExportController
            exportController = new ExportController(readController, writeController, filterController, reportController);

            conversationConfig = new CommandLineArgumentParser().ParseCommandLineArguments(new string[] { "chat.txt", "chatE.json" }, filterController);

            exportController.ExportConversation(conversationConfig.inputFilePath, conversationConfig.outputFilePath);

            var serializedConversation = new StreamReader(new FileStream("chatE.json", FileMode.Open)).ReadToEnd();

            Conversation savedConversation = JsonConvert.DeserializeObject <Conversation>(serializedConversation);

            Assert.That(savedConversation.Name, Is.EqualTo("My Conversation"));

            var messages = savedConversation.Messages.ToList();

            Assert.That(savedConversation.Report.mostActiveUser, Is.EqualTo("angus"));

            Assert.That(savedConversation.Report.userActivityRanking[0], Is.EqualTo("Rank 1 is angus with 4 messages"));
            Assert.That(savedConversation.Report.userActivityRanking[1], Is.EqualTo("Rank 2 is bob with 3 messages"));
            Assert.That(savedConversation.Report.userActivityRanking[2], Is.EqualTo("Rank 3 is mike with 2 messages"));

            Assert.That(messages[0].Timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470901)));
            Assert.That(messages[0].SenderId, Is.EqualTo("bob"));
            Assert.That(messages[0].Content, Is.EqualTo("Hello there!"));

            Assert.That(messages[1].Timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470905)));
            Assert.That(messages[1].SenderId, Is.EqualTo("mike"));
            Assert.That(messages[1].Content, Is.EqualTo("how are you?"));

            Assert.That(messages[2].Timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470906)));
            Assert.That(messages[2].SenderId, Is.EqualTo("bob"));
            Assert.That(messages[2].Content, Is.EqualTo("I'm good thanks, do you like pie?"));

            Assert.That(messages[3].Timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470910)));
            Assert.That(messages[3].SenderId, Is.EqualTo("mike"));
            Assert.That(messages[3].Content, Is.EqualTo("no, let me ask Angus..."));

            Assert.That(messages[4].Timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470912)));
            Assert.That(messages[4].SenderId, Is.EqualTo("angus"));
            Assert.That(messages[4].Content, Is.EqualTo("Hell yes! Are we buying some pie?"));

            Assert.That(messages[5].Timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470914)));
            Assert.That(messages[5].SenderId, Is.EqualTo("bob"));
            Assert.That(messages[5].Content, Is.EqualTo("No, just want to know if there's anybody else in the pie society..."));

            Assert.That(messages[6].Timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470915)));
            Assert.That(messages[6].SenderId, Is.EqualTo("angus"));
            Assert.That(messages[6].Content, Is.EqualTo("YES! I'm the head pie eater there..."));
        }
示例#3
0
 /// <summary>
 /// CONSTRUCTOR for ExportController class, takes 2 params
 /// </summary>
 /// <param name="readController"> <see cref="IReadController"> variable </param>
 /// <param name="writeController"> <see cref="IWriteController"> variable </param>
 public ExportController(IReadController readController, IWriteController writeController,
                         IFilterController filterController, IReportController reportController)
 {
     // SET the read, write and filter controller variables passed in
     // to their respective local variables in this class
     this.readController   = readController;
     this.writeController  = writeController;
     this.filterController = filterController;
     this.reportController = reportController;
 }
示例#4
0
文件: Form1.cs 项目: TIN13a/Projects
        public Patientenstudie()
        {
            InitializeComponent();

            // Arzt (ArztWriter.cs) und Patient (PatientWriter.cs) Writer initialisieren
            arztWriter = new ArztWriter();
            patientWriter = new PatientWriter();

            // Arzt (ArztReader.cs) und Patient (PatinetReader.cs) Reader initialisieren
            arztReader = new ArztReader();
            patientReader = new PatientReader();
        }
示例#5
0
        public void WriteControllerThrowsDirectoryNotFoundException()
        {
            // INITIALISE the writeController to be tested
            writeController = new WriteController();
            MakeConverSation();


            Assert.That(() => writeController.WriteConversation(conversation, "NonExistentDirectory/outputTest.json"),
                        Throws.Exception.TypeOf <ArgumentException>().With.InnerException.TypeOf <DirectoryNotFoundException>());

            var exception = Assert.Throws <ArgumentException>(() => writeController.WriteConversation(conversation, "NonExistentDirectory/outputTest.json"));

            Assert.That(exception.Message, Is.EqualTo("Path NonExistentDirectory/outputTest.json is invalid"));
        }
        public void ExportControllerExportsFilesWithMultipleFilters2()
        {
            // INITIALISE an IReadController, IWriteController, IFilterController, IReportController as their respective
            // concrete implementations, ReadController, WriteController, FilterController and ReportController
            readController   = new ReadController();
            writeController  = new WriteController();
            filterController = new FilterController();
            reportController = new ReportController();

            // INITIALISE the IExportController
            exportController = new ExportController(readController, writeController, filterController, reportController);

            conversationConfig =
                new CommandLineArgumentParser().ParseCommandLineArguments(
                    new string[] { "chat.txt", "chatH.json", "-filter-user", "bob", "-filter-blacklist-word", "pie|society", "-filter-obfuscate" },
                    filterController);

            exportController.ExportConversation(conversationConfig.inputFilePath, conversationConfig.outputFilePath);

            var serializedConversation = new StreamReader(new FileStream("chatH.json", FileMode.Open)).ReadToEnd();

            Conversation savedConversation = JsonConvert.DeserializeObject <Conversation>(serializedConversation);

            Assert.That(savedConversation.Name, Is.EqualTo("My Conversation"));

            var messages = savedConversation.Messages.ToList();

            Assert.That(savedConversation.Report.mostActiveUser, Is.EqualTo("User3071"));

            Assert.That(savedConversation.Report.userActivityRanking[0], Is.EqualTo("Rank 1 is User3071 with 3 messages"));

            Assert.That(messages[0].Timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470901)));
            Assert.That(messages[0].SenderId, Is.EqualTo("User3071"));
            Assert.That(messages[0].Content, Is.EqualTo("Hello there!"));

            Assert.That(messages[1].Timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470906)));
            Assert.That(messages[1].SenderId, Is.EqualTo("User3071"));
            Assert.That(messages[1].Content, Is.EqualTo("I'm good thanks, do you like \\*redacted\\*?"));

            Assert.That(messages[2].Timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470914)));
            Assert.That(messages[2].SenderId, Is.EqualTo("User3071"));
            Assert.That(messages[2].Content, Is.EqualTo("No, just want to know if there's anybody else in the \\*redacted\\* \\*redacted\\*..."));
        }
示例#7
0
        public void WriteControllerWritesFile()
        {
            // INITIALISE the writeController to be tested
            writeController = new WriteController();
            MakeConverSation();
            // SET the conversation to the return value of the writeController
            writeController.WriteConversation(conversation, "outputTest.json");
            // INITIALISE a list of messages to read
            IList <Message> msgs = conversation.Messages.ToList();

            var serializedConversation = new StreamReader(new FileStream("outputTest.json", FileMode.Open)).ReadToEnd();

            var savedConversation = JsonConvert.DeserializeObject <Conversation>(serializedConversation);

            Assert.That(msgs[0].Timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470901)));
            Assert.That(msgs[0].SenderId, Is.EqualTo("bob"));
            Assert.That(msgs[0].Content, Is.EqualTo("Hello there!"));

            Assert.That(msgs[1].Timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470905)));
            Assert.That(msgs[1].SenderId, Is.EqualTo("mike"));
            Assert.That(msgs[1].Content, Is.EqualTo("how are you?"));

            Assert.That(msgs[2].Timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470906)));
            Assert.That(msgs[2].SenderId, Is.EqualTo("bob"));
            Assert.That(msgs[2].Content, Is.EqualTo("I'm good thanks, do you like pie?"));

            Assert.That(msgs[3].Timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470910)));
            Assert.That(msgs[3].SenderId, Is.EqualTo("mike"));
            Assert.That(msgs[3].Content, Is.EqualTo("no, let me ask Angus..."));

            Assert.That(msgs[4].Timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470912)));
            Assert.That(msgs[4].SenderId, Is.EqualTo("angus"));
            Assert.That(msgs[4].Content, Is.EqualTo("Hell yes! Are we buying some pie?"));

            Assert.That(msgs[5].Timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470914)));
            Assert.That(msgs[5].SenderId, Is.EqualTo("bob"));
            Assert.That(msgs[5].Content, Is.EqualTo("No, just want to know if there's anybody else in the pie society..."));

            Assert.That(msgs[6].Timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470915)));
            Assert.That(msgs[6].SenderId, Is.EqualTo("angus"));
            Assert.That(msgs[6].Content, Is.EqualTo("YES! I'm the head pie eater there..."));
        }