efritz/go-mockgen

View on GitHub

Showing 20 of 20 total issues

File main.go has 614 lines of code (exceeds 500 allowed). Consider refactoring.
Open

package main

import (
    "fmt"
    "log"
Severity: Minor
Found in main.go - About 4 hrs to fix

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

    package matchers
    
    import (
        "fmt"
    
    
    Severity: Major
    Found in matchers/called_once_with_matcher.go and 1 other location - About 3 hrs to fix
    matchers/called_with_matcher.go on lines 1..40

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 286.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Similar blocks of code found in 2 locations. Consider refactoring.
    Open

    package matchers
    
    import (
        "fmt"
    
    
    Severity: Major
    Found in matchers/called_with_matcher.go and 1 other location - About 3 hrs to fix
    matchers/called_once_with_matcher.go on lines 1..40

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 286.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Method generator.generateMockStructFromConstructor has 51 lines of code (exceeds 50 allowed). Consider refactoring.
    Open

    func (g *generator) generateMockStructFromConstructor(iface *wrappedInterface) jen.Code {
        ifaceName := jen.Qual(generation.SanitizeImportPath(iface.ImportPath, g.outputImportPath), iface.Name)
    
        var surrogate *jen.Statement
        if !unicode.IsUpper([]rune(iface.Name)[0]) {
    Severity: Minor
    Found in main.go - About 1 hr to fix

      Function getCallHistory has 5 return statements (exceeds 4 allowed).
      Open

      func getCallHistory(v interface{}) ([]callInstance, bool) {
          value := reflect.ValueOf(v)
          if !value.IsValid() {
              return nil, false
          }
      Severity: Major
      Found in matchers/type_support.go - About 35 mins to fix

        exported type Empty should have comment or be unexported
        Open

        type Empty interface{}
        Severity: Minor
        Found in internal/e2e-tests/empty.go by golint

        exported type Command should have comment or be unexported
        Open

        type Command func() error
        Severity: Minor
        Found in internal/e2e-tests/reference.go by golint

        exported type Child should have comment or be unexported
        Open

        type Child interface {
        Severity: Minor
        Found in internal/e2e-tests/relation.go by golint

        exported function BeCalled should have comment or be unexported
        Open

        func BeCalled() types.GomegaMatcher {
        Severity: Minor
        Found in matchers/called_matcher.go by golint

        exported type Parent should have comment or be unexported
        Open

        type Parent interface {
        Severity: Minor
        Found in internal/e2e-tests/relation.go by golint

        exported type OptionValidator should have comment or be unexported
        Open

        type OptionValidator interface {

        exported function BeCalledOnceWith should have comment or be unexported
        Open

        func BeCalledOnceWith(args ...interface{}) types.GomegaMatcher {
        Severity: Minor
        Found in matchers/called_once_with_matcher.go by golint

        exported function BeCalledOnce should have comment or be unexported
        Open

        func BeCalledOnce() types.GomegaMatcher {
        Severity: Minor
        Found in matchers/called_once_matcher.go by golint

        exported function BeCalledWith should have comment or be unexported
        Open

        func BeCalledWith(args ...interface{}) types.GomegaMatcher {
        Severity: Minor
        Found in matchers/called_with_matcher.go by golint

        exported function BeAnything should have comment or be unexported
        Open

        func BeAnything() types.GomegaMatcher {
        Severity: Minor
        Found in matchers/anything_matcher.go by golint

        2: cannot find package "github.com/dave/jennifer/jen" in any of:
        Open

            "github.com/dave/jennifer/jen"
        Severity: Minor
        Found in main.go by govet

        exported type Client should have comment or be unexported
        Open

        type Client interface {
        Severity: Minor
        Found in internal/e2e-tests/variadic_args.go by golint

        exported type Option should have comment or be unexported
        Open

        type Option struct{}

        exported type Retrier should have comment or be unexported
        Open

        type Retrier interface {
        Severity: Minor
        Found in internal/e2e-tests/reference.go by golint

        exported function BeCalledN should have comment or be unexported
        Open

        func BeCalledN(n int) types.GomegaMatcher {
        Severity: Minor
        Found in matchers/called_n_matcher.go by golint
        Severity
        Category
        Status
        Source
        Language