Пример #1
0
        // Preprocessing: doppelte Whitespaces, doppelte Linefeeds; WS vor LF; Nach Punkt Zeilenumbruch
        //                  leeren Sätze nach LF, Komma im Satz => Nur Satzanfang!

        public virtual string Compile(string buddyText)
        {
            BuddyTextProcessor buddyTextProcessor = new BuddyTextProcessor();

            buddyTextProcessor.ProcessText(buddyText);
            return(null);
        }
        public void FullFeaturedText_Ok()
        {
            // Arrange
            Stream prgStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Bumblebee.buddy.compiler.tests.resources.BuddyFullFeaturedTestCase.btc");

            if (prgStream == null)
            {
                Assert.Fail("'BuddyFullFeaturedTestCase.btc' not found!");
            }

            string testCase = new StreamReader(prgStream).ReadToEnd();

            // Act
            BuddyTextProcessor processor = new BuddyTextProcessor();
            BuddyTextInfo      result    = processor.ProcessText(testCase);

            // Assert
            Assert.IsNotNull(result, "result != null");
            Assert.AreEqual(8, result.Steps.Length, "result.Steps.Length != 8");

            Assert.AreEqual("EGUB", result.ApplicationText, "result.ApplicationText != 'EGUB'");
            Assert.AreEqual("Anmeldung an EGUB", result.UseCaseText, "result.UseCaseText != 'Anmeldung an EGUB'");
            Assert.AreEqual("Erfolgreiche Anmeldung", result.ScenarioText, "result.ScenarioText != 'Erfolgreiche Anmeldung'");
            Assert.AreEqual("-", result.Precondition, "result.Precondition != '-'");
            CollectionAssert.AreEqual(new[] { new BuddyTextParameter("piNr", "\"000\""), new BuddyTextParameter("pass", "\"Passw001\""), }, result.Parameters);

            Assert.AreEqual("Starte \"C:\\EGUB\\EGUB.exe\".", result.Steps[0]);
            Assert.AreEqual("Warte bis Fenster <WindowAnmeldung> sichtbar ist.", result.Steps[1]);
            Assert.AreEqual("Wähle in <ListboxPinr> den Wert $piNr aus.", result.Steps[2]);
            Assert.AreEqual("Setze in <TextboxPass> den Wert $pass ein.", result.Steps[3]);
            Assert.AreEqual("Klicke den Button <ButtonAnmelden> einfach.", result.Steps[4]);
            Assert.AreEqual("Warte bis Fenster <MainWindowEgub> sichtbar ist.", result.Steps[5]);
            Assert.AreEqual("Klicke den Button <MainWindowClose> einfach.", result.Steps[6]);
            Assert.AreEqual("Warte bis Anwendung geschlossen ist.", result.Steps[7]);
        }
        public void NullTextProcessing_Ok()
        {
            BuddyTextProcessor processor = new BuddyTextProcessor();
            BuddyTextInfo      result    = processor.ProcessText(null);

            Assert.IsNull(result, "result != null");
        }
        public void FullFeaturedImportingText_Ok()
        {
            // Arrange
            Stream prgStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Bumblebee.buddy.compiler.tests.resources.BuddyFullFeaturedImportingTestCase.btc");

            if (prgStream == null)
            {
                Assert.Fail("'BuddyFullFeaturedImportingTestCase.btc' not found!");
            }

            string testCase = new StreamReader(prgStream).ReadToEnd();

            // Act
            BuddyTextProcessor processor = new BuddyTextProcessor();
            BuddyTextInfo      result    = processor.ProcessText(testCase);

            // Assert
            Assert.IsNotNull(result, "result != null");
            Assert.AreEqual(7, result.Steps.Length, "result.Steps.Length != 8");

            Assert.AreEqual("EGUB", result.ApplicationText, "result.ApplicationText != 'EGUB'");
            Assert.AreEqual("*", result.VersionText, "result.VersionText != '*'");
            Assert.AreEqual("Anmeldung an EGUB", result.UseCaseText, "result.UseCaseText != 'Anmeldung an EGUB'");
            Assert.AreEqual("Erfolgreiche Anmeldung", result.ScenarioText, "result.ScenarioText != 'Erfolgreiche Anmeldung'");
            Assert.AreEqual("-", result.Precondition, "result.Precondition != '-'");
            CollectionAssert.AreEqual(new[] { new BuddyTextParameter("piNr", "\"000\""), new BuddyTextParameter("pass", "\"Passw001\""), }, result.Parameters);

            Assert.AreEqual("Starte \"C:\\EGUB\\EGUB.exe\".", result.Steps[0]);
            Assert.AreEqual("Führe [Anmeldung] ($piNr, $pass) aus.", result.Steps[1]);
            Assert.AreEqual("Führe [Öffnen und Schließen] aus.", result.Steps[2]);
            Assert.AreEqual("Führe [Neustart aus dem Modul heraus] (\"Adresse\", \"Mitarbeiter\", $modul) aus.", result.Steps[3]);
            Assert.AreEqual("Warte bis Fenster <MainWindowEgub> sichtbar ist.", result.Steps[4]);
            Assert.AreEqual("Klicke den Button <MainWindowClose> einfach.", result.Steps[5]);
            Assert.AreEqual("Warte bis Anwendung geschlossen ist.", result.Steps[6]);
        }
