public void Translate_GivenNullCode_ThrowsArgumentNullException()
        {
            Mock <ITemplateBuilder> templateBuilder = new Mock <ITemplateBuilder>();

            var sut = new ForEachCodeSpanTranslator();

            sut.Translate(null, templateBuilder.Object);
        }
        public void Match_GivenNullSpan_ReturnsFalse()
        {
            var sut = new ForEachCodeSpanTranslator();

            var result = sut.Match(null);

            Assert.IsFalse(result);
        }
        public void Match_GivenContentNotForEach_ReturnsFalse()
        {
            var span = SpanHelper.BuildSpan("@Html.HiddenFor(m => m.Id)");

            var sut = new ForEachCodeSpanTranslator();

            var result = sut.Match(span);

            Assert.IsFalse(result);
        }
        public void Match_GivenForEachContentCollectionOnModel_ReturnsTrue()
        {
            var span = SpanHelper.BuildSpan("foreach (var item in Model.Collection) {");

            var sut = new ForEachCodeSpanTranslator();

            var result = sut.Match(span);

            Assert.IsTrue(result);
        }
        public void Match_GivenForEachContentEndingInLineBreak_ReturnsTrue()
        {
            var span = SpanHelper.BuildSpan("foreach (var item in Collection) {\r\n");

            var sut = new ForEachCodeSpanTranslator();

            var result = sut.Match(span);

            Assert.IsTrue(result);
        }
        public void Translate_CallsTemplateBuilder()
        {
            Mock <ITemplateBuilder> templateBuilder = new Mock <ITemplateBuilder>();

            var sut = new ForEachCodeSpanTranslator();

            sut.Translate("@foreach (var item in Collection) {", templateBuilder.Object);

            templateBuilder.Verify(t => t.AddCodeBlock("for(var __i=0; __i<Collection.length; __i++) { var item = Collection[__i]; "));
        }
        public void Translate_GivenNullTemplateBuilder_ThrowsArgumentNullException()
        {
            var sut = new ForEachCodeSpanTranslator();

            sut.Translate("a", null);
        }
        public void SupportedType_IsForEach()
        {
            var sut = new ForEachCodeSpanTranslator();

            Assert.AreEqual(StatementTypes.Foreach, sut.SupportedType);
        }
        public void ImplementsInterface()
        {
            var sut = new ForEachCodeSpanTranslator();

            Assert.IsInstanceOfType(sut, typeof(ICodeSpanTranslator));
        }