001/*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements.  See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership.  The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License.  You may obtain a copy of the License at
009 *
010 *   http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied.  See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 */
019package org.apache.maven.scm.provider;
020
021import java.io.File;
022import java.util.ArrayList;
023import java.util.Collections;
024import java.util.Date;
025import java.util.List;
026
027import org.apache.maven.scm.CommandParameters;
028import org.apache.maven.scm.ScmBranch;
029import org.apache.maven.scm.ScmBranchParameters;
030import org.apache.maven.scm.ScmException;
031import org.apache.maven.scm.ScmFile;
032import org.apache.maven.scm.ScmFileSet;
033import org.apache.maven.scm.ScmTagParameters;
034import org.apache.maven.scm.ScmVersion;
035import org.apache.maven.scm.command.add.AddScmResult;
036import org.apache.maven.scm.command.blame.BlameScmRequest;
037import org.apache.maven.scm.command.blame.BlameScmResult;
038import org.apache.maven.scm.command.branch.BranchScmResult;
039import org.apache.maven.scm.command.changelog.ChangeLogScmRequest;
040import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
041import org.apache.maven.scm.command.checkin.CheckInScmResult;
042import org.apache.maven.scm.command.checkout.CheckOutScmResult;
043import org.apache.maven.scm.command.diff.DiffScmResult;
044import org.apache.maven.scm.command.edit.EditScmResult;
045import org.apache.maven.scm.command.export.ExportScmResult;
046import org.apache.maven.scm.command.info.InfoScmResult;
047import org.apache.maven.scm.command.list.ListScmResult;
048import org.apache.maven.scm.command.mkdir.MkdirScmResult;
049import org.apache.maven.scm.command.remoteinfo.RemoteInfoScmResult;
050import org.apache.maven.scm.command.remove.RemoveScmResult;
051import org.apache.maven.scm.command.status.StatusScmResult;
052import org.apache.maven.scm.command.tag.TagScmResult;
053import org.apache.maven.scm.command.unedit.UnEditScmResult;
054import org.apache.maven.scm.command.untag.UntagScmResult;
055import org.apache.maven.scm.command.update.UpdateScmResult;
056import org.apache.maven.scm.repository.ScmRepository;
057import org.apache.maven.scm.repository.ScmRepositoryException;
058import org.apache.maven.scm.repository.UnknownRepositoryStructure;
059
060/**
061 * Stub implementation of ScmProvider for unit testing purposes.
062 * It allows setting the expected results that the different methods will return.
063 * More information about Stubs on
064 * <a href="http://martinfowler.com/bliki/TestDouble.html">Martin Fowler's TestDouble</a>
065 *
066 * @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
067 *
068 */
069public class ScmProviderStub implements ScmProvider {
070
071    private String scmType, scmSpecificFilename;
072
073    private boolean requiresEditmode;
074
075    private ScmProviderRepository scmProviderRepository = new ScmProviderRepositoryStub();
076
077    private List<String> errors = new ArrayList<>();
078
079    private AddScmResult addScmResult;
080
081    private BranchScmResult branchScmResult;
082
083    private CheckInScmResult checkInScmResult;
084
085    private CheckOutScmResult checkOutScmResult;
086
087    private ChangeLogScmResult changeLogScmResult;
088
089    private DiffScmResult diffScmResult;
090
091    private RemoveScmResult removeScmResult;
092
093    private StatusScmResult statusScmResult;
094
095    private TagScmResult tagScmResult;
096
097    private UpdateScmResult updateScmResult;
098
099    private EditScmResult editScmResult;
100
101    private UnEditScmResult unEditScmResult;
102
103    private ListScmResult listScmResult;
104
105    private ExportScmResult exportScmResult;
106
107    private BlameScmResult blameScmResult;
108
109    private MkdirScmResult mkdirScmResult;
110
111    private UntagScmResult untagScmResult;
112
113    /**
114     * Create a new ScmProviderStub with bogus (not null) attributes
115     */
116    public ScmProviderStub() {
117        setScmSpecificFilename("");
118        setAddScmResult(new AddScmResult("", Collections.<ScmFile>emptyList()));
119        setBranchScmResult(new BranchScmResult("", Collections.<ScmFile>emptyList()));
120        setChangeLogScmResult(new ChangeLogScmResult("", "", "", true));
121        setCheckInScmResult(new CheckInScmResult("", "", "", true));
122        setCheckOutScmResult(new CheckOutScmResult("", "", "", true));
123        setDiffScmResult(new DiffScmResult("", "", "", true));
124        setEditScmResult(new EditScmResult("", "", "", true));
125        setExportScmResult(new ExportScmResult("", "", "", true));
126        setRemoveScmResult(new RemoveScmResult("", "", "", true));
127        setStatusScmResult(new StatusScmResult("", "", "", true));
128        setTagScmResult(new TagScmResult("", "", "", true));
129        setUnEditScmResult(new UnEditScmResult("", "", "", true));
130        setUntagScmResult(new UntagScmResult("", "", "", true));
131        setUpdateScmResult(new UpdateScmResult("", "", "", true));
132        setBlameScmResult(new BlameScmResult("", "", "", true));
133        setMkdirScmResult(new MkdirScmResult("", "", "", true));
134    }
135
136    /**
137     * {@inheritDoc}
138     */
139    public String sanitizeTagName(String tag) {
140        return tag;
141    }
142
143    /**
144     * {@inheritDoc}
145     */
146    public boolean validateTagName(String tag) {
147        return true;
148    }
149
150    /**
151     * {@inheritDoc}
152     */
153    public String getScmType() {
154        return scmType;
155    }
156
157    public void setScmSpecificFilename(String scmSpecificFilename) {
158        this.scmSpecificFilename = scmSpecificFilename;
159    }
160
161    public boolean requiresEditMode() {
162        return requiresEditmode;
163    }
164
165    public void setAddScmResult(AddScmResult addScmResult) {
166        this.addScmResult = addScmResult;
167    }
168
169    public AddScmResult getAddScmResult() {
170        return addScmResult;
171    }
172
173    public void setBranchScmResult(BranchScmResult branchScmResult) {
174        this.branchScmResult = branchScmResult;
175    }
176
177    public BranchScmResult getBranchScmResult() {
178        return branchScmResult;
179    }
180
181    public void setCheckInScmResult(CheckInScmResult checkInScmResult) {
182        this.checkInScmResult = checkInScmResult;
183    }
184
185    public CheckInScmResult getCheckInScmResult() {
186        return checkInScmResult;
187    }
188
189    public void setCheckOutScmResult(CheckOutScmResult checkOutScmResult) {
190        this.checkOutScmResult = checkOutScmResult;
191    }
192
193    public CheckOutScmResult getCheckOutScmResult() {
194        return checkOutScmResult;
195    }
196
197    public void setChangeLogScmResult(ChangeLogScmResult changeLogScmResult) {
198        this.changeLogScmResult = changeLogScmResult;
199    }
200
201    public ChangeLogScmResult getChangeLogScmResult() {
202        return changeLogScmResult;
203    }
204
205    public void setDiffScmResult(DiffScmResult diffScmResult) {
206        this.diffScmResult = diffScmResult;
207    }
208
209    public DiffScmResult getDiffScmResult() {
210        return diffScmResult;
211    }
212
213    public ExportScmResult getExportScmResult() {
214        return exportScmResult;
215    }
216
217    public void setExportScmResult(ExportScmResult exportScmResult) {
218        this.exportScmResult = exportScmResult;
219    }
220
221    public void setTagScmResult(TagScmResult tagScmResult) {
222        this.tagScmResult = tagScmResult;
223    }
224
225    public TagScmResult getTagScmResult() {
226        return tagScmResult;
227    }
228
229    public void setUntagScmResult(UntagScmResult untagScmResult) {
230        this.untagScmResult = untagScmResult;
231    }
232
233    public UntagScmResult getUntagScmResult() {
234        return untagScmResult;
235    }
236
237    public void setRemoveScmResult(RemoveScmResult removeScmResult) {
238        this.removeScmResult = removeScmResult;
239    }
240
241    public RemoveScmResult getRemoveScmResult() {
242        return removeScmResult;
243    }
244
245    public void setStatusScmResult(StatusScmResult statusScmResult) {
246        this.statusScmResult = statusScmResult;
247    }
248
249    public StatusScmResult getStatusScmResult() {
250        return statusScmResult;
251    }
252
253    public void setUpdateScmResult(UpdateScmResult updateScmResult) {
254        this.updateScmResult = updateScmResult;
255    }
256
257    public UpdateScmResult getUpdateScmResult() {
258        return updateScmResult;
259    }
260
261    public void setEditScmResult(EditScmResult editScmResult) {
262        this.editScmResult = editScmResult;
263    }
264
265    public EditScmResult getEditScmResult() {
266        return editScmResult;
267    }
268
269    public void setUnEditScmResult(UnEditScmResult unEditScmResult) {
270        this.unEditScmResult = unEditScmResult;
271    }
272
273    public UnEditScmResult getUnEditScmResult() {
274        return unEditScmResult;
275    }
276
277    public void setListScmResult(ListScmResult listScmResult) {
278        this.listScmResult = listScmResult;
279    }
280
281    public ListScmResult getListScmResult() {
282        return listScmResult;
283    }
284
285    public void setBlameScmResult(BlameScmResult blameScmResult) {
286        this.blameScmResult = blameScmResult;
287    }
288
289    public BlameScmResult getBlameScmResult() {
290        return blameScmResult;
291    }
292
293    public MkdirScmResult getMkdirScmResult() {
294        return mkdirScmResult;
295    }
296
297    public void setMkdirScmResult(MkdirScmResult mkdirScmResult) {
298        this.mkdirScmResult = mkdirScmResult;
299    }
300
301    /**
302     * {@inheritDoc}
303     */
304    public ScmProviderRepository makeProviderScmRepository(String scmSpecificUrl, char delimiter)
305            throws ScmRepositoryException {
306        return scmProviderRepository;
307    }
308
309    /**
310     * {@inheritDoc}
311     */
312    public ScmProviderRepository makeProviderScmRepository(File path)
313            throws ScmRepositoryException, UnknownRepositoryStructure {
314        return scmProviderRepository;
315    }
316
317    /**
318     * {@inheritDoc}
319     */
320    public List<String> validateScmUrl(String scmSpecificUrl, char delimiter) {
321        return errors;
322    }
323
324    /**
325     * {@inheritDoc}
326     */
327    public String getScmSpecificFilename() {
328        return scmSpecificFilename;
329    }
330
331    /**
332     * {@inheritDoc}
333     */
334    public AddScmResult add(ScmRepository repository, ScmFileSet fileSet) throws ScmException {
335        return getAddScmResult();
336    }
337
338    /**
339     * {@inheritDoc}
340     */
341    public AddScmResult add(ScmRepository repository, ScmFileSet fileSet, String message) throws ScmException {
342        return getAddScmResult();
343    }
344
345    public AddScmResult add(ScmRepository repository, ScmFileSet fileSet, CommandParameters commandParameters)
346            throws ScmException {
347        return getAddScmResult();
348    }
349
350    /**
351     * {@inheritDoc}
352     */
353    public BranchScmResult branch(ScmRepository repository, ScmFileSet fileSet, String branchName) throws ScmException {
354        return getBranchScmResult();
355    }
356
357    /**
358     * {@inheritDoc}
359     */
360    public BranchScmResult branch(ScmRepository repository, ScmFileSet fileSet, String branchName, String message)
361            throws ScmException {
362        return getBranchScmResult();
363    }
364
365    /**
366     * {@inheritDoc}
367     */
368    public BranchScmResult branch(
369            ScmRepository repository, ScmFileSet fileSet, String branchName, ScmBranchParameters scmBranchParameters)
370            throws ScmException {
371        return getBranchScmResult();
372    }
373
374    /**
375     * {@inheritDoc}
376     */
377    public ChangeLogScmResult changeLog(
378            ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate, int numDays, String branch)
379            throws ScmException {
380        return getChangeLogScmResult();
381    }
382
383    /**
384     * {@inheritDoc}
385     */
386    public ChangeLogScmResult changeLog(
387            ScmRepository repository,
388            ScmFileSet fileSet,
389            Date startDate,
390            Date endDate,
391            int numDays,
392            String branch,
393            String datePattern)
394            throws ScmException {
395        return getChangeLogScmResult();
396    }
397
398    /**
399     * {@inheritDoc}
400     */
401    public ChangeLogScmResult changeLog(ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag)
402            throws ScmException {
403        return getChangeLogScmResult();
404    }
405
406    /**
407     * {@inheritDoc}
408     */
409    public ChangeLogScmResult changeLog(
410            ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag, String datePattern)
411            throws ScmException {
412        return getChangeLogScmResult();
413    }
414
415    /**
416     * {@inheritDoc}
417     */
418    public ChangeLogScmResult changeLog(
419            ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate, int numDays, ScmBranch branch)
420            throws ScmException {
421        return getChangeLogScmResult();
422    }
423
424    /**
425     * {@inheritDoc}
426     */
427    public ChangeLogScmResult changeLog(
428            ScmRepository repository,
429            ScmFileSet fileSet,
430            Date startDate,
431            Date endDate,
432            int numDays,
433            ScmBranch branch,
434            String datePattern)
435            throws ScmException {
436        return getChangeLogScmResult();
437    }
438
439    public ChangeLogScmResult changeLog(ChangeLogScmRequest scmRequest) throws ScmException {
440        return getChangeLogScmResult();
441    }
442
443    /**
444     * {@inheritDoc}
445     */
446    public ChangeLogScmResult changeLog(
447            ScmRepository repository, ScmFileSet fileSet, ScmVersion startVersion, ScmVersion endVersion)
448            throws ScmException {
449        return getChangeLogScmResult();
450    }
451
452    /**
453     * {@inheritDoc}
454     */
455    public ChangeLogScmResult changeLog(
456            ScmRepository repository,
457            ScmFileSet fileSet,
458            ScmVersion startRevision,
459            ScmVersion endRevision,
460            String datePattern)
461            throws ScmException {
462        return getChangeLogScmResult();
463    }
464
465    /**
466     * {@inheritDoc}
467     */
468    public CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, String tag, String message)
469            throws ScmException {
470        return getCheckInScmResult();
471    }
472
473    /**
474     * {@inheritDoc}
475     */
476    public CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, String message) throws ScmException {
477        return getCheckInScmResult();
478    }
479
480    /**
481     * {@inheritDoc}
482     */
483    public CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, ScmVersion revision, String message)
484            throws ScmException {
485        return getCheckInScmResult();
486    }
487
488    @Override
489    public CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters)
490            throws ScmException {
491        return getCheckInScmResult();
492    }
493
494    /**
495     * {@inheritDoc}
496     */
497    public CheckOutScmResult checkOut(ScmRepository scmRepository, ScmFileSet scmFileSet, String tag, boolean recursive)
498            throws ScmException {
499        return getCheckOutScmResult();
500    }
501
502    /**
503     * {@inheritDoc}
504     */
505    public CheckOutScmResult checkOut(ScmRepository repository, ScmFileSet fileSet, String tag) throws ScmException {
506        return getCheckOutScmResult();
507    }
508
509    /**
510     * {@inheritDoc}
511     */
512    public CheckOutScmResult checkOut(ScmRepository repository, ScmFileSet fileSet) throws ScmException {
513        return getCheckOutScmResult();
514    }
515
516    /**
517     * {@inheritDoc}
518     */
519    public CheckOutScmResult checkOut(ScmRepository repository, ScmFileSet fileSet, ScmVersion version)
520            throws ScmException {
521        return getCheckOutScmResult();
522    }
523
524    /**
525     * {@inheritDoc}
526     */
527    public CheckOutScmResult checkOut(ScmRepository scmRepository, ScmFileSet scmFileSet, boolean recursive)
528            throws ScmException {
529        return getCheckOutScmResult();
530    }
531
532    /**
533     * {@inheritDoc}
534     */
535    public CheckOutScmResult checkOut(
536            ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion version, boolean recursive)
537            throws ScmException {
538        return getCheckOutScmResult();
539    }
540
541    @Override
542    public CheckOutScmResult checkOut(
543            ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion version, CommandParameters commandParameters)
544            throws ScmException {
545        return getCheckOutScmResult();
546    }
547
548    /**
549     * {@inheritDoc}
550     */
551    public DiffScmResult diff(ScmRepository repository, ScmFileSet fileSet, String startRevision, String endRevision)
552            throws ScmException {
553        return getDiffScmResult();
554    }
555
556    /**
557     * {@inheritDoc}
558     */
559    public DiffScmResult diff(
560            ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion startVersion, ScmVersion endVersion)
561            throws ScmException {
562        return getDiffScmResult();
563    }
564
565    /**
566     * @return getUpdateScmResult() always
567     */
568    public UpdateScmResult update(
569            ScmRepository repository,
570            ScmFileSet fileSet,
571            String tag,
572            Date lastUpdate,
573            String datePattern,
574            boolean runChangelog)
575            throws ScmException {
576        return getUpdateScmResult();
577    }
578
579    /**
580     * {@inheritDoc}
581     */
582    public EditScmResult edit(ScmRepository repository, ScmFileSet fileSet) throws ScmException {
583        return getEditScmResult();
584    }
585
586    /**
587     * {@inheritDoc}
588     */
589    public ExportScmResult export(ScmRepository repository, ScmFileSet fileSet, String tag) throws ScmException {
590        return getExportScmResult();
591    }
592
593    /**
594     * {@inheritDoc}
595     */
596    public ExportScmResult export(ScmRepository repository, ScmFileSet fileSet, String tag, String outputDirectory)
597            throws ScmException {
598        return getExportScmResult();
599    }
600
601    /**
602     * {@inheritDoc}
603     */
604    public ExportScmResult export(ScmRepository repository, ScmFileSet fileSet) throws ScmException {
605        return getExportScmResult();
606    }
607
608    /**
609     * {@inheritDoc}
610     */
611    public ExportScmResult export(ScmRepository repository, ScmFileSet fileSet, ScmVersion version)
612            throws ScmException {
613        return getExportScmResult();
614    }
615
616    /**
617     * {@inheritDoc}
618     */
619    public ExportScmResult export(
620            ScmRepository repository, ScmFileSet fileSet, ScmVersion version, String outputDirectory)
621            throws ScmException {
622        return getExportScmResult();
623    }
624
625    /**
626     * {@inheritDoc}
627     */
628    public ListScmResult list(ScmRepository repository, ScmFileSet fileSet, boolean recursive, String tag)
629            throws ScmException {
630        return getListScmResult();
631    }
632
633    /**
634     * {@inheritDoc}
635     */
636    public ListScmResult list(ScmRepository repository, ScmFileSet fileSet, boolean recursive, ScmVersion version)
637            throws ScmException {
638        return getListScmResult();
639    }
640
641    /**
642     * {@inheritDoc}
643     */
644    public RemoveScmResult remove(ScmRepository repository, ScmFileSet fileSet, String message) throws ScmException {
645        return getRemoveScmResult();
646    }
647
648    /**
649     * {@inheritDoc}
650     */
651    public StatusScmResult status(ScmRepository repository, ScmFileSet fileSet) throws ScmException {
652        return getStatusScmResult();
653    }
654
655    /**
656     * {@inheritDoc}
657     */
658    public TagScmResult tag(ScmRepository repository, ScmFileSet fileSet, String tag) throws ScmException {
659        return getTagScmResult();
660    }
661
662    /**
663     * {@inheritDoc}
664     */
665    public TagScmResult tag(ScmRepository repository, ScmFileSet fileSet, String tag, String message)
666            throws ScmException {
667        return getTagScmResult();
668    }
669
670    public TagScmResult tag(
671            ScmRepository repository, ScmFileSet fileSet, String tagName, ScmTagParameters scmTagParameters)
672            throws ScmException {
673        return getTagScmResult();
674    }
675
676    public UntagScmResult untag(ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters)
677            throws ScmException {
678        return getUntagScmResult();
679    }
680
681    /**
682     * {@inheritDoc}
683     */
684    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, String tag) throws ScmException {
685        return getUpdateScmResult();
686    }
687
688    /**
689     * {@inheritDoc}
690     */
691    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, String tag, boolean runChangelog)
692            throws ScmException {
693        return getUpdateScmResult();
694    }
695
696    /**
697     * {@inheritDoc}
698     */
699    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, String tag, String datePattern)
700            throws ScmException {
701        return getUpdateScmResult();
702    }
703
704    /**
705     * {@inheritDoc}
706     */
707    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate)
708            throws ScmException {
709        return getUpdateScmResult();
710    }
711
712    /**
713     * {@inheritDoc}
714     */
715    public UpdateScmResult update(
716            ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate, String datePattern)
717            throws ScmException {
718        return getUpdateScmResult();
719    }
720
721    /**
722     * {@inheritDoc}
723     */
724    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet) throws ScmException {
725        return getUpdateScmResult();
726    }
727
728    /**
729     * {@inheritDoc}
730     */
731    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version)
732            throws ScmException {
733        return getUpdateScmResult();
734    }
735
736    /**
737     * {@inheritDoc}
738     */
739    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, boolean runChangelog)
740            throws ScmException {
741        return getUpdateScmResult();
742    }
743
744    /**
745     * {@inheritDoc}
746     */
747    public UpdateScmResult update(
748            ScmRepository repository, ScmFileSet fileSet, ScmVersion version, boolean runChangelog)
749            throws ScmException {
750        return getUpdateScmResult();
751    }
752
753    /**
754     * {@inheritDoc}
755     */
756    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, String datePattern)
757            throws ScmException {
758        return getUpdateScmResult();
759    }
760
761    /**
762     * {@inheritDoc}
763     */
764    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate)
765            throws ScmException {
766        return getUpdateScmResult();
767    }
768
769    /**
770     * {@inheritDoc}
771     */
772    public UpdateScmResult update(
773            ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate, String datePattern)
774            throws ScmException {
775        return getUpdateScmResult();
776    }
777
778    /**
779     * {@inheritDoc}
780     */
781    public UnEditScmResult unedit(ScmRepository repository, ScmFileSet fileSet) throws ScmException {
782        return getUnEditScmResult();
783    }
784
785    /**
786     * {@inheritDoc}
787     */
788    public BlameScmResult blame(ScmRepository repository, ScmFileSet fileSet, String filename) throws ScmException {
789        return getBlameScmResult();
790    }
791
792    public BlameScmResult blame(BlameScmRequest blameScmRequest) throws ScmException {
793        return getBlameScmResult();
794    }
795
796    /**
797     * {@inheritDoc}
798     */
799    public MkdirScmResult mkdir(ScmRepository repository, ScmFileSet fileSet, String message, boolean createInLocal)
800            throws ScmException {
801        return getMkdirScmResult();
802    }
803
804    public InfoScmResult info(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)
805            throws ScmException {
806        return new InfoScmResult("", "", "", true);
807    }
808
809    public RemoteInfoScmResult remoteInfo(
810            ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters) throws ScmException {
811        return new RemoteInfoScmResult("", null, null);
812    }
813}