Пример #5
0
 /// <summary>
 /// Creates a new instance.
 /// </summary>
 /// <exception cref="BuddyCompilerException"/>
 public BuddyCompiler()
 {
     try {
         _buddyTextProcessor    = new BuddyTextProcessor();
         _instructionTranslator = new InstructionTranslator();
         _importPathProvider    = NullImportPathProvider.Instance;
     } catch (Exception ex) {
         throw new BuddyCompilerException("Error on initializing Buddy Compiler", ex);
     }
 }
        public void ProcessText()
        {
            // Arrange
            string buddyText = GetBuddyTextForTest();

            // Act
            BuddyTextProcessor buddyTextProcessor = new BuddyTextProcessor();
            TestcaseContext    testcaseContext    = buddyTextProcessor.ProcessText(buddyText);

            // Assert
            Assert.IsNotNull(testcaseContext, "testcaseContext != null");

            ApplicationContext appCtx = testcaseContext.Application;

            Assert.IsNotNull(appCtx, "appCtx != null");
            Assert.AreEqual("Verwaltung", appCtx.Name, "appCtx.Name != Verwaltung");

            Version appVrsn = appCtx.Version;

            Assert.IsNotNull(appVrsn, "appVrsn != null");
            Assert.AreEqual("9.512", appVrsn.Min, "appVrsn.Min != 9.512");
            Assert.AreEqual("*", appVrsn.Max, "appVrsn.Max != *");

            UsecaseContext usecaseCtx = testcaseContext.Usecase;

            Assert.IsNotNull(usecaseCtx, "usecaseCtx != null");
            Assert.AreEqual("Mitarbeitermodul von GTÜ", usecaseCtx.Name, "usecaseCtx.Name has unexpected value");

            ScenarioContext sceneCtx = testcaseContext.Scenario;

            Assert.IsNotNull(sceneCtx, "sceneCtx != null");
            Assert.AreEqual("1. Grundtest ", sceneCtx.Name, "sceneCtx.Name has unexpected value");

            ScenarioParameter[] sceneArgs = sceneCtx.ScenarioParameters;
            Assert.IsNotNull(sceneArgs, "sceneArgs != null");
            Assert.AreEqual(3, sceneArgs.Length, "sceneArgs.Length != 3");

            Assert.AreEqual("piNr", sceneArgs[0].Name, "sceneArgs[0].Name != piNr");
            Assert.AreEqual("\"001\"", sceneArgs[0].Value, "sceneArgs[0].Value != \"001\"");
            Assert.AreEqual("piPass", sceneArgs[1].Name, "sceneArgs[1].Name != piPass");
            Assert.AreEqual("\"Passw001\"", sceneArgs[1].Value, "sceneArgs[1].Value != \"Passw001\"");
            Assert.AreEqual("tabelle", sceneArgs[2].Name, "sceneArgs[2].Name != tabelle");
            Assert.AreEqual("\"C:\\daten\\lfz.xls\"", sceneArgs[2].Value, "sceneArgs[2].Value != \"C:\\daten\\lfz.xls\"");

            Import[] importSet = testcaseContext.Imports;
            Assert.IsNotNull(importSet, "importSet != null");
            Assert.AreEqual(2, importSet.Length, "importSet.Length != 2");

            Assert.AreEqual("Verwaltung.s.Mitarbeitermodul.Meine_Daten_bearbeiten", importSet[0].Name, "importSet[0].Name has unexpected value");
            Assert.AreEqual("Verwaltung.s.Mitarbeitermodul.Rechte_wiederherstellen", importSet[1].Name, "importSet[1].Name has unexpected value");

            StepsContext stepsContext = testcaseContext.Steps;

            Assert.IsNotNull(stepsContext, "stepsContext != null");

            DirectiveContext[] directiveSet = stepsContext.Directives;
            Assert.IsNotNull(directiveSet, "directiveSet != null");
            Assert.AreEqual(8, directiveSet.Length, "directiveSet.Length != 8");

            DirectiveContext frstDir = directiveSet[0];

            Assert.AreEqual(5, frstDir.References.Length, "[1] directive: Unexpected reference count");
            Assert.AreEqual("Wähle", frstDir.References[0].Value, "[1] directive: Unexpected verb");
            Assert.IsAssignableFrom <ParameterReference>(frstDir.References[1], "[1] directive: Unexpected reference type");
            Assert.AreEqual("piNr", frstDir.References[1].Value, "[1] directive: Unexpected reference value");
        }